私はTFで時系列モデルを使用しています。これは基本的に単純な自己回帰モデルです。TF:フェッチ引数xに無効な型があります。<type 'numpy.float32'>は文字列またはテンソルでなければなりません。 (float32をTensorやOperationに変換できません)
オリジナルy
は、長さ100のベクターです(n
)。
フロートはテンソルエラーではありません(件名ごと)。私はそれだけで2番目のインスタンスでそれを取得します。
LR = .01
STEPS = 100
def Net(x, w, b):
# x has 2 previous values
x = [x[-1], x[-2], x[-1] - x[-2]]
x = tf.reshape(x, [1, 3])
x = tf.add(tf.matmul(x, w[0]), b[0])
pred = tf.add(tf.matmul(x, w[1]), b[1])
return pred
y_data = y - np.mean(y)
x = tf.placeholder(tf.float32, [2], name='x')
y = tf.placeholder(tf.float32, [1], name='y')
w = [tf.Variable(tf.random_normal([3, 3])), tf.Variable(tf.random_normal([3, 1]))]
b = [tf.Variable(tf.random_normal([1])), tf.Variable(tf.random_normal([1]))]
pred = Net(x, w, b)
cost = tf.sqrt(tf.reduce_mean(tf.square(tf.subtract(pred, y))))
optimizer = tf.train.AdamOptimizer(learning_rate=LR).minimize(cost)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(STEPS):
# random samples of data
ts = np.random.choice(np.arange(2, n), int(n * .5), replace=False)
for t in ts:
x_data = [y_data[t - 2], y_data[t - 1]]
y_data_cur = [y_data[t]]
print(x_data, y_data_cur, x, y, pred)
_, cost, p = sess.run([optimizer, cost, pred], feed_dict={x: x_data, y: y_data_cur})
print(cost, p)
if step % 10 == 0:
print(step, cost)
この行にエラーがあります。 'y_data = y - np.mean(y)'です。このエラーは非常にわかりやすいものです。 –
これは完全なコードではなく、shape [100] fistのランダムな法線として 'y'を生成します。 –