从形状为(8902048,3)的numpy数组创建一个tf.Dataset



我正在研究点云注册的点网实现。为此,我创建了890个存储在NumPy阵列中的源和目标点云,其形状为(2048,3(。然后,我将所有890个源和目标阵列组合成两个大阵列,其形状=(8902048,3(。现在我想为TensorFlow模型创建一个输入管道。如何从这两个numpy数组创建Tensorflow数据集,以及如何检查它是否有效?我试过了:

data1 = tf.data.Dataset.from_tensor_slices((source,targ))
data

但我只得到:

<TensorSliceDataset element_spec=(TensorSpec(shape=(2048, 3), dtype=tf.float64, name=None), TensorSpec(shape=(2048, 3), dtype=tf.float64, name=None))>'

作为输出。。

我真的很感谢任何关于在哪里查看的帮助或指导:(

这是因为您需要批量处理数据。否则,tensorflow将保留创建数据集时的原始形状,并分批发送1个

对比度

source = np.random.normal(size=(890,2048,3))
targ = np.random.normal(size=(890,2048,3))
data1 = tf.data.Dataset.from_tensor_slices((source,targ))
for x,y in data1.take(1):
print(x.shape)
print(y.shape)
>>>(2048, 3)
(2048, 3)

带有

source = np.random.normal(size=(890,2048,3))
targ = np.random.normal(size=(890,2048,3))
data1 = tf.data.Dataset.from_tensor_slices((source,targ))
data1 = data1.batch(8) #Or some number of convenience
for x,y in data1.take(1):
print(x.shape)
print(y.shape)
>>>(8, 2048, 3)
(8, 2048, 3)

最新更新