北京时间9月16号凌晨3点半,CNTK终于发布2.2版本了(话说,定的不是9月15号吗!!!),终于支持CSharp了!于是,赶紧down下来体验一把~
后来才发现,只需要装一个Nuget包就行了,Nuget里面已经集成了所需的各种依赖,傻瓜式安装(微软式风格)。不过,Gpu版的包有200多M,cpu版的也有50多M,网速慢的话可以手动拷离线包。
CNTK以计算网络为基础(与数据流图的概念很像,表达式树有助于理解这个概念),在计算之前需要先构建好计算网络,然后准备并传入数据,就可以完成计算了。乍一看,采用这种方式似乎有点麻烦,但是如果你习惯了这种方式,你就会喜欢上她。
CNTK有几个不可忽视的优点:
- 分离计算逻辑和实现方式,使得我们无需关注具体的实现细节。
- 统一Cpu和Gpu,不管你的电脑有没有支持CUDA的显卡都没关系。
- 自动微分。
- 支持C#,支持C#,支持C#!
下面是一段用来计算y=k*x+b
的代码,先让我们体验一把吧~
1 | static void Main(string[] args) |
上面的代码看起来有点复杂,让我们先来做一下优化吧
1 | static void Main(string[] args) |
第一步,我们先定义一个输入变量x
,其Shape(形状,即数据的格式)为1;然后,再定义常量k
和b
,分别为20和3;最后,定义y=k*x+b
。
第二步,定义输入和输出数据,并指定x
的值为1.5。
第三步,调用Evaluate
方法,传入数据并进行计算。
最后,从输出数据outputs
中读取数据,并显示出来。
源码地址:链接:http://pan.baidu.com/s/1eSvkOhG 密码:7d5i
- 本文作者: killf
- 本文链接: http://www.killf.info/机器学习/CNTK/cntk_0/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!