- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我在 MNIST 数据集上测试以进行量化的示例。我正在使用以下代码测试我的模型:
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.python.framework import graph_util
from tensorflow.core.framework import graph_pb2
import numpy as np
def test_model(model_file,x_in):
with tf.Session() as sess:
with open(model_file, "rb") as f:
output_graph_def = graph_pb2.GraphDef()
output_graph_def.ParseFromString(f.read())
_ = tf.import_graph_def(output_graph_def, name="")
x = sess.graph.get_tensor_by_name('Placeholder_1:0')
y = sess.graph.get_tensor_by_name('softmax_cross_entropy_with_logits:0')
new_scores = sess.run(y, feed_dict={x:x_in.test.images})
print((orig_scores - new_scores) < 1e-6)
find_top_pred(orig_scores)
find_top_pred(new_scores)
#print(epoch_x.shape)
mnist = input_data.read_data_sets("/tmp/data/", one_hot = True)
test_model('mnist_cnn1.pb',mnist)
Extracting /tmp/data/train-images-idx3-ubyte.gz
Extracting /tmp/data/train-labels-idx1-ubyte.gz
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1323, in _do_call
return fn(*args)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1302, in _run_fn
status, run_metadata)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py", line 473, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [?,784]
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[?,784], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
Traceback (most recent call last):
File "tmp.py", line 26, in <module>
test_model('/home/shringa/tensorflowdata/mnist_cnn1.pb',mnist)
File "tmp.py", line 19, in test_model
new_scores = sess.run(y, feed_dict={x:x_in.test.images})
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 889, in run
run_metadata_ptr)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1120, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1317, in _do_run
options, run_metadata)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1336, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [?,784]
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[?,784], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
Caused by op 'Placeholder', defined at:
File "tmp.py", line 26, in <module>
test_model('/home/shringa/tensorflowdata/mnist_cnn1.pb',mnist)
File "tmp.py", line 16, in test_model
_ = tf.import_graph_def(output_graph_def, name="")
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/deprecation.py", line 316, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/importer.py", line 411, in import_graph_def
op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 3069, in create_op
op_def=op_def)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/ops.py", line 1579, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [?,784]
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[?,784], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
mnist_cnn1.pb
文件来提取我的模型并在 mnist 测试图像上对其进行测试,但它会引发占位符形状的错误。
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot = True)
print(type(mnist));
n_classes = 10
batch_size = 128
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32)
def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1,1,1,1], padding= 'SAME')
def maxpool2d(x):
# size of window movement of window
return tf.nn.max_pool(x, ksize =[1,2,2,1], strides= [1,2,2,1], padding = 'SAME')
def convolutional_network_model(x):
weights = {'W_conv1':tf.Variable(tf.random_normal([5,5,1,32])),
'W_conv2':tf.Variable(tf.random_normal([5,5,32,64])),
'W_fc':tf.Variable(tf.random_normal([7*7*64,1024])),
'out':tf.Variable(tf.random_normal([1024, n_classes]))}
biases = {'B_conv1':tf.Variable(tf.random_normal([32])),
'B_conv2':tf.Variable(tf.random_normal([64])),
'B_fc':tf.Variable(tf.random_normal([1024])),
'out':tf.Variable(tf.random_normal([n_classes]))}
x = tf.reshape(x, shape=[-1,28,28,1])
conv1 = conv2d(x, weights['W_conv1'])
conv1 = maxpool2d(conv1)
conv2 = conv2d(conv1, weights['W_conv2'])
conv2 = maxpool2d(conv2)
fc =tf.reshape(conv2,[-1,7*7*64])
fc = tf.nn.relu(tf.matmul(fc, weights['W_fc'])+ biases['B_fc'])
output = tf.matmul(fc, weights['out']+biases['out'])
return output
def train_neural_network(x):
prediction = convolutional_network_model(x)
# OLD VERSION:
#cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(prediction,y) )
# NEW:
cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits_v2(logits=prediction, labels=y) )
optimizer = tf.train.AdamOptimizer().minimize(cost)
hm_epochs = 25
with tf.Session() as sess:
# OLD:
#sess.run(tf.initialize_all_variables())
# NEW:
sess.run(tf.global_variables_initializer())
for epoch in range(hm_epochs):
epoch_loss = 0
for _ in range(int(mnist.train.num_examples/batch_size)):
epoch_x, epoch_y = mnist.train.next_batch(batch_size)
_, c = sess.run([optimizer, cost], feed_dict={x: epoch_x, y: epoch_y})
epoch_loss += c
print('Epoch', epoch, 'completed out of',hm_epochs,'loss:',epoch_loss)
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
print('Accuracy:',accuracy.eval({x:mnist.test.images, y:mnist.test.labels}))
train_neural_network(x)
mnist_cnn1.pb
文件:
python3 tensorflow/tools/quantization/quantize_graph.py --input=/home/shringa/tensorflowdata/mnist_cnn.pb --output=/home/shringa/tensorflowdata/mnist_cnn1.pb --output_node_names=softmax_cross_entropy_with_logits --mode=eightbit
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=/home/shringa/tensorflowdata/mnist_cnn1.pb
最佳答案
原因
问题的原因是您没有为变量/节点命名,因此感到困惑。
当您定义占位符时:
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32)
x
和
y
通过 tensorflow 分配以下名称:
Tensor("Placeholder:0", shape=(?, 784), dtype=float32) <-- x
Tensor("Placeholder_1:0", dtype=float32) <-- y
x = sess.graph.get_tensor_by_name('Placeholder_1:0') # this is y!
x
,而不是
y
.
x = tf.placeholder(tf.float32, [None, 784], name='x')
y = tf.placeholder(tf.float32, name='y')
...
x = sess.graph.get_tensor_by_name('x')
softmax_cross_entropy_with_logits
的名称op 以及使所有推理节点易于访问。
关于tensorflow - 您必须为 MNIST 数据集的 dtype float 和 shape [?,784] 提供占位符张量 'Placeholder' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47492130/
我有两个数据框,它们都有一个 Order ID 和一个 date。 我想在第一个数据帧 df1 中添加一个标志:如果具有相同 order id 和 date 的记录在数据帧 df2,然后添加一个Y:
我正在运行 Python 2.6。我有以下示例,我试图连接 csv 文件中的日期和时间字符串列。根据我设置的 dtype(无与对象),我发现一些我无法解释的行为差异,请参阅帖子末尾的问题 1 和 2。
当尝试通过以下代码将 sklearn 数据集转换为 pandas 数据帧时,出现此错误“ufunc 'add' 不包含签名匹配类型 dtype(' import numpy as np from sk
我正在尝试使用我的代码计算周期图 from scipy import signal import numpy as np import matplotlib.pyplot as plt x = [li
我有 pandas 数据框 df,我想打印出变量列表以及类型和缺失字段的数量(NaN、NA)。 def var_desc(df,dt): print('====================
这个数据类型是如何工作的,我对这个东西很着迷。 1:首先使用python的默认类型:无法工作,引发错误 bins = pd.DataFrame(dtype=[str, int, int], colum
尝试获取小型玩具数据集的直方图时,通过 matplotlib 来自 numpy 的奇怪错误。我只是不确定如何解释错误,这让我很难知道接下来要做什么。 虽然没有找到太多相关信息,但this nltk q
我在减去数据表的两列时遇到问题,我是Python新手,在尝试研究如何解决这个问题失败后,我想知道是否有人有任何见解。我的代码是这样的: response = qc.query(token, sql=q
我运行我的代码,它在第 79 行抛出错误: numpy.core._exceptions.UFuncTypeError: ufunc 'add' did not contain a loop with
我正在尝试创建一个非常简单的程序,它将绘制一条抛物线图,其中 v 是速度,a 是加速度,x是时候了。用户将输入 v 和 a 的值,然后是 v 和 a 以及 x 将确定 y。 我试图用这个来做到这一点:
我构建了一个槽填充(一种序列分类)模型,其结构为:自定义 ELMo 嵌入层 - BiLSTM - CRF。 它训练得很好。但根据预测我得到: 'TypeError: ufunc 'add' did n
是否有比以下方法更优雅的方法来为可能复杂的 dtype 获取相应的真实 numpy dtype? import numpy as np def dtype_to_real(rvs_dtype: np.
对于 jupyter 中的以下 pandas 代码,我试图获取数据类型信息。tab 在 jupyter 中为我提供了有两个属性的信息它同时具有 dtype 和 dtypes import pandas
我有一个用 pandas 加载的 csv 文件,如下所示: classes_dataset2=pd.read_csv("labels.csv") classes_dataset2[0:10] 0
我有一个类似于以下内容的 numpy.dtype: dtype([('value1','>> d = np.dtype([('value1','>> [x[0] for x in d.descr] [
我正在使用 scipy 的 curve_fit 来拟合一些数据的函数,并收到以下错误; Cannot cast array data from dtype('O') to dtype('float64
好吧,似乎在堆栈溢出中提出了几个类似的问题,但似乎没有一个回答正确或正确,也没有描述确切的示例。 我在将数组或列表保存到 hdf5 时遇到问题... 我有几个文件包含 (n, 35) 维度的列表,其中
目前我得到的数组是 arr = array([array([ 2, 7, 8, 12, 14]), array([ 3, 4, 5, 6, 9, 10]), array([0, 1]
我有一个 Pandas 系列。我想检查该系列的数据类型是否在数据类型列表中。像这样的东西: series.dtype not in [pd.dtype('float64'), pd.dtype('fl
我有一个 numpy 数组,我想将其从对象转换为复数。如果我将该数组作为 dtype 字符串并进行转换,则没有问题: In[22]: bane Out[22]: array(['1.000027337
我是一名优秀的程序员,十分优秀!