我已经成功地通过了官方教程,它解释了如何重新训练启动-v3模型,后来成功地重新训练了相同的模型,以便为特定的目的训练模型。
然而,与其他简单的模型相比,该模型是复杂和缓慢的,比如inception v1,它的准确性足以满足某些任务的需要。具体来说,我想重新训练这个模型,以便在Android上使用它,而且理想情况下,在速度方面的性能应该可以与原始的TensorFlow安卓演示相媲美。无论如何,我尝试用此链接中的以下修改重新训练retrain.py中的inception v1模型:
BOTTLENECK_TENSOR_NAME = 'avgpool0/reshape:0'
BOTTLENECK_TENSOR_SIZE = 2048
MODEL_INPUT_WIDTH = 224
MODEL_INPUT_HEIGHT = 224
MODEL_INPUT_DEPTH = 3
JPEG_DATA_TENSOR_NAME = 'input'
RESIZED_INPUT_TENSOR_NAME = 'input'相对于初始v3,v1没有任何decodeJpeg或调整大小的节点:
初始v3节点:
DecodeJpeg/contents
DecodeJpeg
Cast
ExpandDims/dim
ExpandDims
ResizeBilinear/size
ResizeBilinear
...
pool_3
pool_3/_reshape/shape
pool_3/_reshape
softmax/weights
softmax/biases
softmax/logits/MatMul
softmax/logits
softmax初始v1节点:
input
conv2d0_w
conv2d0_b
conv2d1_w
conv2d1_b
conv2d2_w
conv2d2_b
...
softmax1_pre_activation
softmax1
avgpool0/reshape/shape
avgpool0/reshape
softmax2_pre_activation/matmul
softmax2_pre_activation
softmax2
output
output1
output2所以我想在输入图形之前,必须对图像进行整形。
现在,当命中以下函数时,会发生错误:
def run_bottleneck_on_image(sess, image_data, image_data_tensor,
bottleneck_tensor):
"""Runs inference on an image to extract the 'bottleneck' summary layer.
Args:
sess: Current active TensorFlow Session.
image_data: Numpy array of image data.
image_data_tensor: Input data layer in the graph.
bottleneck_tensor: Layer before the final softmax.
Returns:
Numpy array of bottleneck values.
"""
bottleneck_values = sess.run(
bottleneck_tensor,
{image_data_tensor: image_data})
bottleneck_values = np.squeeze(bottleneck_values)
return bottleneck_values错误:
TypeError:不能将feed_dict键解释为张量:不能将操作转换为张量。
我想,在传递初始v1图中的以下节点之后,必须重新调整初始v3图输入节点上的数据以匹配这些数据:
DecodeJpeg/contents
DecodeJpeg
Cast
ExpandDims/dim
ExpandDims
ResizeBilinear/size
ResizeBilinear如果有人已经成功地重新培训了初始v1模型,或者知道如何在v1案例中重组数据以匹配初始v3,那么我将非常感谢您提供的任何建议或建议。
发布于 2016-11-04 16:49:29
不知道你是否解决了这个问题,但我正在处理一个类似的问题。
我正在尝试使用一个不同的模型(不是“盗梦空间-v1”或“盗梦空间-3”)和“盗梦空间-v3转移学习教程”。这篇文章似乎正确地重新映射了新模型的输入(在您的示例中是-v1),以便很好地处理本教程其余部分使用的jpeg编码:在tensorflow中输入图像数据进行迁移学习。
我遇到的唯一问题是输入中出现了一个错误,即“不能将uint8类型的张量转换为输入类型的float32”,但这至少会使您走上正确的轨道。
祝好运!
https://stackoverflow.com/questions/40281382
复制相似问题