def session(evaluator = nil, thread_pool_class: Concurrent::ImmediateExecutor, log_device_placement: false, profile_enabled: false)
      session = TensorStream::Session.new(evaluator, thread_pool_class: thread_pool_class, log_device_placement: log_device_placement, profile_enabled: profile_enabled)
      yield session if block_given?

      session
    end
def session(evaluator = nil, thread_pool_class: Concurrent::ImmediateExecutor, log_device_placement: false, profile_enabled: false)
      session = TensorStream::Session.new(evaluator, thread_pool_class: thread_pool_class, log_device_placement: log_device_placement, profile_enabled: profile_enabled)
      yield session if block_given?

      session
    end
Creates a session context where operations can be executed

 Args:
     evaluator: Specific evaluator to use, otherwise the best evaluator will automatically be determined

 Options:
     thread_pool_class: Class to use to manage thread pooling
     log_device_placement: Show assigned device/evalutor for each tensor op
     profile_enabled: Log performance metrics for each operation