37 class DeviceHashBackend;
45 const Dtype& key_dtype,
47 const Dtype& value_dtype,
56 const Dtype& key_dtype,
58 const std::vector<Dtype>& dtypes_value,
59 const std::vector<SizeVector>& element_shapes_value,
67 void Reserve(int64_t capacity);
77 std::pair<Tensor, Tensor> Insert(
const Tensor& input_keys,
78 const Tensor& input_values);
84 std::pair<Tensor, Tensor> Insert(
86 const std::vector<Tensor>& input_values_soa);
93 std::pair<Tensor, Tensor> Activate(
const Tensor& input_keys);
99 std::pair<Tensor, Tensor> Find(
const Tensor& input_keys);
109 Tensor GetActiveIndices()
const;
114 void Insert(
const Tensor& input_keys,
115 const Tensor& input_values,
116 Tensor& output_buf_indices,
122 void Insert(
const Tensor& input_keys,
123 const std::vector<Tensor>& input_values_soa,
124 Tensor& output_buf_indices,
130 void Activate(
const Tensor& input_keys,
131 Tensor& output_buf_indices,
137 void Find(
const Tensor& input_keys,
138 Tensor& output_buf_indices,
143 void Erase(
const Tensor& input_keys,
Tensor& output_masks);
147 void GetActiveIndices(
Tensor& output_buf_indices)
const;
156 void Save(
const std::string& file_name);
160 static HashMap Load(
const std::string& file_name);
169 int64_t Size()
const;
172 int64_t GetCapacity()
const;
175 int64_t GetBucketCount()
const;
178 Device GetDevice()
const override;
183 Tensor GetKeyTensor()
const;
188 std::vector<Tensor> GetValueTensors()
const;
193 Tensor GetValueTensor(
size_t index = 0)
const;
196 std::vector<int64_t> BucketSizes()
const;
199 float LoadFactor()
const;
203 return device_hashmap_;
207 void Init(int64_t init_capacity,
211 void InsertImpl(
const Tensor& input_keys,
212 const std::vector<Tensor>& input_values_soa,
213 Tensor& output_buf_indices,
215 bool is_activate_op =
false);
217 void CheckKeyLength(
const Tensor& input_keys)
const;
218 void CheckKeyValueLengthCompatibility(
220 const std::vector<Tensor>& input_values_soa)
const;
221 void CheckKeyCompatibility(
const Tensor& input_keys)
const;
222 void CheckValueCompatibility(
223 const std::vector<Tensor>& input_values_soa)
const;
225 void PrepareIndicesOutput(
Tensor& output_buf_indices, int64_t length)
const;
226 void PrepareMasksOutput(
Tensor& output_masks, int64_t length)
const;
228 std::pair<int64_t, std::vector<int64_t>> GetCommonValueSizeDivisor();
231 std::shared_ptr<DeviceHashBackend> device_hashmap_;
236 std::vector<Dtype> dtypes_value_;
237 std::vector<SizeVector> element_shapes_value_;
HashBackendType
Definition: HashMap.h:39
Definition: SizeVector.h:88
std::shared_ptr< DeviceHashBackend > GetDeviceHashBackend() const
Return the implementation of the device hash backend.
Definition: HashMap.h:202
void To(const core::Tensor &src, core::Tensor &dst, double scale, double offset)
Definition: Image.cpp:36
Definition: PinholeCameraIntrinsic.cpp:35
bool copy
Definition: VtkUtils.cpp:89