0

我正在为神经网络使用带有批处理的 tensorflow 服务。我的代码基于inception 网络的示例:我想对图中的图像进行解码和预处理,因此我修改了导出脚本,以便使用 map 函数对图像进行预处理:

...
with tf.Graph().as_default():
    # Build inference model.
    jpegs = tf.placeholder(tf.string, shape=(None))
    images = tf.map_fn(lambda jpeg : image_processing.image_preprocessing(jpeg, False), jpegs,
                       dtype=tf.float32, back_prop=False)

    # Run inference.
    logits, _ = inception_model.inference(images, len(labels_names))
 ...

image_preprocessing与 inception 模型中的相同。它接收以字节为单位的编码图像,并返回一个浮点值的张量,图像被解码、缩放和预处理。

该模型已正确导出,但是当我在 tensorflow 服务中对其进行测试时,我收到以下错误:

grpc.framework.interfaces.face.face.NetworkError: NetworkError(code=StatusCode.INTERNAL, details="输出 0 类型字符串与节点 _recv_map/TensorArrayPack_0 = _Recvclient_terminated=true, recv_device="/job 声明的输出类型浮点不匹配:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=6080232697619483985, tensor_name="map/TensorArrayPack:0" , tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"")

输出类型应该是一个浮点张量,就像它在 image_preprocessing 中一样,但它说它是一个字符串。怎么了?(image_preprocessing 在代码的其他部分没有任何问题,所以我认为我在这些行中做错了)

4

0 回答 0