小编Lok*_*mar的帖子

HDF5 读取和 fit_generator 多处理错误

我正在尝试对 fit_generator 进行多处理。

这些是我面临的问题。

trainable_model.fit_generator(load_random_cached_bottlenecks(BATCH_SIZE, label_map, training_addr_label_map, train_npy_dir, 'h5py', h5py_file_train),epochs = EPOCHS, steps_per_epoch=iterations_per_epoch_t, validation_data = load_random_cached_bottlenecks(BATCH_SIZE, label_map, validation_addr_label_map, val_npy_dir, 'h5py', h5py_file_val), validation_steps=iterations_per_epoch_v, workers = 1, callbacks = callback_list, use_multiprocessing = True, max_queue_size = 32)
Run Code Online (Sandbox Code Playgroud)

造成问题的主要论点:workersuse_multiprocessing

当 时worker=1use_multiprocessing=True/False运行没有问题。

如果workers=5use_multiprocessing=True则抛出错误。奇怪的是它正在运行,但是在一些随机迭代中我遇到了类似的错误

KeyError: 'Unable to open object (bad local heap signature)'
Run Code Online (Sandbox Code Playgroud)

或者

KeyError: 'Unable to open object (wrong B-tree signature)'
Run Code Online (Sandbox Code Playgroud)

我使用 h5py 来读取文件。我为此目的编写了自定义生成器。

def load_random_cached_bottlenecks(batch_size, label_map,
 addr_label_map, dirs, comp_type = 'h5py', hdf5_file …
Run Code Online (Sandbox Code Playgroud)

parallel-processing multithreading deep-learning keras tensorflow

5
推荐指数
1
解决办法
1377
查看次数