FileNotFoundError: Нет такого файла: -> Произошла ошибка из-за TimeOut Google Диска? - PullRequest
1 голос
/ 19 июня 2020

Я создал DataGenerator с классом Sequence.

import tensorflow.keras as keras
from skimage.io import imread
from skimage.transform import resize
import numpy as np
import math
from tensorflow.keras.utils import Sequence

Here, `x_set` is list of path to the images and `y_set` are the associated classes.

class DataGenerator(Sequence):
    def __init__(self, x_set, y_set, batch_size):
    self.x, self.y = x_set, y_set
    self.batch_size = batch_size

def __len__(self):
    return math.ceil(len(self.x) / self.batch_size)

def __getitem__(self, idx):
    batch_x = self.x[idx * self.batch_size:(idx + 1) *
    self.batch_size]
    batch_y = self.y[idx * self.batch_size:(idx + 1) *
    self.batch_size]

    return np.array([
        resize(imread(file_name), (224, 224))
           for file_name in batch_x]), np.array(batch_y)

Затем я применил это к своим данным обучения и проверки. X_train - это список строк, который содержит пути изображения к обучающим данным. y_train - однозначно закодированные метки обучающих данных. То же самое для данных проверки.

Я создал пути к изображениям, используя этот код:

X_train = []
for name in train_FileName:
  file_path = r"/content/gdrive/My Drive/data/2017-IWT4S-CarsReId_LP-dataset/" + name
  X_train.append(file_path)

После этого я применил DataGenerator к данным обучения и проверки:

training_generator = DataGenerator(X_train, y_train, batch_size=32)
validation_generator = DataGenerator(X_val, y_val, batch_size=32)

После этого я использовал метод fit_generator для запуска модели:

model.fit_generator(generator=training_generator,
                    validation_data=validation_generator,
                    steps_per_epoch = num_train_samples // 32,
                    validation_steps = num_val_samples // 32,
                    epochs = 10,
                    use_multiprocessing=True,
                    workers=2)

На процессоре все работало нормально в первый раз, моя модель была инициализирована и началась первая эпоха. Затем я изменил тип среды выполнения в Google Colab на GPU и снова запустил модель.

И получил следующую ошибку:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-79-f43ade94ee10> in <module>()
      5                     epochs = 10,
      6                     use_multiprocessing=True,
----> 7                     workers=2)

16 frames
/usr/local/lib/python3.6/dist-packages/imageio/core/request.py in _parse_uri(self, uri)
    271                 # Reading: check that the file exists (but is allowed a dir)
    272                 if not os.path.exists(fn):
--> 273                     raise FileNotFoundError("No such file: '%s'" % fn)
    274             else:
    275                 # Writing: check that the directory to write to does exist

FileNotFoundError: No such file: '/content/gdrive/My Drive/data/2017-IWT4S-CarsReId_LP-dataset/s01_l01/1_1.png'

Сегодня я получил эту ошибку также при запуске программы. без использования графического процессора. При запуске программы Колаб сказал мне, что был Google Drive Time Out. Итак, эта ошибка связана с тайм-аутом Google Диска? И если да, то как я могу это решить? Кто-нибудь знает, что мне изменить в программе?

Ответы [ 2 ]

1 голос
/ 27 июня 2020

Вы можете написать этот код, чтобы избежать тайм-аута в google colab в консоли

ConnectButton() {     
    console.log("Connect pushed");      
    document.querySelector("#top-toolbar > colab-connect- 
        button").shadowRoot.querySelector("#connect").click()  
} 
setInterval(ConnectButton,60000);

Источник: Как предотвратить отключение Google Colab?

0 голосов
/ 19 июня 2020

Проблема, похоже, во вводе. Ваша модель не может найти входной файл. Если вы измените время выполнения, произойдет сброс к заводским настройкам. Все содержимое вашего диска в сеансе будет удалено.

Запускать ячейки с самого начала, если вы изменяете время выполнения между ними.

...