- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从事机器学习工作,我想使用 Google Cloud 机器学习服务。
此刻,我已经使用 Tensorflow (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py#L103) 的 retrain.py 代码训练了我的模型,并将结果导出到 cloudml(export 和 export.meta 文件)。但是,当我尝试使用命令(https://cloud.google.com/ml/reference/commandline/predict)预测新数据时:
gcloud beta ml predict
它总是返回相同的结果(我想预测不同的数据)。怎么可能?
我的数据是从 jpeg 以文本格式解码的图像:
echo "{\"image_bytes\": {\"b64\": \"`base64 image.jpg`\"}}" > instances
你有什么建议吗?
最佳答案
此问题有多种可能的原因。首先想到的是模型中的权重在导入时可能被初始化为零。如果图中定义了初始化,就会发生这种情况(参见 the loader )。要检查这一点,请使用以下命令:
from tensorflow.contrib.session_bundle import session_bundle
session, _ = session_bundle.load_session_bundle_from_path("/path/to/model")
print(s.graph.get_collection("serving_init_op"))
如果该集合中有某些内容,请确保它没有初始化变量。
如果没有初始化器,确保权重本身看起来合理,例如,
session, _ = session_bundle.load_session_bundle_from_path("/path/to/model")
print(session.run("name_of_var:0"))
如果所有这些都检查出来,那么您可能需要注意图形的输入以及转换这些输入后的输出。为此,您可以使用 session.run
来运行部分图。例如,您可以通过在 session.run
调用中使用适当的提要和提取来提供 jpeg 字符串并查看整个过程中各个步骤的输出。
例如,使用 this post 中的示例,我们可以从磁盘加载 JPEG,将其提供给图形,然后查看调整大小和缩放后数据的样子:
INPUT_PLACEHOLDER = 'Placeholder:0'
DECODE_AND_RESIZE = 'map/TensorArrayPack_1/TensorArrayGather:0'
SCALED = 'Mul:0'
# Read in a sample image, preferably with small dimensions.
jpg = open("/tmp/testing22222.jpg", "rb").read()
session, _ = session_bundle.load_session_bundle_from_path("/path/to/model")
resized, scaled = session.run([DECODE_AND_RESIZE, SCALED], feed_dict={INPUT_PLACEHOLDER: [jpg]})
通过策略性地将张量的名称放在 fetch
列表中的图表中,您可以检查神经网络的任何给定层中正在发生的事情,尽管最可能的问题在于输入和/或变量。
棘手的部分是找出张量的名称。您可以在定义大多数操作时使用 name
属性,这可能会有所帮助。您还可以使用类似的东西:
print([o.name for o in session.graph.get_operations()])
帮助检查图中的操作。
最后,您可能还想尝试在本地运行图表,以最大限度地减少调试时的反馈周期。查看local_predict.py在示例中获取有关如何执行此操作的示例。这将帮助您快速迭代以识别模型本身的问题。
关于python - Google cloudml 总是给我相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929223/
我从事机器学习工作,我想使用 Google Cloud 机器学习服务。 此刻,我已经使用 Tensorflow (https://github.com/tensorflow/tensorflow/bl
我在追花tutorial用于在 google cloud ml 上重新训练 inception。我可以运行教程、训练、预测,一切都很好。 然后,我用花朵数据集替换了我自己的测试数据集。图像数字的光学字
我关注了this great tutorial并成功训练了一个模型(在 CloudML 上)。我的代码也可以离线进行预测,但现在我尝试使用 Cloud ML 进行预测,但遇到了一些问题。 为了部署我的
我一直在使用 Google 的机器学习平台 cloudML。 大图:我试图找出最干净的方法来获取他们的 docker environment在 Google 计算实例上启动并运行,可以访问 cloud
为了获得更好的上下文,我在 cloud ml 上上传了一个预训练模型。这是一个从 keras 转换为 tensorflow 中可接受的格式的 inceptionV3 模型。 from keras.ap
在生产服务中使用 CloudML 预测 API 的最佳方式是什么? 我见过: https://cloud.google.com/ml/docs/quickstarts/prediction但它依赖于g
我想以超快的速度将 TFRecords 馈送到我的模型中。但是,目前,我的 GPU(GCP 上的单个 K80)负载为 0%,这在 CloudML 上非常慢。 我在 GCS 中有 TFRecords:t
我正在 CloudML 中运行我的预测。我想调用predict REST API来 self 的 NodeJS 应用程序,我想在 AppEngine 中运行的 NodeJS 应用程序中显示预测结果。
我是一名优秀的程序员,十分优秀!