gpt4 book ai didi

node.js - 你如何在 tensorflow.js 中设置 Adam 优化器学习率?

转载 作者:行者123 更新时间:2023-12-02 00:16:41 29 4
gpt4 key购买 nike

对于 tensorflow.js,如何在 node.js 中设置 Adam 优化器的学习率?我得到一个错误:

model.optimizer.setLearningRate is not a function

const optimizer = tf.train.adam(0.001)
model.compile({
loss: 'sparseCategoricalCrossentropy',
optimizer,
shuffle: true,
metrics: ['accuracy']
});

await model.fit(trainValues, trainLabels, {
epochs: 50,
validationData: [testValues, testLabels],
callbacks: {
onEpochBegin: async (epoch) => {
const newRate = getNewRate();
model.optimizer.setLearningRate(newRate);
}
}
});

最佳答案

当您调用 model.compile 时,您可以传递 tf.train.Optimizer 的实例而不是传递一个字符串。这些实例是通过 tf.train.* 创建的工厂,您可以将学习率作为第一个参数传递。

代码示例

model.compile({
optimizer: tf.train.sgd(0.000001), // custom learning rate
/* ... */
});

在训练期间改变学习率

目前,只有 sgd 优化器有 setLearningRate方法已实现,这意味着以下代码仅适用于通过 tf.train.sgd 创建的优化器实例:

const optimizer = tf.train.sgd(0.001);
optimizer.setLearningRate(0.000001);

使用非官方API

优化器实例有一个protected 属性learningRate ,您可以更改。该属性不是公开的,但由于这是 JavaScript,您可以通过在对象上设置 learningRate 来简单地更改值,如下所示:

const optimizer = tf.train.adam();
optimizer.learningRate = 0.000001;
// or via your model:
model.optimizer.learningRate = 0.000001;

请记住,您正在使用 API 的非官方部分,它随时可能会中断。

关于node.js - 你如何在 tensorflow.js 中设置 Adam 优化器学习率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56821754/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com