Tensorflow尺寸大小必须可被N整除,但对于'linear / linear_model / x / Reshape'

时间:2017-12-05 19:56:05

标签: machine-learning tensorflow shape reshape

我一直在尝试使用tensorflow的tf.estimator,但我在输入/输出数据的形状方面遇到以下错误。

  

ValueError:尺寸大小必须可被9整除,但为12   具有输入形状的'linear / linear_model / x / Reshape'(op:'Reshape'):   [4,3],[2]和输入张量计算为部分形状:输入[1]   = [?,9]。

以下是代码:

data_size = 3
iterations = 10
learn_rate = 0.005
# generate test data
input = np.random.rand(data_size,3)
output = np.dot(input, [2, 3 ,7]) + 4
output = np.transpose([output])

feature_columns = [tf.feature_column.numeric_column("x", shape=(data_size, 3))]
estimator = tf.estimator.LinearRegressor(feature_columns=feature_columns)

input_fn = tf.estimator.inputs.numpy_input_fn({"x":input}, output, batch_size=4, num_epochs=None, shuffle=True)

estimator.train(input_fn=input_fn, steps=iterations)

输入数据形状为shape=(3, 3)

[[ 0.06525168  0.3171153   0.61675511]
 [ 0.35166298  0.71816544  0.62770994]
 [ 0.77846666  0.20930611  0.1710842 ]]

输出数据形状为shape=(3, 1)

[[  9.399135  ]
 [ 11.25179188]
 [  7.38244104]]

我感觉它与input数据,output数据和batch_size有关,因为当input数据更改为1行时,它可以正常工作。如果input数据行数等于batch_sizedata_size = 10batch_size=10),则会引发其他错误:

  

ValueError:形状(1,1)和(10,1)不兼容

非常感谢任何有关错误的帮助。

0 个答案:

没有答案