我正在开发一个图像分类器,其中 tensorflow估算器 + keras 重新训练 inception_v3 上的最后一层 inception_v3 strong> GCP ML引擎。
使用tf.keras.estimator.model_to_estimator
导出keras模型,输入函数接收存储在 GCP云存储上的图像的路径,使用tf.image.decode_jpeg
打开图像并返回包含的数据集格式为dict(zip(['inception_v3_input'], [image])), label
我试图定义tf.estimator.export.ServingInputReceiver
,但我在定义它时遇到了一些麻烦。
使用没有标签的输入函数,模型正在使用predict
方法正确地进行预测。
我的想法是重用input_function来解码图像,只将云存储上的图像路径传递给google端点的预测,但是我无法理解如何去做。
感谢您的帮助
答案 0 :(得分:0)
如果我的理解正确,您的问题是考虑到您要通过这种方式解码图像,如何从Cloud Storage获取文件:
image_decoded = tf.image.decode_jpeg(image_string)
因此,在这种情况下,您可以使用:
image_string = file_io.FileIO(filename, mode='r')
首先导入file_io:
from tensorflow.python.lib.io import file_io
根据the comments on this question about reading input data from GCS,使用file_read函数应提供相同的结果,因为“对抽象文件io和文件系统进行了大量工作,因此所有io功能都可以一致地工作”。因此,您也可以尝试使用read_file函数。