前提・実現したいこと
GoogleColabでautokeras使用時にディスクの上限に達してのエラー終了を回避したいです。
現在、GoogleDriveの200GBプランを使用しマウントして、autokerasの学習履歴の保存場所をドライブ内にしColab内の使用容量を減らして使用しています。
GoogleColab上のディスク容量を消費せずにautokerasで学習を行える方法があれば教えていただきたいです。
発生している問題・エラーメッセージ
OSError: [Errno 28] No space left on device
該当のソースコード
python
1%%monitor_cell "subJ" 2import shutil 3import autokeras as ak 4import keras as ks 5from keras.utils import np_utils 6from sklearn.datasets import fetch_openml 7import pandas as pd 8import numpy as np 9import matplotlib 10import matplotlib.pyplot as plt 11from PIL import Image 12import glob 13import os 14from keras.preprocessing.image import load_img, img_to_array 15import sys 16import pickle 17import requests 18from tqdm import tqdm 19from io import StringIO 20# 画像用 21from keras.preprocessing.image import array_to_img, img_to_array, load_img 22#自作モジュール 23from module import sep_dataset, line_send, pre_treatment, model_evaluation, set_datarange 24 25 26#教師データが入っているフォルダのパス 27train_folder_path = '/content/drive/MyDrive/実験データ/subJ' 28#モデルの最大試行回数 29max_model = 30 30 31#モデル構築(Auto-kerasのモデル設定) 32def make_model(): 33 input_node = ak.ImageInput() 34 output_node = ak.ImageBlock(normalize=False, augment=False, )(input_node) 35 output_node = ak.ClassificationHead()(output_node) 36 model = ak.AutoModel(inputs=input_node, outputs=output_node, overwrite=True, max_trials=max_model, directory=train_folder_path,) 37 return model 38 39#テスト・トレーニングデータに分離、検証データの入れ替え及び全パターンの組み合わせの作成 40t1, v1 = sep_dataset.main(train_folder_path, 0) 41t2, v2 = sep_dataset.main(train_folder_path, 1) 42t3, v3 = sep_dataset.main(train_folder_path, 2) 43train = [] 44val = [] 45for i in range(len(t1)): 46 train.append([t1[i]]+[t2[i]]+[t3[i]]) 47 val.append([v1[i]]+[v2[i]]+[v3[i]]) 48 49#前回学習中断箇所の取得(r=中断箇所のセルのrow、 c=中断箇所のセルのcolumn、 v=検証データの数字、 p=何個目の分割パターンかの数字) 50r, c, v, p = set_datarange.main(train_folder_path) 51 52#全パターンを回す 53for count in range(p, len(val)): 54 for i in range(v,3): 55 #データの前処理 56 X_train, Y_train = pre_treatment.main(train[count][i], len(train[count][i])) 57 X_test, Y_test = pre_treatment.main(val[count][i], len(val[count][i])) 58 59 #CNNモデルの構築(max_trials:モデルの試行回数) 60 model = make_model() 61 62 #モデルの訓練(学習) 63 model.fit(X_train, Y_train, validation_data=(X_test, Y_test)) 64 65 #学習性能の推移 66 his = model.export_model() 67 68 #ネットワークモデルの可視化(画像の保存) 69 save_path = os.path.join(train_folder_path.rsplit(os.sep,1)[0], 'result_info' , 'model.png') 70 #plot_model(model, show_shapes=True, show_layer_names=False, to_file=save_path) 71 72 #学習済みモデルの保存 73 #model.save('/content/drive/My Drive/実験データ/subM/subM_CNN_model.h5') 74 75 #モデル精度評価 76 model_evaluation.main(X_test, Y_test, model, val, train_folder_path, count, i) 77 78 #特徴マップ(畳み込み層)出力 79 #plot_conv_outputs1(model, X_test[0], train_folder_path, val) 80 v = 0
あなたの回答
tips
プレビュー