Tensorflow TensforflowJS节点绑定,无法设置自定义Optimizer
我刚刚开始使用tensorflowjs和tensorflow,我遇到了一个我不能完全解决的问题。我正在尝试更改优化器的学习速率,但一旦使用自定义优化器,我就会收到以下错误:Tensorflow TensforflowJS节点绑定,无法设置自定义Optimizer,tensorflow,tensorflow.js,Tensorflow,Tensorflow.js,我刚刚开始使用tensorflowjs和tensorflow,我遇到了一个我不能完全解决的问题。我正在尝试更改优化器的学习速率,但一旦使用自定义优化器,我就会收到以下错误: 用户定义的优化器必须是tf.optimizer的实例 要创建模型,我将执行以下操作(摘自文档): 就我所知,一切都应该正常。如果我只是传入默认的“sgd”Optimizer,它确实可以工作 model.compile({loss:'meanSquaredError', optimizer:'sgd'}); 同时,中的文档还
用户定义的优化器必须是tf.optimizer的实例
要创建模型,我将执行以下操作(摘自文档):
就我所知,一切都应该正常。如果我只是传入默认的“sgd”Optimizer,它确实可以工作
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
同时,中的文档还暗示第一个代码段应该返回一个SGDOptimizer
有人知道我做错了什么吗
我使用以下tensorflow包运行NodeV8
"@tensorflow/tfjs-core": "^0.14.2",
"@tensorflow/tfjs-node": "^0.1.21",
如果我创建Optimizer并将其存储在单独的变量中。该变量的console.log提供以下内容:
SGDOptimizer {
learningRate: 0.000001,
c:
Tensor {
isDisposedInternal: false,
shape: [],
dtype: 'float32',
size: 1,
strides: [],
dataId: {},
id: 4,
rankType: '0' } }
因此,它似乎已初始化您不应该直接在package.json中导入tfjs核心。如果单独导入tfjs节点,它将导入正确的tfjs核心版本
问题是您有双重依赖关系(我们将对此进行修复)。您是否使用特定的节点js绑定?如果不是,你可以考虑删除TFJS节点BDIGNIGI没有使用特定绑定,我只是觉得它需要在服务器端环境下运行,而不是在浏览器中运行。但是,即使在删除它时,它仍然不起作用。在这里,您有一个使用tf.train.sgd的工作代码:即使使用您的模型代码,我也会得到与代码运行时完全相同的错误。我没有看到任何错误。你能给我一个输出错误代码的链接吗?啊,好的,谢谢,我不知道为什么我有双重依赖,可能是因为我安装了主软件包,然后核心遵循了多个安装说明。虽然现在如果我尝试安装@tensorflow/tfjs节点,我会遇到一个错误…找不到模块“https proxy agent”-虽然单独安装似乎在下一版本中已经奏效,但您只需添加tfjs节点包作为依赖项,并要求tf通过它。以下是修复此问题的PR:
SGDOptimizer {
learningRate: 0.000001,
c:
Tensor {
isDisposedInternal: false,
shape: [],
dtype: 'float32',
size: 1,
strides: [],
dataId: {},
id: 4,
rankType: '0' } }