使用自定义参数更新减慢张量流卷积网络

问题描述 投票:0回答:1

我正在尝试在卷积网络上实现自定义参数更新,但每个执行的迷你批处理都会变得越来越慢。

我意识到没有必要以固定的学习率来解决这个问题,但我计划稍后更新。

我在一个循环中调用它,其中feed_dict是mini_batch。

sess.run(layered_optimizer(cost,.1,1),feed_dict = feed_dict)   

哪里

def layered_optimizer(cost,base_rate, rate_multiplier):

    gradients = tf.gradients(cost, [*weights, *biases])
    print(gradients)

    #update parameters based on gradients: var = var - gradient * base_rate * multiplier
    for i in range(len(weights)-1):
        weights[i].assign(tf.subtract(weights[i], tf.multiply(gradients[i], base_rate * rate_multiplier)))
        biases[i].assign(tf.subtract(biases[i], tf.multiply(gradients[len(weights)+i], base_rate * rate_multiplier)))



    return(cost)

我不确定这是否与问题有关,但在第二次尝试运行代码后,我得到以下错误并且必须重新启动。

无法创建cudnn句柄:CUDNN_STATUS_NOT_INITIALIZED错误检索驱动程序版本:未实现:内核报告未在Windows上实现的驱动程序版本无法销毁cudnn句柄:CUDNN_STATUS_BAD_PARAM检查失败:stream-> parent() - > GetConvolveAlgorithms(conv_parameters.ShouldIncludeWinogradNonfusedAlgo(),&算法)

tensorflow convolution tensorflow-gpu slowdown
1个回答
0
投票

每次调用时都会发生什么

gradients = tf.gradients(cost,[* weights,* biases])

创建了一个新的tf.gradients实例,占用了不必要的内存。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.