Method: Transformers::BatchFeature#convert_to_tensors

Defined in:
lib/transformers/feature_extraction_utils.rb

#convert_to_tensors(tensor_type: nil) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/transformers/feature_extraction_utils.rb', line 59

def convert_to_tensors(tensor_type: nil)
  if tensor_type.nil?
    return self
  end

  is_tensor, as_tensor = _get_is_as_tensor_fns(tensor_type: tensor_type)

  # Do the tensor conversion in batch
  items.each do |key, value|
    begin
      if !is_tensor.(value)
        tensor = as_tensor.(value)

        @data[key] = tensor
      end
    rescue
      if key == :overflowing_values
        raise ArgumentError, "Unable to create tensor returning overflowing values of different lengths."
      end
      raise ArgumentError,
        "Unable to create tensor, you should probably activate padding " +
        "with 'padding: true' to have batched tensors with the same length."
    end
  end

  self
end