【问题标题】:TFLearn Alexnet customized to a certain number of classesTFLearn Alexnet 定制了一定数量的类
【发布时间】:2016-06-20 18:16:56
【问题描述】:

我正在使用 TFLearn 中给出的 Alexnet 示例在我自己的图像数据集上进行训练,即 GroZi-120 database,因此我需要稍微更改它以输出 120 个类。

我一般对卷积网络和深度学习不是很熟悉,所以我不确定如何修改代码以正确输出对应于 120 个类的分数。

我尝试将 softmax 行更改为:

network = fully_connected(network, 120, activation='softmax')

但这给了我错误

ValueError: Cannot feed value of shape (64, 17) for Tensor u'TargetsData/Y:0', which has shape '(?, 120)'

有人可以澄清这一点/帮助我弄清楚如何进行吗? 提前致谢!

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    行内:

    model.fit(X, Y, n_epoch=1000, validation_set=0.1, shuffle=True,
          show_metric=True, batch_size=64, snapshot_step=200,
          snapshot_epoch=False, run_id='alexnet_oxflowers17')
    

    您似乎仍将之前的 Y 形状为 [batch_size, 17] 输入到网络中。

    您需要将XY 替换为您自己的。

    【讨论】:

    • 这将如何工作?我已经修改了加载数据以使用我自己的图像目录的输入文件,如下所示:``` X, Y = build_image_dataset_from_dir('../train_photos/', resize=resize_pics, filetypes=['.png' ], convert_gray=False, shuffle_data=shuffle, categorical_Y=one_hot) return X, Y ``` 我的图像目录被分成每个类的子目录。
    • X.shapeY.shape 返回什么?
    • X 和 Y 分别得到 (11194, 224, 224, 3) 和 (11194, 120)。
    • 您能否在model.fit(X, Y) 行之前打印Y.shape 看看是否仍然出现同样的错误?
    • 我想我在此之前出于某种原因将 one_hot 更改为 false,但我将其更改为 true,现在它可以工作了。谢谢!
    猜你喜欢
    • 2020-09-29
    • 2019-12-08
    • 2017-06-28
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 2018-04-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多