Chainerでの機械学習
Chainerでの機械学習の実装中でしたが、コマンドプロンプトでpython train_imagenet.py -g 0 train.txt test.txt (2>&1 | tee log)と打ち込んだ際にエラーが出てしまいました。インターネットなどで調べましたがどうすればいいか分かりませんでした。
初歩的な問題だと思いますがどうかよろしくお願いします。
※文字数の都合上後半のコードを省いてあります。
python
1エラーメッセージ 2File "train_imagenet.py", line 96, in <module> 3 train_list = load_image_list(args.train, args.root) 4 File "train_imagenet.py", line 89, in load_image_list 5 for line in open(path): 6TypeError: invalid file: None 7 8 9 10 11 12ソースコード 13train_imagenet.py 14 15 16parser = argparse.ArgumentParser(description='Learning convnet from ILSVRC2012 dataset') 17 18parser.add_argument('--train', help='Path to training image-label list file') 19parser.add_argument('--val', help='Path to validation image-label list file') 20 21parser.add_argument('--mean', '-m', default='mean.npy', 22 help='Path to the mean file (computed by compute_mean.py)') 23 24parser.add_argument('--arch', '-a', default='nin', 25 help='Convnet architecture \ 26 (nin, alex, alexbn, googlenet, googlenetbn)') 27parser.add_argument('--batchsize', '-B', type=int, default=32, 28 help='Learning minibatch size') 29parser.add_argument('--val_batchsize', '-b', type=int, default=250, 30 help='Validation minibatch size') 31parser.add_argument('--epoch', '-E', default=50, type=int, 32 help='Number of epochs to learn') 33parser.add_argument('--gpu', '-g', default=-1, type=int, 34 help='GPU ID (negative value indicates CPU)') 35parser.add_argument('--loaderjob', '-j', default=20, type=int, 36 help='Number of parallel data loading processes') 37parser.add_argument('--root', '-r', default='.', 38 help='Root directory path of image files') 39parser.add_argument('--out', '-o', default='model', 40 help='Path to save model on each validation') 41parser.add_argument('--outstate', '-s', default='state', 42 help='Path to save optimizer state on each validation') 43parser.add_argument('--initmodel', default='', 44 help='Initialize the model from given file') 45parser.add_argument('--resume', default='', 46 help='Resume the optimization from snapshot') 47parser.add_argument('--test', dest='test', action='store_true') 48parser.set_defaults(test=False) 49args = parser.parse_args(args=[]) 50if args.gpu >= 0: 51 cuda.check_cuda_available() 52xp = cuda.cupy if args.gpu >= 0 else np 53 54assert 50000 % args.val_batchsize == 0 55 56if args.test: 57 denominator = 1 58else: 59 denominator = 100000 60 61# Prepare dataset 62train_list = load_image_list(args.train, args.root) **←** 63 64val_list = load_image_list(args.val, args.root) 65 66mean_image = np.load(args.mean)
このままではコードが読めないので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
pythonのコードの一番最初の行のすぐ上に
```python
だけの行を追加してください
また、pythonのコードの一番最後の行のすぐ下に
```
だけの行を追加してください
または、
https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif
を見て、そのようにしてみてください
現状、コードがとても読み辛いです
質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
> train_list = load_image_list(args.train, args.root)
のすぐ上に
print(args.train)
を追加して実行したら、「train.txt」ではなく「None」と表示されませんでしょうか?
もし「None」と表示されるなら、コードを
args = parser.parse_args(args=[])
↓ 修正
args = parser.parse_args()
と変えてから、コマンドプロンプトで
python train_imagenet.py -g 0 --train train.txt --val test.txt
と実行してみてください
print(args.train)を追加したところ、Noneと表示されたのでコードを修正すると
Traceback (most recent call last):
File "train_imagenet.py", line 96, in <module>
mean_image = np.load(args.mean)
File "C:\Program Files\Python37\lib\site-packages\numpy\lib\npyio.py", line 445, in load
raise ValueError("Cannot load file containing pickled data "
ValueError: Cannot load file containing pickled data when allow_pickle=False
というエラーが出てしまいました。
この質問の
> train_list = load_image_list(args.train, args.root)
のエラーが直ったので、それよりもちょっと下の
> mean_image = np.load(args.mean)
まで処理が進んで、そこで別のエラーが出たのです
内容が違うので、別の質問にしてください

回答1件
あなたの回答
tips
プレビュー