Вы должны установить фигуры для инициализации этих переменных. Возьмите логистическую регрессию в качестве примера.
import tensorflow as tf
x=tf.placeholder(shape=[None,5],dtype=tf.float32,name='input')
y_=tf.placeholder(shape=[None,1],dtype=tf.float32,name='label')
w=tf.Variable(tf.random_normal([5,1]),name='weights')
b=tf.Variable(tf.zeros([1]),name='bias')
y_pred=tf.nn.softmax(tf.matmul(x,w)+b)
cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))
train_op=tf.train.AdamOptimizer(0.001).minimize(cross_entropy)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
tf.global_variables_initializer().run()
for epoch in range(1000):
_, loss = sess.run([train_op, cross_entropy], feed_dict={x: [X_train[i]], y: [y_train[i]]})
if (epoch % 50 == 0):
print('Epoch: {0}, total loss={1}'.format(epoch + 1, loss))
Если вы используете константу для инициализации, как показано ниже, вам не нужно задавать форму.
a=tf.get_variable("my_variable", dtype=tf.int32,initializer=tf.constant([2, 3]))