提问人:Tavakoli 提问时间:8/16/2020 最后编辑:Tavakoli 更新时间:9/17/2020 访问量:2611
如何在 TensorFlow 中对数据集进行切片?
How can slicing dataset in TensorFlow?
问:
我想在 中对数据集进行切片。我的数据是这样的:tf.data
dataset = tf.data.Dataset.from_tensor_slices([[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]])
那么主要数据是:
[0 1 2 3 4]
[1 2 3 4 5]
[2 3 4 5 6]
[3 4 5 6 7]
[4 5 6 7 8]
我想创建包含如下数据的其他张量数据集:
[[1, 2],
[2, 3],
[3, 4],
[4, 5],
[5, 6]]
在numpy中,它是这样的:
dataset[:,1:3]
如何在 TensorFlow 中做到这一点?
更新:
我这样做:
dataset2 = dataset.map(lambda data: data[1:3])
for val in dataset2:
print(val.numpy())
但我认为有很好的解决方案。
答:
1赞
user11530462
9/17/2020
#1
在我看来,您的解决方案是最佳解决方案。为了社区的利益,我正在使用 as_numpy_iterator() 方法来切片数据集(对您的代码进行少量语法更改)。tf.data.Dataset
请参考下面的代码
import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices([[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]])
dataset2 = dataset.map(lambda data: data[1:3])
for val in dataset2.as_numpy_iterator():
print(val)
输出:
[1 2]
[2 3]
[3 4]
[4 5]
[5 6]
评论