用Python使用CNTK
Python API for CNTK
参看官网:https://www.cntk.ai/pythondocs/gettingstarted.html
1.输出cntk的版本号:
>>> import cntk
>>> cntk.__version__
'2.0rc2'
2.两个数组相减求值 ; evaluation评估,求值
>>> cntk.minus([1, 2, 3], [4, 5, 6]).eval()
array([-3., -3., -3.], dtype=float32)
3.计算 (2-4)**2 + (1-6)**2
>>> import numpy as np
>>> x = cntk.input(2)
>>> y = cntk.input(2)
>>> x0 = np.asarray([[2., 1.]], dtype=np.float32)
>>> y0 = np.asarray([[4., 6.]], dtype=np.float32)
>>> cntk.squared_error(x, y).eval({x:x0, y:y0})
array([ 29.], dtype=float32)
4.asarray() 方法返回NumPy接口:
>>> import cntk as C
>>> c = C.constant(3, shape=(2,3))
>>> c.asarray()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
>>> np.ones_like(c.asarray())
array([[ 1., 1., 1.],
[ 1., 1., 1.]], dtype=float32)
5.综述和第一次运行
CNTK2是之前版本的大修改,使得它现在有强大的数据控制能力,如何读入数据,训练,测试和minibatch构建;
Python相关的提供直接构建网络图和数据读入前的操作不仅仅是为了更强大和更复杂的网络,也是为了当一个模型被创建和被调试时候的Python交互;
CNTK2包含一个准备继续扩展的例子库和层库(a layers libary)。允许简单的通过组合各个块,构建一个强大的深度网络。
例如:CNN,RNN(LSTMs),FCN.
第一次基本的使用例子:一个标准的FCN (a standardfully connected deep network)
在CNTK上训练或者运行一个网络,第一步需要决定运行在哪一个设备上,如果你有可用的GPU,训练时间将会极大的被改进。为了明确使用设备,设置使用设备如下:
from cntk.device import set_default_device, gpu
set_default_device(gpu(0))
利用全连接层FCN训练一个分类器的网络例子
用函数:Sequential()和Dense()
网络结构:
a 2-layer fully connected deep neural network with 50 hidden dimensions per layer。
ce
is the cross entropy which defined our model’s loss function
pe
is the classification error.
代码如下;
#encoding=utf-8
from __future__ import print_function
import numpy as np
import cntk as C
from cntk.learners import sgd, learning_rate_schedule, UnitType
from cntk.logging import ProgressPrinter
from cntk.layers import Dense, Sequentialdef generate_random_data(sample_size, feature_dim, num_classes):# Create synthetic data using NumPy.Y = np.random.randint(size=(sample_size, 1), low=0, high=num_classes)# Make sure that the data is separableX = (np.random.randn(sample_size, feature_dim) + 3) * (Y + 1)X = X.astype(np.float32)# converting class 0 into the vector "1 0 0",# class 1 into vector "0 1 0", ...class_ind = [Y == class_number for class_number in range(num_classes)]Y = np.asarray(np.hstack(class_ind), dtype=np.float32)return X, Ydef ffnet():inputs = 2outputs = 2layers = 2hidden_dimension = 50#设置模型# input variables denoting the features and label datafeatures = C.input((inputs), np.float32)label = C.input((outputs), np.float32)# Instantiate the feedforward classification modelmy_model = Sequential ([Dense(hidden_dimension, activation=C.sigmoid),Dense(outputs)])z = my_model(features)ce = C.cross_entropy_with_softmax(z, label)pe = C.classification_error(z, label)#初始化训练器# Instantiate the trainer object to drive the model traininglr_per_minibatch = learning_rate_schedule(0.125, UnitType.minibatch)progress_printer = ProgressPrinter(0)trainer = C.Trainer(z, (ce, pe), [sgd(z.parameters, lr=lr_per_minibatch)], [progress_printer])# Get minibatches of training data and perform model trainingminibatch_size = 25num_minibatches_to_train = 1024aggregate_loss = 0.0for i in range(num_minibatches_to_train):train_features, labels = generate_random_data(minibatch_size, inputs, outputs)#训练# Specify the mapping of input variables in the model to actual minibatch data to be trained withtrainer.train_minibatch({features : train_features, label : labels})sample_count = trainer.previous_minibatch_sample_countaggregate_loss += trainer.previous_minibatch_loss_average * sample_countlast_avg_error = aggregate_loss / trainer.total_number_of_samples_seentest_features, test_labels = generate_random_data(minibatch_size, inputs, outputs)avg_error = trainer.test_minibatch({features : test_features, label : test_labels})print(' error rate on an unseen minibatch: {}'.format(avg_error))return last_avg_error, avg_errorif __name__=='__main__':np.random.seed(98052)ffnet()
命令行下运行:Python simplenet.py
用Python使用CNTK相关推荐
- [转]在C#中像Python一样编写TensorFlow机器学习代码
机器学习是一个令人激动人心的领域,一直有新的技术突破.研究人员不断推动机器智能的提升,教机器如何听说读写--这些曾经是我们人类专属的技能.机器学习的首选语言是Python,最受欢迎的库是Google的 ...
- 机器学习入门(二):工具与框架的选择
原址 所需工具 根据具体场景的需要(科研/工程),以及团队规模大小,开发人员能力等问题,选择合适的语言及框架和辅助工具来进行开发是十分必要的.这不但降低了开发难度,同时也提升了开发效率. 由于框架的快 ...
- 深度学习(二):用CNTK在Python下实现一个简单的FeedForward网络
本次考虑用CNTK实现一个最简单的前馈网络,所使用的数据集为OpenML上一个one_hundred_plants_shape,原数据集为arff格式,本人已转换为csv格式上传到了百度网盘中.数据集 ...
- TensorFlow常用Python扩展包
TensorFlow常用Python扩展包 TensorFlow 能够实现大部分神经网络的功能.但是,这还是不够的.对于预处理任务.序列化甚至绘图任务,还需要更多的 Python 包. 下面列出了一些 ...
- 打造专属BGM,Python 深度学习教你
作者 | 李秋键 头图 | 下载于视觉中国 出品 | AI科技大本营(ID:rgznai100) 音乐+文字,组合食用,效果更佳. 引言: "那些听不到音乐的人,以为跳舞的人疯了." ...
- 2019最新实战!给程序员的7节深度学习必修课,最好还会Python!
整理 | 琥珀 出品 | AI科技大本营 从 2017 年开始,fast.ai 创始人.数据科学家 Jeremy Howard 以每年一迭代的方式更新"针对编程者的深度学习课程"( ...
- 2018:数据科学20个最好的Python库
作者 | ActiveWizards 译者 | 婉清 编辑 | 阿司匹林 出品 | AI科技大本营(公众号ID:rgznai100) Python 在解决数据科学任务和挑战方面继续处于领先地位. ...
- 2019编程语言最新排行榜!Python蝉联第一
编程语言2019 2019最受欢迎的编程语言 IEEE Spectrum 于9月6日发布了2019年最受欢迎的编程语言排名.下面让我们来看下这份新鲜出炉的排名名单Top10吧. 接下来,是2018及2 ...
- 必须掌握的10大Python库
在本文中,我们将讨论Python中的一些顶级库,开发人员可以使用这些库来编写,清理和表示数据,并在现有应用程序中实现机器学习. 我们将介绍以下10个库: TensorFlow Scikit-Learn ...
最新文章
- java队列转集合_Java集合 使用Queue
- c++协程4 (boost::coroutine)
- android解决工具类中没有context中的问题
- Leetcode 23.移除元素
- Android系统换字体不root,一键换字体:字体大师
- python 在线培训费用-线下python培训要多少钱?
- RPN Calculator for mac(RPN计算器)
- EV录屏怎么实现选区录屏
- Linux x86架构下ACPI PNP Hardware ID的识别机制
- VBA抓取双色球、大乐透开奖数据
- 使用Python连接阿里云盘
- xp怎么删除计算机管理员用户,windowsXP如何显示Administrator账户/如何删除计算机管理员权限的账户/如何更改账户名...
- 9. TCP拥塞控制
- ZigBee学习之11——MAC层API解读2
- 如何选择一家好的Java培训机构?
- 随机过程学习笔记04 布朗运动
- 详细介绍javascript中的单体模式singleton(全面)
- Vue报错:component has been registered but not used
- 信号完整性分析6——电感的物理基础
- 《创践——大学生创新创业实任务》 单元测试_ 笔记