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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 03:19 編集
2019/11/13 05:49 編集