2016-11-13 3 views
0

Tensorflow 도구를 사용하여 신경망을 만들려고합니다. what`s 잘못Tensorflow의 InvalidArgumentError

InvalidArgumentError (see above for traceback): logits and labels must be same size: logits_size=[500,2] labels_size=[1,500] 
[[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](Reshape, Reshape_1)]] 

사람이 알고

sizeOfRow = len(data[0]) 
x = tensorFlow.placeholder("float", shape=[None, sizeOfRow]) 
y = tensorFlow.placeholder("float") 

def neuralNetworkTrain(x): 
    prediction = neuralNetworkModel(x) 
    # using softmax function, normalize values to range(0,1) 
    cost = tensorFlow.reduce_mean(tensorFlow.nn.softmax_cross_entropy_with_logits(prediction, y)) 

이 내가 오류 가지고 그물 에서 일부인가?

편집 : 또한이 코드에서 가지고 :

for temp in range(int(len(data)/batchSize)): 
    ex, ey = takeNextBatch(i) # takes 500 examples 
    i += 1 
    # TO-DO : fix bug here 
    temp, cos = sess.run([optimizer, cost], feed_dict= {x:ex, y:ey}) 

이 오류 형식 오류 : unhashable 유형 : '목록'

답변

0

음, 오류가 상당히 자체 설명입니다.

logits and labels must be same size: logits_size=[500,2] labels_size=[1,500]

그래서 먼저, 레이블은 크기 500, 1을 가지고 전치되어야하고, 둘째, softmax_cross_entropy_with_logitslabels은 확률 분포 (예를 들어, [[0.1, 0.9], [1.0, 0.0]])의 형태로 제공 될 것으로 기대하고있다.

클래스가 독점적 인 경우 (아마도 그렇습니다) sparse_softmax_cross_entropy_with_logits으로 전환해야합니다.