python - tfp.optimizer.lbfgs_minimize() 无法识别 previous_optimizer_results 参数
问题描述
我正在尝试在张量流概率中使用 lbfgs_minimize 函数来解决迁移学习问题。我想记录每次迭代的目标函数值和优化结果,所以我将优化器放入一个循环中,每次运行一次迭代,然后将优化器结果作为下一次迭代的 previous_optimizer_results 参数反馈到优化器函数中,而不是使用initial_position 参数。但是,当我这样做时,我得到:
TypeError:minimize() 得到了一个意外的关键字参数“previous_optimizer_results”
我已经使用 tensorflow 概率文档中的示例代码解决了问题,以确保不是我的代码导致了问题并且我得到了同样的错误。您如何使“previous_optimizer_results”参数起作用?
代码
import tensorflow_probability as tfp
import numpy as np
# Initial run to load an optimizer result into memory
# A high-dimensional quadratic bowl.
ndims = 60
minimum = np.ones([ndims], dtype='float64')
scales = np.arange(ndims, dtype='float64') + 1.0
# The objective function and the gradient.
def quadratic_loss_and_gradient(x):
return tfp.math.value_and_gradient(
lambda x: tf.reduce_sum(
scales * tf.math.squared_difference(x, minimum), axis=-1),
x)
start = np.arange(ndims, 0, -1, dtype='float64')
optim_results1 = tfp.optimizer.lbfgs_minimize(
quadratic_loss_and_gradient,
initial_position=start,
num_correction_pairs=10,
max_iterations=1,
tolerance=1e-8)
# Secondary run using the output of the last run as an input for the optimizer. This is what throws the error.
optim_results = tfp.optimizer.lbfgs_minimize(
quadratic_loss_and_gradient,
initial_position=None,
previous_optimizer_results=optim_results1,
num_correction_pairs=10,
max_iterations=1,
tolerance=1e-8)
解决方案
推荐阅读
- c++ - 在 Windows VisualStudio/Visual C++ 2017 中使用本机 WebRTC 库
- python - 将熊猫数据透视表转换为二维数组
- php - WP按标题字母顺序对自定义帖子进行排序
- excel - Excel - 从其他工作簿导入工作表
- azure - Azure 流分析查询以检测特定 deviceId 的丢失活动事件
- ruby-on-rails - 如何在 Rails 中创建自定义 url 助手?
- java - Android mockito 模拟回调
- javascript - 将 Google 日历数据与基于 D3.js 的日历集成
- javascript - 当前日期和时间javascript不显示
- maven - 安装 Hadoop 时 Apache Hadoop 常见故障