2017-01-17 4 views
2

私はtensorFlowの問題に直面しています。ValueError:任意の変数にグラデーションはありません

とValueError:任意の変数のためにありませ勾配は、変数[ 'テンソル( "変数の間、グラデーションをサポートしていないOPSのためのあなたのグラフをチェックしません、私は次のエラーを取得する次のコード

import tensorflow as tf 
import input_data 

learning_rate = 0.01 
training_epochs = 25 
batch_size = 100 
display_step = 1 

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 

# tensorflow graph input 
X = tf.placeholder('float', [None, 784]) # mnist data image of shape 28 * 28 = 784 
Y = tf.placeholder('float', [None, 10]) # 0-9 digits recognition = > 10 classes 

# set model weights 
W = tf.Variable(tf.zeros([784, 10])) 
b = tf.Variable(tf.zeros([10])) 

# Our hypothesis 
activation = tf.add(tf.matmul(X, W),b) # Softmax 

# Cost function: cross entropy 
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=activation, logits=Y)) 
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Gradient Descen 

を実行(0、形状=(10、)、dtype = float32) ']と損失Tensor( "Mean(0)"、shape =(784,10)、dtype = float32) :0 "、形状=()、dtype = float32)。この問題は、以下の行によって引き起こされる

+4

でそれを変更します。ありがとう –

答えて

4

documentationに基づいてtf.nn.softmax_cross_entropy_with_logits(labels=activation, logits=Y)

あなたは

labels: Each row labels[i] must be a valid probability distribution.

logits: Unscaled log probabilities.

は、だからあなたの仮説であることを仮定logitsている必要がありますので、activationに等しく、有効な確率分布がYです。だから、それはロジックの問題だった (ラベル=活性化、logits = Y)→(ラベル= Y、logits =活性化) ..私は引数の変更によってこの問題を解決しtf.nn.softmax_cross_entropy_with_logits(labels=Y, logits=activation)

関連する問題