我已经处理并保存了一个大型的视频和音频文件数据集(大约8至9 GB的数据)。 这些数据被保存为两个numpy数组,一个用于每个模态。 文件的形状为(示例数量,最长时间长度,特征长度)
我想使用这些数据来训练我的神经网络进行分类任务。 我使用的是TensorFlow 2.0 Beta版本。 我在Google Colab上运行所有代码(在安装tf-2.0 beta后)。 每次我将数据加载到tf.data中时,整个虚拟机的RAM都会被使用,并且会强制重启会话。
之前的方法:
我尝试了两种方法
1)完全将两个变量加载到RAM中并将其转换为张量
2)将数据作为内存映射数组(从磁盘)加载并加载到tf.data中
但是这两种方法都会加载RAM并强制VM重新启动
代码:
# Access the Audio memory from disk without loading
X_audio = np.memmap('gdrive/My Drive/Codes/audio_data.npy', dtype='float32', mode='r').reshape(2198,3860,74)
# Access the Video memory from disk without loading
X_video = np.memmap('gdrive/My Drive/Codes/video_data.npy', dtype='float32', mode='r').reshape(2198,1158,711)
# Load labels
with open('gdrive/My Drive/Codes/label_data_3','rb') as f:
Y = pkl.load(f)
dataset = tf.data.Dataset.from_tensor_slices((X_audio, X_video, Y)).shuffle(2198).batch(32)
错误:您的会话在使用所有可用的RAM后崩溃。
dask
的工作。 - Daniel F