【问题标题】:Slowdown on tensorflow convolutional network with custom parameter update使用自定义参数更新减缓 tensorflow 卷积网络
【发布时间】:2017-12-19 01:25:50
【问题描述】:

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

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

我在其中 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(), &algorithms)

【问题讨论】:

    标签: tensorflow convolution tensorflow-gpu slowdown


    【解决方案1】:

    每次调用都会发生这种情况

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多