2

I would like to avoid the error termination when the disk limit is reached when using autokeras in GoogleColab.

I am currently using and mounting a 200GB GoogleDrive plan and storing the autokeras training history in the drive to reduce the amount of space used in Colab.

I would like to know if there is a way to train with autokeras without consuming disk space on GoogleColab.

Error:

OSError: [Errno 28] No space left on device

Code:

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
desertnaut
  • 57,590
  • 26
  • 140
  • 166
nazaa
  • 21
  • 1

0 Answers0