CNTK C#LSTM示例

时间:2018-02-04 00:22:47

标签: c# lstm recurrent-neural-network cntk rnn

在哪里可以找到使用CNTK C#(多对多,多对一,回归,分类)的LSTM模型的详细记录样本?它们存在吗?

我已经尝试在C#中使用CNTK大约4个月了,而且很难在C#中找到好的文档。到目前为止,我已经找到了这些:

  1. CNTK C#序列分类器(Github) https://github.com/Microsoft/CNTK/tree/master/Examples/TrainingCSharp/Common
  2. 非常难以理解。一些命名法可以在(优秀)帖子中找到:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    但有些参数令人困惑。什么是LSTMDim,它在函数LSTMPComponentWithSelfStabilization中变为outputShape?它似乎是隐藏状态的长度而不是整个网络的输出。 cellDim似乎是内存状态的维度。 CNTKLib.SequenceLast究竟做了什么?

    1. 正弦波预测器 https://bhrnjica.net/2017/12/07/cntk-106-tutorial-time-series-prediction-with-lstm-using-c/
    2. 此示例使用Github中的LSTM Helper,并且是Python版本的端口。它在button1_Click事件中使用cellDim = inDim = 5。我将inDim更改为15和10以尝试一些新配置,并在此过程中遇到许多错误。

1 个答案:

答案 0 :(得分:1)

与Python相比,CNTK C#支持相当差。将会有越来越多的示例,但是它们仅仅是将相同的代码从Python转换为C#的尝试。 Python具有用于创建深度学习内容的内置,简洁且整洁的工具(例如,name fav_animal x 1,2,3 y 2,3 z 3,4 模块实际上具有您需要的任何东西)。在C#中,您必须通过#storing all the id's of x frist list_id = [] name_animal = [] for i in list_ids: name_animal.append(df1.loc[df1.id == i, 'A'].values.to_list() list_id = [1,2,3] name_animal = ['cat','dog','mamal'] 等基本工具编写自己的计算块(或大部分为图层),或使用their helpers。不过,由于Python API是bit more advanced,因此您可以实现不同的性能/融合率。

回到问题:

  • cntk.layers参数是该图层的输出尺寸
  • CNTK.Parameter是单元格状态的维度

您会看到CNTK.FunctionLSTMDim设置为25。在Python cellDim中,默认值为LSTMDim,并且输出形状和单元格形状可能不同。 / p>

  • cellDim返回序列的最后一个元素
  • 您还必须在cellDim表单的开头设置None,才能开始使用它。

即将发布2.7版本,但是已经使用CNTK超过一年了(Python和C#),所以我决定坚持使用Python API,因为它实际上比C#中的任何内容都具有优势

相关问题