FileNotFoundError: No such file: -> Error occuring due to TimeOut of Google Drive?

FileNotFoundError: No such file: -> Error occuring due to TimeOut of Google Drive?

我用序列 class 创建了一个 DataGenerator

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)

在 CPU 上,它第一次运行良好,我的模型已初始化,第一个纪元开始。然后,我将 Google Colab 中的 运行time 类型更改为 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'

今天,运行在没有使用 GPU 的情况下运行程序时,我也遇到了这个错误。当 运行 启动程序时,Colab 告诉我 Google Drive Time Out。那么,这个错误是由于 Google Drive 超时造成的吗?如果是,我该如何解决? 有谁知道我应该在程序中更改什么?

好像是输入的问题。您的模型找不到输入文件。如果您更改运行时间,则会恢复出厂设置。会话中的所有磁盘内容都将被删除。

运行 个单元格,如果您在两者之间更改运行时。

您可以编写此代码以避免 google 控制台中的 colab 超时

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

来源:How to prevent Google Colab from disconnecting?