В настоящее время я изучаю TensorFlow. Я пытаюсь создать NN, который может точно оценить модель прогнозирования и присвоить ей оценку. Мой план прямо сейчас состоит в том, чтобы комбинировать оценки из уже существующих программ, запускать их через mlp, сравнивая их с истинными значениями. Я играл с данными MNIST, и я пытаюсь применить то, что я узнал в своем проекте. К сожалению, у меня есть проблемаtensorflow ValueError: Размер 0 в обеих формах должен быть равен
def multilayer_perceptron(x, w1):
# Hidden layer with RELU activation
layer_1 = tf.matmul(x, w1)
layer_1 = tf.nn.relu(layer_1)
# Output layer with linear activation
#out_layer = tf.matmul(layer_1, w2)
return layer_1
def my_mlp (trainer, trainer_awn, learning_rate, training_epochs, n_hidden, n_input, n_output):
trX, trY= trainer, trainer_awn
#create placeholders
x = tf.placeholder(tf.float32, shape=[9517, 5])
y_ = tf.placeholder(tf.float32, shape=[9517, ])
#create initial weights
w1 = tf.Variable(tf.zeros([5, 1]))
#predicted class and loss function
y = multilayer_perceptron(x, w1)
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
#training
train_step = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
with tf.Session() as sess:
# you need to initialize all variables
sess.run(tf.initialize_all_variables())
print("1")
for i in range(training_epochs + 1):
sess.run([train_step], feed_dict={x: [trX['V7'], trX['V8'], trX['V9'], trX['V10'], trX['V12']], y_: trY})
return
код дает мне эту ошибку
ValueError: Dimension 0 in both shapes must be equal, but are 9517 and 1
Эта ошибка возникает при запуске линии для cross_entropy. Я не понимаю, почему это происходит, если вам нужна дополнительная информация, я был бы рад передать ее вам.
Спасибо, что сработали отлично! –