logo
Loading...

sess.run 問題 - Cupoy

請問老師 sess.run 問題 :1.我分別在 colab 與 我的電腦上跑一樣的code, 當執...

cvdl-1,cvdl-1-d35

sess.run 問題

2020/01/14 下午 06:30
電腦視覺深度學習討論版
胡連福
觀看數:2
回答數:3
收藏數:0
cvdl-1
cvdl-1-d35

請問老師 sess.run 問題 :

1.我分別在 colab 與 我的電腦上跑一樣的code, 當執行到底下這段 sess.run 時, 我分別用 nvidia-smi 觀察 GPU記憶體, 為何 GPU 所佔的記憶體大小不一樣 ? 

2.我的電腦是已啟用 CUDA, GPU記憶體有 2G, 我的電腦GPU記憶體應該不夠, 但為何沒提示GPU記憶體不夠的 error, 而可以繼續跑完 code ?

(1) 在 colab 用 nvidia-smi 觀察 GPU記憶體使用了8G, 如下 :

(2) 在 我的電腦用 nvidia-smi 觀察 GPU記憶體只佔了64M (感覺好像沒動作), 如下 :

(3) code 如下 :

(3.1)

#輸入網絡架構的參數檔

saver.restore(sess, 'models/pretrain/yolo_tiny.ckpt')

#開啟對話,進行預測

np_predict = sess.run(predicts, feed_dict={image: np_img})

(3.2)

print("預測結果和標記框的損失量")

with tf.Session() as sess1: 

print(sess1.run(output_loss))

回答列表

  • 2020/01/15 上午 10:19
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:0

  • 2020/01/15 上午 10:30
    楊哲寧
    贊同數:0
    不贊同數:0
    留言數:2

    您好,64Mb應該是只有載入權重,但Input images沒有變成GPU的tensor經過模型,可以測試一下兩者inference 的速度是否相同。

  • 2020/01/15 下午 06:08
    胡連福
    贊同數:0
    不贊同數:0
    留言數:0

    再試過一次:

    1.程式跑到 saver.restore(sess, 'models/pretrain/yolo_tiny.ckpt') 這一行時, 在我的電腦出現如圖所示的錯誤, 但在colab可以跑過(跑過這一行後, 用 nivdia-smi 觀察記憶體只用了 265 MB)

    InvalidArgumentError: Cannot assign a device for operation random_normal/RandomStandardNormal: {{node random_normal/RandomStandardNormal}} was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device.
    [[random_normal/RandomStandardNormal]]

    2.我有檢查我的電腦 GPU 有正常啟用 -> /device:GPU:0, 且有 2GB 大小, 不應該在載入網路參數時出錯才對? (用colab試GPU才佔了265M)

    請問這是GPU的什麼錯誤 ? 要用什麼方式排除錯誤 ?