64gb ram CPU
これは、クラッシュを試みるときに作業を実行しようとしているトレーニングコードですRTX 2070
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.7
tf.keras.backend.set_session(tf.Session(config=config))
model = efn.EfficientNetB7()
model.summary()
# create new output layer
output_layer = Dense(5, activation='sigmoid', name="retrain_output")(model.get_layer('top_dropout').output)
new_model = Model(model.input, output=output_layer)
new_model.summary()
# lock previous weights
for i, l in enumerate(new_model.layers):
if i < 228:
l.trainable = False
# lock probs weights
new_model.compile(loss='mean_squared_error', optimizer='adam')
batch_size = 5
samples_per_epoch = 30
epochs = 20
# generate train data
train_datagen = ImageDataGenerator(
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
validation_split=0)
train_generator = train_datagen.flow_from_directory(
train_data_input_folder,
target_size=(input_dim, input_dim),
batch_size=batch_size,
class_mode='categorical',
seed=2019,
subset='training')
validation_generator = train_datagen.flow_from_directory(
validation_data_input_folder,
target_size=(input_dim, input_dim),
batch_size=batch_size,
class_mode='categorical',
seed=2019,
subset='validation')
new_model.fit_generator(
train_generator,
samples_per_epoch=samples_per_epoch,
epochs=epochs,
validation_steps=20,
validation_data=validation_generator,
nb_worker=24)
new_model.save(model_output_path)
exception:
2019-11-17 08:52:52.903583: I tensorflow/stream_executor/dso_loader.cc:152] ローカルで CUDA ライブラリ libcublas.so.10.0 を正常に開きました .... ... 2019-11-17 08:53:24.713020: I tensorflow/core/common_runtime/bfc_allocator.cc:641] 合計 2.84GiB のサイズ 27724800 の 110 チャンク合計 222.10MiB 2019-11-17 08:53:24.713027: I tensorflow/core/common_runtime/bfc_allocator.cc:641] サイズ 54000128 の 23 チャンク合計 1.16GiB 2019-11core-17 08:53:24.713031: I tensorflow/ /common_runtime/bfc_allocator.cc:641] 合計 70.34MiB のサイズ 73760000 の 1 つのチャンクGiB 2019-11-17 08:53:24.713040:I tensorflow/core/common_runtime/bfc_allocator.cc:647] 統計: 制限: 5856749158 InUse: 5848048896 MaxInUse: 5848061440 NumAllocs: 6140 MaxAllocSize: 3259170816
2019-11-17 08:53:24.713214: W tensorflow/core/common_runtime/bfc_allocator.cc:271] ****************************** ****************************************************** ************************ 2019-11-17 08:53:24.713232: W tensorflow/core/framework/op_kernel.cc:1401] OP_REQUIRES が失敗しましたcwise_ops_common.cc:70 で: リソースが使い果たされました: アロケーター GPU_0_bfc によって /job:localhost/replica:0/task:0/device:GPU:0 で shape[5,1344,38,38] と型 float でテンソルを割り当てるときの OOMトレースバック (最新の呼び出しが最後): ファイル "/home/naort/Desktop/deep-learning-data-prepare-tools/EfficientNet-Transfer-Learning-Boiler-Plate/model_retrain.py"、76 行目、nb_worker=24 内)ファイル "/usr/local/lib/python3.6/dist-packages/keras/legacy/interfaces.py"、91 行目、ラッパー return func(*args, **kwargs) ファイル "/usr/local/lib/ python3.6/dist-packages/keras/engine/training.py", line 1732, in fit_generator initial_epoch=initial_epoch) ファイル "/usr/local/lib/python3.6/dist-packages/keras/engine/training_generator.py", 220 行目、fit_generator reset_metrics=False) ファイル "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py"、1514 行目、train_on_batch の出力 = self.train_function(ins) ファイル " /home/naort/.local/lib/python3.6/site-packages/tensorflow/python/keras/backend.py"、3076 行目、run_metadata=self.run_metadata の呼び出し中) ファイル "/home/naort/.local/ lib/python3.6/site-packages/tensorflow/python/client/session.py"、1439 行目、run_metadata_ptr 呼び出し中) ファイル "/home/naort/.local/lib/python3.6/site-packages/tensorflow/ python/framework/errors_impl.py"、528 行目、出口 c_api.TF_GetCode(self.status.status)) tensorflow.python.framework.errors_impl.ResourceExhaustedError: shape[5,1344,38,38] でテンソルを割り当て、/job:localhost/replica:0/task:0/device:GPU:0 でタイプ float の場合の OOMアロケーター GPU_0_bfc [[{{node training/Adam/gradients/AddN_387-0-TransposeNHWCToNCHW-LayoutOptimizer}}]] ヒント: OOM が発生したときに割り当てられたテンソルのリストを表示する場合は、現在の割り当て情報について RunOptions に report_tensor_allocations_upon_oom を追加します。現在の割り当て情報については、report_tensor_allocations_upon_oom を RunOptions に追加します。現在の割り当て情報については、report_tensor_allocations_upon_oom を RunOptions に追加します。
[[{{node Mean}}]] ヒント: OOM が発生したときに割り当てられたテンソルのリストを表示したい場合は、現在の割り当て情報を得るために Report_tensor_allocations_upon_oom を RunOptions に追加します。