首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何再培训开始-v1模型?

问如何再培训开始-v1模型?
EN

Stack Overflow用户
提问于 2016-10-27 09:47:10
回答 2查看 1.9K关注 0票数 1

我已经成功地通过了官方教程,它解释了如何重新训练启动-v3模型,后来成功地重新训练了相同的模型,以便为特定的目的训练模型。

然而,与其他简单的模型相比,该模型是复杂和缓慢的,比如inception v1,它的准确性足以满足某些任务的需要。具体来说,我想重新训练这个模型,以便在Android上使用它,而且理想情况下,在速度方面的性能应该可以与原始的TensorFlow安卓演示相媲美。无论如何,我尝试用此链接中的以下修改重新训练retrain.py中的inception v1模型:

代码语言:javascript
复制
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节点:

代码语言:javascript
复制
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节点:

代码语言:javascript
复制
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

所以我想在输入图形之前,必须对图像进行整形。

现在,当命中以下函数时,会发生错误:

代码语言:javascript
复制
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图输入节点上的数据以匹配这些数据:

代码语言:javascript
复制
DecodeJpeg/contents
DecodeJpeg
Cast
ExpandDims/dim
ExpandDims
ResizeBilinear/size
ResizeBilinear

如果有人已经成功地重新培训了初始v1模型,或者知道如何在v1案例中重组数据以匹配初始v3,那么我将非常感谢您提供的任何建议或建议。

EN

回答 2

Stack Overflow用户

发布于 2016-11-04 16:49:29

不知道你是否解决了这个问题,但我正在处理一个类似的问题。

我正在尝试使用一个不同的模型(不是“盗梦空间-v1”或“盗梦空间-3”)和“盗梦空间-v3转移学习教程”。这篇文章似乎正确地重新映射了新模型的输入(在您的示例中是-v1),以便很好地处理本教程其余部分使用的jpeg编码:在tensorflow中输入图像数据进行迁移学习。

我遇到的唯一问题是输入中出现了一个错误,即“不能将uint8类型的张量转换为输入类型的float32”,但这至少会使您走上正确的轨道。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2018-04-13 17:09:22

(对于那些仍然感兴趣的人)

对于初始-v1,瓶颈张量应该是1024。对于我来说,下面的设置适用于提到的起始-v1 For 这个重新训练脚本。不需要jpeg数据张量或其他。

代码语言:javascript
复制
bottleneck_tensor_name = 'avgpool0/reshape:0'
bottleneck_tensor_size = 1024
input_width = 224
input_height = 224
input_depth = 3
resized_input_tensor_name = 'input:0'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40281382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档