logo
Loading...

transfer learning_ResNet50_訓練時GPU記憶體空間不足怎麼辦? - Cupoy

老师您好~如题,我有在网络在找到部分解决办法,添加以下代码:# 我们为了防止碎片化和为了更好的利用内...

transfer learning,ResNet50

transfer learning_ResNet50_訓練時GPU記憶體空間不足怎麼辦?

2020/06/14 下午 09:56
電腦視覺深度學習討論版
骑士
觀看數:176
回答數:4
收藏數:0
transfer learning
ResNet50

老师您好~

如题,我有在网络在找到部分解决办法,添加以下代码:

# 我们为了防止碎片化和为了更好的利用内存,tensorflow初始化时会默认占用全部显存https://blog.csdn.net/tsyccnh/article/details/102938368

config = tf.compat.v1.ConfigProto() #allow_soft_placement=True

config.gpu_options.allow_growth = True #dynamically grow the memory used on the GPU

config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 使用90%的显存


在Day021的作业练习中,我已经能够训练到Epoch39/100了,之后就不能运行了,还有什么办法进一步解决我遇到的问题吗?谢谢!

回答列表

  • 2020/06/16 下午 06:54
    CUPOY
    贊同數:0
    不贊同數:0
    留言數:0

    您好~


    感謝您的提問,請問您GPU的相關規格是?

  • 2020/06/18 上午 00:23
    Jeffrey
    贊同數:1
    不贊同數:0
    留言數:1

    請問一下, 有顯示任何錯誤訊息嗎? 另外, 你的 batch size 設多少呢?

  • 2020/06/21 上午 09:11
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:1

    可以把batch size 設為1, 另外, config.gpu_options.per_process_gpu_memory_fraction = 0.6 (或是0.5);

    避免 memory allocated 出現問題

  • 2020/06/26 下午 05:43
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:1

    嘗試使用這一段:


    def __init__(self, config, data, name=None):

        #为何要进行-1操作

       self.epoch_size = ((len(data) // batch_size) - 1) // num_steps

       self.input_data, self.targets = reader.ptb_producer(

           data, batch_size, num_steps, name=name)