0
Tensor 흐름에서 신경망 모델을 구현하려고하지만 placeholder의 모양에 문제가있는 것 같습니다. 나는 TF가 처음이므로 간단한 오해 일 수 있습니다. 내 코드 및 데이터 샘플은 다음과 같습니다.Tensor-flow에서 신경 모델을 구현
_data=[[0.4,0.5,0.6,1],[0.7,0.8,0.9,0],....]
데이터는 4 열의 배열로 구성되며 각 배열의 마지막 열은 레이블입니다. 내가 라벨 0, 라벨 1 레이블로 각 배열을 분류 할 2. 내 코드를 실행 한 후 다음과 같은 오류 메시지를 받았습니다
import tensorflow as tf
import numpy as np
_data = datamatrix
X = tf.placeholder(tf.float32, [None, 3])
W = tf.Variable(tf.zeros([3, 1]))
b = tf.Variable(tf.zeros([3]))
init = tf.global_variables_initializer()
Y = tf.nn.softmax(tf.matmul(X, W) + b)
# placeholder for correct labels
Y_ = tf.placeholder(tf.float32, [None, 1])
# loss function
import time
start=time.time()
cross_entropy = -tf.reduce_sum(Y_ * tf.log(Y))
# % of correct answers found in batch
is_correct = tf.equal(tf.argmax(Y,1), tf.argmax(Y_,1))
accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
optimizer = tf.train.GradientDescentOptimizer(0.003)
train_step = optimizer.minimize(cross_entropy)
sess = tf.Session()
sess.run(init)
for i in range(1000):
# load batch of images and correct answers
batch_X, batch_Y = [x[:3] for x in _data[:2000]],[x[-1] for x in _data[:2000]]
train_data={X: batch_X, Y_: batch_Y}
# train
sess.run(train_step, feed_dict=train_data)
# success ?
a,c = sess.run([accuracy, cross_entropy], feed_dict=train_data)
:
ValueError: Cannot feed value of shape (2000,) for Tensor 'Placeholder_1:0', which has shape '(?, 1)'
내 원하는 출력의 성능해야한다 교차 엔트로피를 사용하는 모델; 아래의 코드 라인의 정확도 값 :
a,c = sess.run([accuracy, cross_entropy], feed_dict=train_data)
나는 또한 모델 또는 내 데이터에 더 적합한 모델을 개선하는 방법에 대한 어떤 제안을 감사하겠습니다.
좋은 물건을, 솔루션 작동합니다. 감사. – user2274879
당신은 오신 것을 환영합니다. 이 질문에 답변 해 주시겠습니까? – THN