Предел диска достигнут при использовании autokeras в GoogleColab

#python #google-drive-api #google-colaboratory #auto-keras

#python #google-drive-api #google-colaboratory #автокерас

Вопрос:

Я хотел бы избежать завершения ошибки при достижении предела диска при использовании autokeras в GoogleColab.

В настоящее время я использую и монтирую план GoogleDrive объемом 200 ГБ и сохраняю историю обучения autokeras на диске, чтобы уменьшить объем пространства, используемого в Colab.

Я хотел бы знать, есть ли способ тренироваться с autokeras без использования дискового пространства в GoogleColab.

Ошибка:

 OSError: [Errno 28] No space left on device
 

Код:

 import shutil
import autokeras as ak
import keras as ks
from keras.utils import np_utils
from sklearn.datasets import fetch_openml
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from PIL import Image
import glob
import os
from keras.preprocessing.image import load_img, img_to_array
import sys
import pickle
import requests
from tqdm import tqdm
from io import StringIO
#my_module
from module import sep_dataset, line_send, pre_treatment, model_evaluation, set_datarange



train_folder_path = '/content/drive/MyDrive/data/subJ'

max_model = 30


def make_model():
  input_node = ak.ImageInput()
  output_node = ak.ImageBlock(normalize=False, augment=False, )(input_node)
  output_node = ak.ClassificationHead()(output_node)
  model = ak.AutoModel(inputs=input_node, outputs=output_node, overwrite=True, max_trials=max_model, directory=train_folder_path,)
  return model

t1, v1 = sep_dataset.main(train_folder_path, 0)
t2, v2 = sep_dataset.main(train_folder_path, 1)
t3, v3 = sep_dataset.main(train_folder_path, 2)
train = []
val = []
for i in range(len(t1)):
  train.append([t1[i]] [t2[i]] [t3[i]])
  val.append([v1[i]] [v2[i]] [v3[i]])


r, c, v, p = set_datarange.main(train_folder_path)

for count in range(p, len(val)):
  for i in range(v,3):
    
    X_train, Y_train = pre_treatment.main(train[count][i], len(train[count][i]))
    X_test, Y_test = pre_treatment.main(val[count][i], len(val[count][i]))
    
    model = make_model()

    model.fit(X_train, Y_train, validation_data=(X_test, Y_test))

    his = model.export_model()
    
    save_path = os.path.join(train_folder_path.rsplit(os.sep,1)[0], 'result_info' ,  'model.png')
    
    model_evaluation.main(X_test, Y_test, model, val, train_folder_path, count, i)
    
  v = 0