我可以将 Numpy ndarray 转换为张量吗?
Can I convert a Numpy ndarray to a Tensor?
我有一个对象,长度为 40,000。这 40,000 个数组中的每一个都有不同的长度。数组中的所有值都是整数 (0-25)。
我的 XTrain 数据看起来像这样:
[array([13, 8, 3, 7, 12, 16, 11, 1, 9, 17, 2, 18, 3, 5, 12, 19, 9,
10, 20, 14, 1, 15, 12, 19, 2, 2, 6, 20, 14, 19, 2, 7, 12, 2,
2, 1, 10, 8, 5, 10, 11, 2, 12, 11, 5, 7, 18, 12, 16, 20, 2,
10, 11, 7, 1, 7, 5, 5, 1, 4, 9, 10, 9, 13, 11, 20, 7, 10,
15, 15, 12, 13, 16, 20, 16, 8, 14, 13, 8, 19, 11, 12, 8, 12, 16,
16, 11, 13, 15, 19, 7, 6, 14, 8, 4, 11, 12, 14, 12, 19, 2, 3,
2, 7, 14, 18, 5, 2, 8, 19, 19, 20, 4, 17, 20, 8, 12, 3, 17,
1, 12, 10, 6, 4, 19, 10, 12, 9, 6, 11, 7, 7, 4, 12, 13, 8,
7, 6, 11, 16, 10, 15, 19, 15, 8, 16, 15, 14, 17, 8, 2, 12, 24])
array([13, 2, 20, 11, 12, 14, 8, 8, 17, 16, 20, 1, 3, 1, 7, 2, 14,
11, 2, 20, 1, 4, 10, 11, 7, 16, 3, 1, 2, 6, 8, 6, 20, 1,
17, 20, 11, 16, 1, 15, 1, 12, 10, 17, 3, 9, 11, 20, 1, 13, 10,
7, 12, 17, 10, 16, 8, 6, 4, 1, 11, 15, 3, 10, 16, 4, 1, 7,
2, 10, 14, 1, 7, 11, 11, 17, 8, 11, 1, 1, 1, 6, 15, 8, 14,
15, 11, 1, 6, 11, 12, 17, 14, 20, 4, 6, 7, 14, 1, 6, 10, 12,
9, 20, 11, 9, 8, 10, 16, 11, 11, 8, 6, 5, 15, 4, 16, 10, 3,
1, 1, 11, 10, 5, 2, 8, 7, 12, 13, 16, 10, 1, 10, 13, 1, 8,
20, 11, 7, 1, 2, 8, 9, 3, 20, 17, 20, 10, 4, 15, 20, 7, 12,
11, 11, 1, 20, 8, 9, 19, 11, 7, 16, 17, 20, 4, 10, 1, 7, 16,
17, 2, 2, 10, 1, 1, 16, 2, 10, 15, 1, 4, 9, 13, 20, 11, 13,
1, 8, 14, 17, 1, 8, 3, 7, 12, 8, 7, 11, 20, 20, 11, 8, 2,
3, 8, 16, 4, 19, 16, 1, 1, 20, 11, 1, 1, 5, 11, 2, 1, 4])
...
]
尝试使用以下方法将此数据转换为张量时:
x_train = tf.convert_to_tensor(
XTrain
)
我收到以下错误:ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
编辑 1:有人建议改用这个:
x_train = tf.convert_to_tensor(
XTrain, np.float32
)
然后我得到 TypeError: only size-1 arrays can be converted to Python scalars
& ValueError: setting an array element with a sequence.
我的 XTrain 数据是这样创建的:
XTrain = np.empty([len(AArecords)], dtype=object);
XTest = np.empty([len(AArecords)], dtype=object);
i = 0;
while (i < 40000):
XTrain[i] = np.array(aa2int(AArecords[i]))
i += 1
XTrain = np.transpose(XTrain)
AArecords 看起来像这样:
['MGNEKSLAHTRWNCKYHIVFAPKYRRQVFYREKRRAI...'
'MRVLKFGGTSVANAERFLRVADILESNA...'
'MVKVYAPASSANMSVGFD...*'
...]
您可以将非矩形 Python 序列转换为 RaggedTensor 为:
x_train = tf.ragged.constant(XTrain)
我有一个对象,长度为 40,000。这 40,000 个数组中的每一个都有不同的长度。数组中的所有值都是整数 (0-25)。
我的 XTrain 数据看起来像这样:
[array([13, 8, 3, 7, 12, 16, 11, 1, 9, 17, 2, 18, 3, 5, 12, 19, 9,
10, 20, 14, 1, 15, 12, 19, 2, 2, 6, 20, 14, 19, 2, 7, 12, 2,
2, 1, 10, 8, 5, 10, 11, 2, 12, 11, 5, 7, 18, 12, 16, 20, 2,
10, 11, 7, 1, 7, 5, 5, 1, 4, 9, 10, 9, 13, 11, 20, 7, 10,
15, 15, 12, 13, 16, 20, 16, 8, 14, 13, 8, 19, 11, 12, 8, 12, 16,
16, 11, 13, 15, 19, 7, 6, 14, 8, 4, 11, 12, 14, 12, 19, 2, 3,
2, 7, 14, 18, 5, 2, 8, 19, 19, 20, 4, 17, 20, 8, 12, 3, 17,
1, 12, 10, 6, 4, 19, 10, 12, 9, 6, 11, 7, 7, 4, 12, 13, 8,
7, 6, 11, 16, 10, 15, 19, 15, 8, 16, 15, 14, 17, 8, 2, 12, 24])
array([13, 2, 20, 11, 12, 14, 8, 8, 17, 16, 20, 1, 3, 1, 7, 2, 14,
11, 2, 20, 1, 4, 10, 11, 7, 16, 3, 1, 2, 6, 8, 6, 20, 1,
17, 20, 11, 16, 1, 15, 1, 12, 10, 17, 3, 9, 11, 20, 1, 13, 10,
7, 12, 17, 10, 16, 8, 6, 4, 1, 11, 15, 3, 10, 16, 4, 1, 7,
2, 10, 14, 1, 7, 11, 11, 17, 8, 11, 1, 1, 1, 6, 15, 8, 14,
15, 11, 1, 6, 11, 12, 17, 14, 20, 4, 6, 7, 14, 1, 6, 10, 12,
9, 20, 11, 9, 8, 10, 16, 11, 11, 8, 6, 5, 15, 4, 16, 10, 3,
1, 1, 11, 10, 5, 2, 8, 7, 12, 13, 16, 10, 1, 10, 13, 1, 8,
20, 11, 7, 1, 2, 8, 9, 3, 20, 17, 20, 10, 4, 15, 20, 7, 12,
11, 11, 1, 20, 8, 9, 19, 11, 7, 16, 17, 20, 4, 10, 1, 7, 16,
17, 2, 2, 10, 1, 1, 16, 2, 10, 15, 1, 4, 9, 13, 20, 11, 13,
1, 8, 14, 17, 1, 8, 3, 7, 12, 8, 7, 11, 20, 20, 11, 8, 2,
3, 8, 16, 4, 19, 16, 1, 1, 20, 11, 1, 1, 5, 11, 2, 1, 4])
...
]
尝试使用以下方法将此数据转换为张量时:
x_train = tf.convert_to_tensor(
XTrain
)
我收到以下错误:ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
编辑 1:有人建议改用这个:
x_train = tf.convert_to_tensor(
XTrain, np.float32
)
然后我得到 TypeError: only size-1 arrays can be converted to Python scalars
& ValueError: setting an array element with a sequence.
我的 XTrain 数据是这样创建的:
XTrain = np.empty([len(AArecords)], dtype=object);
XTest = np.empty([len(AArecords)], dtype=object);
i = 0;
while (i < 40000):
XTrain[i] = np.array(aa2int(AArecords[i]))
i += 1
XTrain = np.transpose(XTrain)
AArecords 看起来像这样:
['MGNEKSLAHTRWNCKYHIVFAPKYRRQVFYREKRRAI...'
'MRVLKFGGTSVANAERFLRVADILESNA...'
'MVKVYAPASSANMSVGFD...*'
...]
您可以将非矩形 Python 序列转换为 RaggedTensor 为:
x_train = tf.ragged.constant(XTrain)