我有一个模型,想测试一个想法。我特别感兴趣的是 tf.nn.sigmoid_cross_entropy_with_logits(),因为我的标签不是互斥的。
import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)x = tf.placeholder(tf.float32, shape=[None, 784])y_ = tf.placeholder(tf.float32, shape=[None, 10])w1 = tf.get_variable("w1", shape=[784, 512], initializer=tf.contrib.layers.xavier_initializer())b1 = tf.Variable(tf.zeros([512], dtype=tf.float32))w2 = tf.Variable(tf.zeros([512, 10], dtype=tf.float32))b2 = tf.Variable(tf.zeros([10], dtype=tf.float32))h = tf.nn.relu(tf.matmul(x, w1) + b1)y = tf.matmul(h, w2) + b2cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(labels=y_, logits=y)train_step = tf.train.AdamOptimizer().minimize(cross_entropy)with tf.Session() as sess: sess.run(tf.initialize_all_variables()) start = time.time() for i in range(20000): batch = mnist.train.next_batch(50) train_step.run(feed_dict={x: batch[0], y_: batch[1]})
然而,我反复收到以下错误,这似乎与TensorFlow的文档相矛盾。
Traceback (most recent call last):File "mnist_test.py", line 19, in <module>cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(labels=y_, logits=y)TypeError: sigmoid_cross_entropy_with_logits() got an unexpected keyword argument 'labels'
请帮助我!!
回答:
关键字参数 labels
仅在TensorFlow 1.0.0及以上版本中存在。我猜你使用的是0.12或更低版本。可以使用 pip freeze
或 print('TensorFlow version: {0}'.format(tf.__version__))
来检查版本。
先前版本的文档可以在 https://www.tensorflow.org/versions/ 找到
要在之前版本的文档中搜索某些信息,你可以使用: https://www.google.com/search?q=site:https://www.tensorflow.org/versions/r0.12+sigmoid_cross_entropy_with_logits()