使用 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.py
与 python test.py random
与 python test.py random seed
,则查看它打印的内容
我尝试使用以下代码训练 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.py
与 python test.py random
与 python test.py random seed