使用 ResNet-50 进行图像分类

Image classification using ResNet-50

我尝试使用以下代码训练 ResNet 50 进行图像分类:https://github.com/mlperf/training/blob/master/image_classification/tensorflow/official/resnet/imagenet_main.py,但在此过程中,我在第 322 行 seed = int(argv[1]) IndexError 中遇到错误:列表索引超出范围。我该如何解决这个错误?我正在使用 Tenserflow 2.0.

您的错误消息 IndexError: list index out of range 表明列表 argv 的长度 < 2(因为索引 1 已经越界)。

sys.argv 包含您在命令行上传递的 参数值 的列表。第一个元素 argv[0] 始终是您调用的脚本的名称。 在您的情况下,这意味着您没有传递任何参数。

所以查看代码,它尝试读取 - 作为第一个命令行选项 - 一个种子,它可以用来初始化各种随机数生成器 (RNG)。 所以你想要做的是用类似的东西调用你的脚本:

python imagenet_main.py r4nd0ms33d

其中 r4nd0ms33d 是一些随机值。

有时使用固定值明确地为 RNG 播种可能很有用,例如当您希望训练结果可重现时。


您可以试用这个简单的 Python 程序:

import sys                                                                      

if __name__ == '__main__':                                                      
    print(sys.argv) 

将其保存到 test.py 中,如果您 运行 将其打印为 python test.pypython test.py randompython test.py random seed

,则查看它打印的内容