module TensorStream::Train::SlotCreator
Public Instance Methods
create_slot(primary, val, name, colocate_with_primary: true)
click to toggle source
Create a slot initialized to the given value
Args:
primary: Variable - The primary 'Variable' or 'Tensor' val: Tensor - A `Tensor` specifying the initial value of the slot name: String - Name to use for the slot variable colocate_with_primary: Boolean - If true the slot is located on the same device as `primary`
Returns: A `Variable` object
# File lib/tensor_stream/train/slot_creator.rb, line 25 def create_slot(primary, val, name, colocate_with_primary: true) TensorStream.variable_scope(nil, primary.op.name + "/" + name) do return create_slot_var(primary, val, "", nil) if colocate_with_primary TensorStream.colocate_with(primary) do return create_slot_var(primary, val, "", nil) end end end
create_slot_var(_primary, val, scope, shape)
click to toggle source
Helper function for creating a slot variable.
# File lib/tensor_stream/train/slot_creator.rb, line 8 def create_slot_var(_primary, val, scope, shape) slot = get_variable(scope, initializer: val, trainable: false, shape: shape, validate_shape: val.shape && val.shape.known?) slot end
create_slot_with_initializer(primary, initializer, shape, dtype, name, colocate_with_primary: true)
click to toggle source
# File lib/tensor_stream/train/slot_creator.rb, line 35 def create_slot_with_initializer(primary, initializer, shape, dtype, name, colocate_with_primary: true) prefix = primary.op.name TensorStream.variable_scope(nil, prefix + "/" + name) do create_slot_var(primary, initializer, "", shape.shape) end end
create_zeros_slot(primary, name, dtype: nil, colocate_with_primary: true)
click to toggle source
Create a slot initialized to 0 with same shape as the primary object.
Args:
primary: The pirmary variable or Tensor name: String - Name to use for the slot variable dtype: Symbol - Type of the slot variable colocate_with_primary: boolean - If true the slot is located on the same device as primary
Returns:
A `Variable` object
# File lib/tensor_stream/train/slot_creator.rb, line 53 def create_zeros_slot(primary, name, dtype: nil, colocate_with_primary: true) dtype = primary.data_type if dtype.nil? slot_shape = primary.shape slot_shape = if slot_shape.fully_defined? slot_shape.shape else TensorStream.shape(primary.initialized_value) end val = TensorStream.zeros(slot_shape, dtype: dtype) create_slot(primary, val, name, colocate_with_primary: colocate_with_primary) end