我正在尝试对 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)
造成问题的主要论点:workers和use_multiprocessing。
当 时worker=1,use_multiprocessing=True/False运行没有问题。
如果workers=5,use_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