小编Jul*_*laz的帖子

使用估计器训练Tensorflow模型(from_generator)

我正在尝试使用生成器训练一个估计器,但是我想为该估计器提供每次迭代的样本包。我显示代码:

def _generator():
for i in range(100):
    feats  = np.random.rand(4,2)
    labels = np.random.rand(4,1)

    yield feats, labels


def input_func_gen():
    shapes = ((4,2),(4,1))
    dataset = tf.data.Dataset.from_generator(generator=_generator,
                                         output_types=(tf.float32, tf.float32),
                                         output_shapes=shapes)
dataset = dataset.batch(4)
# dataset = dataset.repeat(20)
iterator = dataset.make_one_shot_iterator()
features_tensors, labels = iterator.get_next()
features = {'x': features_tensors}
return features, labels


x_col = tf.feature_column.numeric_column(key='x', shape=(4,2))
es = tf.estimator.LinearRegressor(feature_columns=[x_col],model_dir=tf_data)
es = es.train(input_fn=input_func_gen,steps = None)
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,它将引发以下错误:

    raise ValueError(err.message)
ValueError: Dimensions must be equal, but are 2 and 3 for 'linear/head/labels/assert_equal/Equal' (op: 'Equal') with input shapes: …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets tensorflow-estimator

4
推荐指数
1
解决办法
1143
查看次数