【发布时间】:2018-02-13 14:30:49
【问题描述】:
试图建立简单的模型只是为了弄清楚如何处理tf.data.Dataset.from_generator。我不明白如何设置output_shapes 参数。我尝试了几种组合,包括未指定它,但由于张量的形状不匹配,仍然会收到一些错误。这个想法只是产生两个带有SIZE = 10 的numpy 数组并用它们运行线性回归。代码如下:
SIZE = 10
def _generator():
feats = np.random.normal(0, 1, SIZE)
labels = np.random.normal(0, 1, SIZE)
yield feats, labels
def input_func_gen():
shapes = (SIZE, SIZE)
dataset = tf.data.Dataset.from_generator(generator=_generator,
output_types=(tf.float32, tf.float32),
output_shapes=shapes)
dataset = dataset.batch(10)
dataset = dataset.repeat(20)
iterator = dataset.make_one_shot_iterator()
features_tensors, labels = iterator.get_next()
features = {'x': features_tensors}
return features, labels
def train():
x_col = tf.feature_column.numeric_column(key='x', )
es = tf.estimator.LinearRegressor(feature_columns=[x_col])
es = es.train(input_fn=input_func_gen)
另一个问题是是否可以使用此功能为 tf.feature_column.crossed_column 的特征列提供数据?总体目标是在批量训练中使用Dataset.from_generator 功能,在数据不适合内存的情况下,数据从数据库中加载到块上。高度赞赏所有意见和示例。
谢谢!
【问题讨论】:
标签: tensorflow tensorflow-datasets