python – TensorFlow无法为Tensor’占位符:0’提供形状值(100,
发布时间:2020-12-20 13:19:34 所属栏目:Python 来源:网络整理
导读:我正在学习TensorFLow.因此,要了解如何制作某些内容,我尝试从源代码中复制一些代码并执行它.但我正在发出错误信息.所以我尝试了一些来自这个网站的解决方案,但它不起作用(我在评论中保留了我的测试). """programme 1 """import tensorflow as tf import nump
我正在学习TensorFLow.因此,要了解如何制作某些内容,我尝试从源代码中复制一些代码并执行它.但我正在发出错误信息.所以我尝试了一些来自这个网站的解决方案,但它不起作用(我在评论中保留了我的测试).
"""programme 1 """ import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data',one_hot=True) X = tf.placeholder(tf.float32,[None,28,1]) #28 * 28 taille image 1 = 1pixel car noir et blanc "X" valeur W = tf.Variable(tf.zeros([784,10])) # 28*28 = 784,10 -> 0 à 9 "W" = weight = poid b = tf.Variable(tf.zeros([10])) #chiffre de 0 à 9 a reconnaitre "b" = constante init = tf.initialize_all_variables() #model Y = tf.nn.softmax(tf.matmul(tf.reshape(X,[-1,784]),W) + b) #fonction "matmul": produit matriciel "-1": reussite obligatoire #Place holder Y_ = tf.placeholder(tf.float32,10]) #loss function cross_entropy = -1 * tf.reduce_sum(Y_ * tf.log(Y)) #formule # % of correct annwer 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)) #training step optimizer = tf.train.GradientDescentOptimizer(0.003) #petit pas train_step = optimizer.minimize(cross_entropy) sess = tf.Session() sess.run(init) for i in range(10000): #load batch of image and ocrrects answer batch_X,batch_Y = mnist.train.next_batch(100) batch_X = np.reshape(batch_X,(-1,784)) #batch_Y = np.reshape(batch_Y,784)) train_data = {X: batch_X,Y_: batch_Y} #train sess.run(train_step,feed_dict=train_data) a,c = sess.run([accuracy,cross_entropy],feed = train_data) test_data = {X:mnist.test.images,Y_:mnist.test.labels} a,feed = test_data) 日志: Traceback (most recent call last): File "d:tensorflowtest1.py",line 46,in <module> sess.run(train_step,feed_dict=train_data) File "C:UsersProprietaireAppDataLocalProgramsPythonPython35libsite-packagestensorflowpythonclientsession.py",line 895,in run run_metadata_ptr) File "C:UsersProprietaireAppDataLocalProgramsPythonPython35libsite-packagestensorflowpythonclientsession.py",line 1100,in _run % (np_val.shape,subfeed_t.name,str(subfeed_t.get_shape()))) ValueError: Cannot feed value of shape (100,784) for Tensor 'Placeholder:0',which has shape '(?,1)' 2017-08-30 19:07:37.406994: W C:tf_jenkinshomeworkspacerel-winMwindowsPY35tensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions,but these are available on your machine and could speed up CPU computations. 第46行是 sess.run(train_step,feed_dict=train_data) 我该怎么做才能解决此错误? 解决方法
您收到该错误是因为您正在喂食的形状与TensorFlow期望的形状之间存在不匹配.要解决此问题,您可能需要在占位符处重新整形数据:0即batch_X to
(?,1).例如,您将执行以下操作: batch_X = np.reshape(batch_X,1)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |