【发布时间】:2017-09-25 11:30:06
【问题描述】:
我在 python 中编写了一个工作脚本,用一些数据样本训练 CNTK 模型。现在我试图在 CNTK V2.2 中将它翻译成 C#,但我得到了不同的结果。
这是我在 Python 中创建模型的内容:
def create_model_function(num_hidden_layers,hidden_layers_dim,num_output_classes):
return Sequential([For(range(num_hidden_layers)
, lambda i: Dense(hidden_layers_dim
, activation=cntk.tanh))
, Dense(num_classes,init=cntk.glorot_uniform()
, activation=cntk.softmax)])
谢谢
我的 C# 函数如下所示:
private Function CreateModel(DeviceDescriptor device, int HiddenLayerCount, int HiddenLayerDimension,int OutputClassesCount, Variable Input)
{
Function[] HiddenLayers= new Function[HiddenLayerCount];
for (int i = 1; i < HiddenLayerCount - 1; i++)
{
HiddenLayers[i] = Dense(HiddenLayers[i - 1], HiddenLayerDimension, device, Activation.Tanh, "");
}
return Dense(HiddenLayers[HiddenLayerCount-1], OutputClassesCount, device, Activation.Sigmoid, "");
}
我只是不确定这是否等同于 Python 顺序。
【问题讨论】:
-
你的等效 C# 代码是什么?结果有何不同?
-
我试过这个函数: private Function CreateModel(DeviceDescriptor device, int HiddenLayerCount, int HiddenLayerDimension,int OutputClassesCount, Variable Input) { Function[] HiddenLayers= new Function[HiddenLayerCount]; for (int i = 1; i