- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试让 mnist cnn 工作,以便一次对一张图像进行预测。我已经学习了 tensorflow 教程代码并尝试将 estimator.predict 与模型一起使用,但目前出现错误:
InvalidArgumentError (see above for traceback): Input to reshape is a tensor with 1 values, but the requested shape requires a multiple of 784
[[Node: Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/job:localhost/replica:0/task:0/device:GPU:0"](fifo_queue_DequeueUpTo/_53, Reshape/shape)]]
如果我打印提供给预测输入函数的 predict_data 列表,它包含 784 个元素。
模型训练正常,评估正常。该模型已经过训练,所以我在这里跳过了训练代码,但这就是我所拥有的:
def main(unused_argv):
# Load training and eval data
mnist = tf.contrib.learn.datasets.load_dataset("mnist")
train_data = mnist.train.images # Returns np.array
train_labels = np.asarray(mnist.train.labels, dtype=np.int32)
eval_data = mnist.test.images # Returns np.array
eval_labels = np.asarray(mnist.test.labels, dtype=np.int32)
# Create the Estimator
mnist_classifier = tf.estimator.Estimator(
model_fn=cnn_model_fn, model_dir="/tmp/mnist_convnet_model")
# Set up logging for predictions
# Log the values in the "Softmax" tensor with label "probabilities"
tensors_to_log = {"probabilities": "softmax_tensor"}
logging_hook = tf.train.LoggingTensorHook(
tensors=tensors_to_log, every_n_iter=50)
# # Train the model
# train_input_fn = tf.estimator.inputs.numpy_input_fn(
# x={"x": train_data},
# y=train_labels,
# batch_size=100,
# num_epochs=None,
# shuffle=True)
# mnist_classifier.train(
# input_fn=train_input_fn,
# steps=20000,
# hooks=[logging_hook])
# Evaluate the model and print results
# eval_input_fn = tf.estimator.inputs.numpy_input_fn(
# x={"x": eval_data},
# y=eval_labels,
# num_epochs=1,
# shuffle=False)
# eval_results = mnist_classifier.evaluate(input_fn=eval_input_fn)
# print(eval_results)
predict_data = eval_data[1]
predict_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": predict_data},
y=None,
batch_size=1,
num_epochs=1,
shuffle=False,
num_threads=1)
predict_results = mnist_classifier.predict(predict_input_fn)
print(predict_data)
for idx, prediction in enumerate(predict_results):
print(idx)
# print(prediction)
如能提供帮助,我们将不胜感激。
更新:我尝试按照下面的建议 reshape ,但得到了同样的错误。完整的跟踪是:
Traceback (most recent call last):
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 1323, in _do_call
return fn(*args)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 1302, in _run_fn
status, run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 1 values, but the requested shape requires a multiple of 784
[[Node: Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/job:localhost/replica:0/task:0/device:GPU:0"](fifo_queue_DequeueUpTo/_53, Reshape/shape)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Workspace\eclipse\mnist_cnn\cnn_mnist.py", line 180, in <module>
tf.app.run()
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\platform\app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "D:\Workspace\eclipse\mnist_cnn\cnn_mnist.py", line 170, in main
for idx, prediction in enumerate(predict_results):
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\estimator\estimator.py", line 420, in predict
preds_evaluated = mon_sess.run(predictions)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 521, in run
run_metadata=run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 892, in run
run_metadata=run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 967, in run
raise six.reraise(*original_exc_info)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\six.py", line 693, in reraise
raise value
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 952, in run
return self._sess.run(*args, **kwargs)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 1024, in run
run_metadata=run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\training\monitored_session.py", line 827, in run
return self._sess.run(*args, **kwargs)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 889, in run
run_metadata_ptr)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 1120, in _run
feed_dict_tensor, options, run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 1317, in _do_run
options, run_metadata)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\client\session.py", line 1336, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 1 values, but the requested shape requires a multiple of 784
[[Node: Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/job:localhost/replica:0/task:0/device:GPU:0"](fifo_queue_DequeueUpTo/_53, Reshape/shape)]]
Caused by op 'Reshape', defined at:
File "D:\Workspace\eclipse\mnist_cnn\cnn_mnist.py", line 180, in <module>
tf.app.run()
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\platform\app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "D:\Workspace\eclipse\mnist_cnn\cnn_mnist.py", line 170, in main
for idx, prediction in enumerate(predict_results):
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\estimator\estimator.py", line 411, in predict
features, None, model_fn_lib.ModeKeys.PREDICT, self.config)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\estimator\estimator.py", line 694, in _call_model_fn
model_fn_results = self._model_fn(features=features, **kwargs)
File "D:\Workspace\eclipse\mnist_cnn\cnn_mnist.py", line 31, in cnn_model_fn
input_layer = tf.reshape(features["x"], [-1, 28, 28, 1])
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 3937, in reshape
"Reshape", tensor=tensor, shape=shape, name=name)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\framework\ops.py", line 2956, in create_op
op_def=op_def)
File "C:\Users\artma\Miniconda3\envs\vpilot\lib\site-packages\tensorflow\python\framework\ops.py", line 1470, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): Input to reshape is a tensor with 1 values, but the requested shape requires a multiple of 784
[[Node: Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/job:localhost/replica:0/task:0/device:GPU:0"](fifo_queue_DequeueUpTo/_53, Reshape/shape)]]
更新:好像破解了。感谢 xdurch0 让我走上正轨。
最佳答案
predict_data
只是一个 784 元素向量。这将被视为包含 784 个元素(即不同的输入)的数据集,每个元素都是一个标量。您需要将 predict_data
reshape 为 (1, 784),让 TF 知道这是一个只有一个元素的数据集,它是一个 784 元素向量。例如。 predict_data[np.newaxis, :]
或 predict_data.reshape((1, 784))
。
关于python - 如何让 estimator.predict 预测一个样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251878/
这里有没有人在使用Google Prediction API?为了什么?它“起作用”了吗? 最佳答案 如果您正在寻找实际案例,请查看此案例automatically assigns priority
无论如何,学习R ..: 在简单的x和y回归中,我输入: predict(data1.lm, interval="prediction") 和 predict(data1.lm, interval="
我创建并调整了多个模型,但在尝试预测它们时遇到了问题。我首先按如下方式运行代码来调整 LDA 模型。 library(MASS) library(caret) library(randomForest
问题 我在 R 中训练了一个线性回归来预测 this.target来自 city , 数据框中的变量 data .这个训练是在数据的一个子集上完成的,它由 train.index 指定。 . mode
我正在检查 tf-serving 示例,发现 inception_client.py mnist_client.py 时使用 result = Stub.Predict(request, 10.0)使
我已在 Google ML Engine 中上传了该模型的一个版本,其中包含 saved_model.pb 和一个变量文件夹。当我尝试执行命令时: gcloud ml-engine local pre
请先在我们的 GitHub 存储库中搜索类似问题。如果您找不到类似的示例,您可以使用以下模板: 系统(请填写以下信息): - 操作系统:Ubuntu 18.04 - Python版本:3.6.7 -
我正在研究一个简单的 LL(1) 解析器生成器,我遇到了给定某些输入语法的 PREDICT/PREDICT 冲突问题。例如,给定如下输入语法: E → E + E | P P → 1 我可以
我正在对具有多个预测变量的线性模型的预测值求和,如下例所示,并希望计算该总和的组合方差、标准误差和可能的置信区间。 lm.tree <- lm(Volume ~ poly(Girth,2), data
我是 R 和统计学的新手。所以这个问题可能有点愚蠢,但我想知道 R 中的 predict() 和 predict.lm() 之间是否有任何区别?我认为它们是相同的,但如果它们是相同的,为什么会有两个不
我尝试了针对this question而发布的答案,但是错误没有改变。我试图以相同的方式预处理训练集和测试集。它们来自两个不同的文件,我不确定我的老师是否会把我混合在一起,所以在拆分它们之前进行预处理
使用随机森林包:- #install.packages("randomForest") library(randomForest) 我使用在线代码在我的系统上运行随机森林。我得到了一个具有混淆矩阵和准
我有一个模型 (fit),基于上个月之前的历史信息。现在我想使用我的模型来预测当月的情况。当我尝试调用以下代码时: predicted fit$modelInfo$label [1]“随机森林” 因此
我正在尝试找出应用于列表的操作。我有列表/数组名称预测并执行以下指令集。 predictions[predictions >> a = np.array([1,2,3,4,5]) #define ar
此 R 代码引发警告 # Fit regression model to each cluster y fit$rank 检查 另一种方法是拥有比可用变量更多的参数: fit2 <- lm(y ~
我不是 R 专家。我正在尝试计算多项式模型生成的偏差: f calc.bias(f, polydeg, x))。我使用的整个代码: library(PolynomF) f <- function(x)
谁能帮我解决我的问题?我似乎无法从互联网上得到任何答案。我一直在寻找一整天。所以这是我的问题。我正在使用 opencv4android 2.4.10 和 Android Studio 作为我的 IDE
我可以使用哪种方法来根据姓氏来预测某人的国籍? 我有大量的文字和作者姓氏。我想确定哪些语言是由拉丁语使用者撰写的,哪些文本是由以英语为母语的使用者撰写的,以便研究一组中的某些写作风格模式是否与另一组中
我很好奇克服“冷启动”问题的方法/途径是什么,当新用户或项目进入系统时,由于缺乏有关该新实体的信息,因此进行推荐是一个问题。 我可以考虑做一些基于预测的推荐(例如性别、国籍等)。 最佳答案 您可以冷启
我正在使用零膨胀负二项式模型(包:pscl)对电影通过联系网络(基于电话数据)的传播进行建模 m1 我的变量是: 因变量: 扩散链的长度(计数 [0,36]) 自变量: 电影特征(虚拟变量和连续变量
我是一名优秀的程序员,十分优秀!