🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3327閲覧

機械学習の結果を保存したい

firstbn

総合スコア11

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/13 01:03

編集2019/11/13 03:36

googlecolaboratryでpytorchのバージョン1.3.1を使って機械学習をしています。
#わからないこと
①trainloss,validloss,acc,bestepoch,bestaccなどの値を1エポックごとに記録して別なファイルに保存したい。
②保存したファイルから値を読み込んでグラフとして出力したい。

現在は訓練のループ中にリスト(x)にそれぞれ追加していって、別なセルで取り出す→グラフにするという方法をしていますが、値をファイルに保存しておいて読み込み→グラフ作成にしたいと思っています。
訓練時のプログラムは以下になります。よろしくお願いいたします。

python

1bestepoch = -1 2bestacc = 0 3x = [] 4for epoch in 80: 5 model.train() 6 trainloss = 0. 7 8 for x_batch, y_batch in progress_bar(train_loader, parent=mb): 9 preds = model(x_batch.cuda()) 10 loss = criterion(preds, y_batch.cuda()) 11 12 optimizer.zero_grad() 13 loss.backward() 14 optimizer.step() 15 16 avg_loss += loss.item() / len(train_loader) 17 18 model.eval() 19 valid_preds = np.zeros((len(x_val), num_classes)) 20 validloss = 0. 21 22 for i, (x_batch, y_batch) in enumerate(valid_loader): 23 preds = model(x_batch.cuda()).detach() 24 loss = criterion(preds, y_batch.cuda()) 25 preds = torch.sigmoid(preds) 26 valid_preds[i * test_batch_size: (i+1) * test_batch_size] = preds.cpu().numpy() 27 28 validloss += loss.item() / len(valid_loader) 29 30 score, weight = acc(y_val, valid_preds) 31 acc = (score * weight).sum() 32 33 if acc > bestacc: 34 bestepoch = epoch + 1 35 bestacc = acc 36 x.append({ 37 'trainloss': trainloss, 'validloss': validloss, 'acc': acc, 'bestacc': bestacc, 'bestepoch':bestepoch}) 38

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こういうことではなく?

書き込み

Python

1import pickle 2pickle.dump(model, open("任意の名前.pickle.dat", "wb"))

読み込み

Python

1import pickle 2pickle.load(open("任意の名前.pickle.dat", "rb"))

投稿2019/11/13 03:02

yamato_user

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

firstbn

2019/11/13 03:19 編集

pickle.dump(model, open("任意の名前.pickle.dat", "wb")) ここのmodelとは何でしょうか? また、複数の値があるのですが書き込んでめちゃくちゃになったりしないんでしょうか。ファイル操作初心者ですみません…
firstbn

2019/11/13 05:49 編集

modelのところをlistの名前にして保存でできました!読み込みもばっちりです。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問