如何在不创建新张量的情况下更改张量中的值?
例如,我有tensor
:
const size_t input_dims_len = 3;
int64_t input_dims[input_dims_len] = {1, 5, 12};
float input[5 * 12] = {...};
TF_Tensor* input_tensor = TF_NewTensor(TF_FLOAT,
input_dims,
input_dims_len,
input,
5 * 12 * sizeof(float),
deallocate_tensor,
nullptr);
当我更改input
中的值时,如何使input_tensor
中的值也发生变化?
答案 0 :(得分:0)
// Allocate tensor
const int input_dims_len = 3;
int64_t input_dims[input_dims_len] = {1, 5, 12};
const int data_size = 5 * 12 * sizeof(float));
TF_Tensor* tensor = TF_AllocateTensor(TF_FLOAT,
input_dims, input_dims_len,
data_size);
// Change values in a tensor
float input[5 * 12] = {...};
std::memcpy(TF_TensorData(tensor), input, std::min(data_size, TF_TensorByteSize(tensor)));