前提
下記のコードは参考書籍のコードにread_para関数を追加したものの一部です。
これらは同一ファイル内にあります。
read_para関数はinit_mnist関数内で呼びます。
すると#errorとある個所で下記のメーッセージがでます。
この行は空白で区切られた数値をlznctにリストでセットすることです。
エラーの内容は、line.split(' ')は文字列であるべしで、数値やリストではないこと、と解釈しましたが、他の例ではうまく処理されます。
どこまでコードを開示すればよいかわかりかねますが、とりあえずの範囲を開示しました。
何が原因かわかるでしょうか。ご教示頂ければ幸いです。
python 3.8 環境はspyder
参考書籍名 ゼロから作るDeeplerning 7章mnist.pyより改変
発生している問題・エラーメッセージ
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
該当のソースコード
python
1def read_para(): 2 fn = dataset_dir + "/" + "para.txt" 3 f=open(fn, "r") 4 line = f.readline() 5 ------- 6 line = f.readline() 7 file_size = int(line) 8 print("file_size",file_size) # file_size 129600000 9 10 line = f.readline() 11 print(line) # 41793 25871 10966 24832 40538 12 lznct = int(line.split(' ')) # error発生 13 line = f.readline() 14 tznct = int(line.split(' ')) 15 print("lznct",lznct) 16 print("tznct",tznct) 17 18def init_mnist(): 19 print("init_mnist ") 20 read_para() 21 22 download_mnist() 23 dataset = _convert_numpy() 24 print("Creating pickle file ...") 25 with open(save_file, 'wb') as f: 26 pickle.dump(dataset, f, -1) 27 print("Done!") 28
試したこと
再現性が複雑なので詳細には記述しずらいのですが、関係なさそうに思われる個所の変更で違う現象もあります。それで、一番簡明と思われるところをまず質問しました。C言語などと違い、変数や関数の関係がインタプリタのためいまいち
理解が進まない所で苦慮しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー