将tensorflow数据集分离到tensorflow2中的不同输出
Separate tensorflow dataset to different outputs in tensorflow2
我有一个包含数据、标签和路径的 3 个张量输出的数据集:
import tensorflow as tf #tensroflow version 2.1
data=tf.constant([[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,0]],name='data')
labels=tf.constant([0,1,0,1,0,1,0,1,0,1],name='label')
path=tf.constant(['p0','p1','p2','p3','p4','p5','p6','p7','p8','p9'],name='path')
my_dataset=tf.data.Dataset.from_tensor_slices((data,labels,path))
我想将 my_dataset
分离回 3 个数据集、标签和路径(或 3 个张量),而不对其进行迭代,也不将其转换为 numpy。
在 tensorflow 1.X 中,只需使用
即可完成
d,l,p=my_dataset.make_one_shot_iterator().get_next()
然后将张量转换为数据集。在 tensorflow2 中如何实现?
谢谢!
我找到的解决方案看起来不太像 "pythonic",但它确实有效。
我使用了 map()
方法:
data= my_dataset.map(lambda x,y,z:x)
labels= my_dataset.map(lambda x,y,z:y)
paths= my_dataset.map(lambda x,y,z:z)
分离后,标签的顺序保持不变。
我有一个包含数据、标签和路径的 3 个张量输出的数据集:
import tensorflow as tf #tensroflow version 2.1
data=tf.constant([[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,0]],name='data')
labels=tf.constant([0,1,0,1,0,1,0,1,0,1],name='label')
path=tf.constant(['p0','p1','p2','p3','p4','p5','p6','p7','p8','p9'],name='path')
my_dataset=tf.data.Dataset.from_tensor_slices((data,labels,path))
我想将 my_dataset
分离回 3 个数据集、标签和路径(或 3 个张量),而不对其进行迭代,也不将其转换为 numpy。
在 tensorflow 1.X 中,只需使用
即可完成d,l,p=my_dataset.make_one_shot_iterator().get_next()
然后将张量转换为数据集。在 tensorflow2 中如何实现?
谢谢!
我找到的解决方案看起来不太像 "pythonic",但它确实有效。
我使用了 map()
方法:
data= my_dataset.map(lambda x,y,z:x)
labels= my_dataset.map(lambda x,y,z:y)
paths= my_dataset.map(lambda x,y,z:z)
分离后,标签的顺序保持不变。