Есть ли функция в TensorFlow или другой способ, которым я могу создать строку из тензора и затем создать идентичный тензор из этой строки с помощью функции eval
? Чтобы использовать eval
, мне нужно, чтобы строка была в форме, подобной этой: 'tf.Variable(np.array[1,2,3], shape=(3,), dtype=tf.int64)'
Я пытался создать класс, который форматирует строковое представление тензора, но иногда это терпит неудачу, а сейчас нет Почему. Это мой класс:
class TensorDecoder:
def __init__(self, tensor):
self.tensor = tensor
def decodeDtype(self, strDtype):
strDtype = strDtype.split("'")[1]
strDtype = 'tf.' + strDtype
return strDtype
def __repr__(self):
tValue = str(self.tensor.numpy().tolist())
dtype = self.decodeDtype(str(self.tensor.dtype))
shape = str(self.tensor.shape)
return f'tf.Variable({tValue}, dtype={dtype}, shape={shape})'
Я думаю, что функция TensorFlow была бы лучшим вариантом, но, возможно, вы видите ошибку, из-за которой строка заканчивается следующим образом: <tf.Variable 'Variable:0' shape=(6,) dtype=float64, numpy=\narray([262.82998657, 262.82998657, 262.82998657,\n262.82998657,\n262.82998657, 0. ])>