我正在嘗試訓練 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.1numpy==1.17.2opencv-python==4.1.1.26scikit-image==0.15.0scikit-learn==0.21.3tensorflow-gpu==1.14.0Keras==2.2.5matplotlib==3.1.1Pillow==6.1.0albumentations==0.3.2tqdm==4.35.0jupyter我滿足。以下是我設置培訓課程的方式:config = tf.ConfigProto()config.gpu_options.allow_growth = Falseconfig.gpu_options.per_process_gpu_memory_fraction = 0.9sess = 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 modelmodel_mobilenet = ResNet50(input_shape=(1024, 1024, 3), include_top=False) # use the Resnetmodel_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他們都沒有工作。我很欣賞建設性的答案。
2 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
這很可能是因為沒有足夠的內存來存儲數據/模型。您的輸入圖像大小也是 1024x1024。我建議您嘗試使用 256 甚至 128 之類的小圖像進行訓練,看看它是否至少可以工作。
另外,你的 GPU 是否被 TF 檢測到了?

倚天杖
TA貢獻1828條經驗 獲得超3個贊
好,知道了。
問題是我的 tensorflow=gpu 版本(1.14)與我的 CUDA 版本(9.0)不兼容。我必須安裝低于 1.13 的版本。但這不是唯一的問題。我的 CuDNN 版本 (705) 也有問題,我不得不將我的 Tensorflow-gpu 一直降低到 1.9.0。
現在一切正常。
添加回答
舉報
0/150
提交
取消