具有自定义参数更新的TensorFlow卷积网络的放缓



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

我意识到没有必要以固定的学习率遇到这种麻烦,但是我计划以后更新。

我以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() -> getConvolvealgorithm(conv_parameters.shouldincludewinogradnonfusealgo(),&算法)

发生的事情是每次被称为

渐变= tf.gradients(成本,[ *strige, *偏见])

tf。创建级别的新实例,占据不必要的内存。

相关内容

  • 没有找到相关文章

最新更新