我正在尝试训练 Resnet50,但无论我做什么都失败了,因为 Jupyter 笔记本的内核正在死亡(The kernel appears to have died. It will restart automatically),即它开始训练的那一刻(Epoch 1/100)。我有 GeForce GTX 1060 Ti,当我nvidia-smi在训练期间(虽然持续 1 秒)我只看到与过去相比分配了 80 MB 的内存,然后内核死了,好像它尝试但它失败了。
以下是要求:
pandas==0.25.1
numpy==1.17.2
opencv-python==4.1.1.26
scikit-image==0.15.0
scikit-learn==0.21.3
tensorflow-gpu==1.14.0
Keras==2.2.5
matplotlib==3.1.1
Pillow==6.1.0
albumentations==0.3.2
tqdm==4.35.0
jupyter
我满足。以下是我设置培训课程的方式:
config = tf.ConfigProto()
config.gpu_options.allow_growth = False
config.gpu_options.per_process_gpu_memory_fraction = 0.9
sess = tf.Session(config=config)
keras.backend.set_session(sess)
keras.__version__
os.environ["CUDA_VISIBLE_DEVICES"] = '0' #yes, this is the ID of my GPU.
# create the FCN model
model_mobilenet = ResNet50(input_shape=(1024, 1024, 3), include_top=False) # use the Resnet
model_x8_output = Conv2D(128, (1, 1), activation='relu')(model_mobilenet.layers[-95].output)
model_x8_output = UpSampling2D(size=(8, 8))(model_x8_output)
model_x8_output = Conv2D(3, (3, 3), padding='same', activation='sigmoid')(model_x8_output)
MODEL_x8 = Model(inputs=model_mobilenet.input, outputs=model_x8_output)
MODEL_x8.compile(loss='binary_crossentropy', optimizer=Adam(lr=1e-3), metrics=[jaccard_distance])
MODEL_x8.fit_generator(train_generator, steps_per_epoch=300, epochs=100, verbose=1, validation_data=val_generator, validation_steps=10)
Epoch 1/100
1/300 [..............................] - ETA: 1:01:59 - loss: 0.7193 - jaccard_distance: 0.1125
我试过设置:
config.gpu_options.allow_growth到True.
config.gpu_options.per_process_gpu_memory_fraction到任何其他任意值,例如0.1
注释掉:#os.environ["CUDA_VISIBLE_DEVICES"] = 0
他们都没有工作。我很欣赏建设性的答案。
郎朗坤
倚天杖
相关分类