CNTK C# 学习者 API
Learners in CNTK C# API
我正在使用 C# CNTK 2.2.0 API 进行训练。
我已经安装了 Nuget 包 CNTK.CPUOnly 和 CNTK.GPU.
我正在寻找以下 C# 学习者。
1.AdaDelta
2.亚当
3.AdaGrad
4. 涅捷罗夫
看起来 Python 支持这些学习者,但 C#
包裹没有显示它们。
我在那里只能看到 C# 中的 SGD 和 SGDMomentun 学习器。
任何想法,如何在 C# 中获取和设置其他学习者。
我需要安装任何额外的软件包才能获得这些学习者吗?
感谢您的帮助。
下载 NCCL 2 应用程序以在 c# www.nvidia 中进行配置。 com 或 google NCCL 下载
CNTK 命名空间中的 CNTKLib class 提供了多个学习器,甚至不是您列出的所有学习器。我在下面列出了它们,没有重载。
public static Learner SGDLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
public static Learner MomentumSGDLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner FSAdaGradLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner AdamLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner AdaGradLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
public static Learner RMSPropLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, double gamma, double inc, double dec, double max, double min);
public static Learner AdaDeltaLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
您可以像下面这样轻松访问它们:
using CNTK;
CNTKLib.AdaDeltaLearner([...])
这是使用 CNTK 2.2 的 GPU 版本完成的。可能与 CPU 版本不同。
检查 CNTKLib 是否在 CPUOnly 包中提供这些学习者。
Nestrov 在那里失踪,但出现在 python.
创建训练器对象时存在差异
使用 CNTKLib 学习器函数与学习器 class.
如果使用学习器 class,
net 参数作为 IList 提供。
这可以使用 netout.parameter() ;
获得
如果使用 CNTKLib,
参数作为 ParameterVector 提供。
在构建网络时构建 ParameterVector。
并在创建 Trainer 对象时提供它。
ParameterVector pv = new ParameterVector()
pv.Add(权重参数)
pv.Add(偏差参数)
感谢大家的回答。
我正在使用 C# CNTK 2.2.0 API 进行训练。 我已经安装了 Nuget 包 CNTK.CPUOnly 和 CNTK.GPU.
我正在寻找以下 C# 学习者。 1.AdaDelta 2.亚当 3.AdaGrad 4. 涅捷罗夫
看起来 Python 支持这些学习者,但 C# 包裹没有显示它们。
我在那里只能看到 C# 中的 SGD 和 SGDMomentun 学习器。
任何想法,如何在 C# 中获取和设置其他学习者。 我需要安装任何额外的软件包才能获得这些学习者吗?
感谢您的帮助。
下载 NCCL 2 应用程序以在 c# www.nvidia 中进行配置。 com 或 google NCCL 下载
CNTK 命名空间中的 CNTKLib class 提供了多个学习器,甚至不是您列出的所有学习器。我在下面列出了它们,没有重载。
public static Learner SGDLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
public static Learner MomentumSGDLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner FSAdaGradLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner AdamLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, TrainingParameterScheduleDouble momentumSchedule);
public static Learner AdaGradLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
public static Learner RMSPropLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule, double gamma, double inc, double dec, double max, double min);
public static Learner AdaDeltaLearner(ParameterVector parameters, TrainingParameterScheduleDouble learningRateSchedule);
您可以像下面这样轻松访问它们:
using CNTK;
CNTKLib.AdaDeltaLearner([...])
这是使用 CNTK 2.2 的 GPU 版本完成的。可能与 CPU 版本不同。
检查 CNTKLib 是否在 CPUOnly 包中提供这些学习者。 Nestrov 在那里失踪,但出现在 python.
创建训练器对象时存在差异 使用 CNTKLib 学习器函数与学习器 class.
如果使用学习器 class, net 参数作为 IList 提供。 这可以使用 netout.parameter() ;
获得如果使用 CNTKLib, 参数作为 ParameterVector 提供。 在构建网络时构建 ParameterVector。 并在创建 Trainer 对象时提供它。
ParameterVector pv = new ParameterVector()
pv.Add(权重参数)
pv.Add(偏差参数)
感谢大家的回答。