我有一个包含要素和标签的数据集。我想从中产生3件事:
x,y,lb = train_data
我的train_data
具有功能,索引中的标签可以说0 to 100
。我希望x
有feature
的{{1}}个样本,1 to 100
应该有y
的{{1}},而labels
应该有标签位于索引0 to 99
。
此外,我想使用迭代器在批量滑动中执行此操作。目前,我有以下代码,它们根据lb
生成100
,并根据x
生成0 to 100
。下一批从y
和0 to 100
开始,依此类推。
x : 1 to 101
答案 0 :(得分:0)
您只能拥有101个元素的窗口,并在以后进行相应切片:
import tensorflow as tf
from tensorflow.contrib.data.python.ops import sliding
features_placeholder = tf.placeholder(tf.float32, shape=[1000, 10],name="input_features")
labels_placeholder = tf.placeholder(tf.float32, shape=[1000, 1],name = "input_labels")
iterator = (tf.data.Dataset.from_tensor_slices((features_placeholder, labels_placeholder))
.apply(sliding.sliding_window_batch(window_size=101, window_shift=1))
.batch(10)
.make_initializable_iterator()
)
x_it, y_it = iterator.get_next(name="batch")
x, y, lb = x_it[:, 1:], y_it[:, :-1], y_it[:, -1]
init_op = iterator.initializer
saveable = tf.contrib.data.make_saveable_from_iterator(iterator)