前提・実現したいこと
AutoMLのライブラリであるAuto-kerasを使って中断された学習を再開したいです。
発生している問題・エラーメッセージ
下記のコードではうまく再開できていません
該当のソースコード
python
1import shutil 2import autokeras as ak 3import keras as ks 4from keras.utils import np_utils 5from sklearn.datasets import fetch_openml 6import pandas as pd 7import numpy as np 8import matplotlib 9import matplotlib.pyplot as plt 10from PIL import Image 11import glob 12import os 13from keras.preprocessing.image import load_img, img_to_array 14import sys 15import pickle 16import requests 17from tqdm import tqdm 18from io import StringIO 19import time 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 = '/Users/t/Desktop/subM' 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=False, 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 model_evaluation.main(X_test, Y_test, model, val, train_folder_path, count, i) 67 68 shutil.rmtree(os.path.join(train_folder_path, 'auto_model')) 69 v = 0
あなたの回答
tips
プレビュー