Chainer的初步学习
人们都说Chainer是一块非常灵活you要用的框架,今天接着项目里面的应用,初步接触一下,涨涨姿势,直接上源码吧,看着好理解。其实跟Tensorflow等其他框架都是一个套路,个人感觉更简洁了。
1 """ 2 测试使用 3 """ 4 import pickle 5 import time 6 import numpy as np 7 import matplotlib.pyplot as plt 8 from chainer import Chain, Variable, optimizers, serializers 9 import chainer.functions as F 10 import chainer.links as L 11 12 # 创建Chainer Variables变]量 13 a = Variable(np.array([3], dtype=np.float32)) 14 b = Variable(np.array([4], dtype=np.float32)) 15 c = a**2 +b**2 16 17 # 5通过data属性检查之前定义的变量 18 print('a.data:{0}, b.data{1}, c.data{2}'.format(a.data, b.data, c.data)) 19 20 # 使用backward()方法,对变量c进行反向传播.对c进行求导 21 c.backward() 22 # 通过在变量中存储的grad属性,检查其导数 23 print('dc/da = {0}, dc/db={1}, dc/dc={2}'.format(a.grad, b.grad, c.grad)) 24 25 # 在chainer中做线性回归 26 x = 30*np.random.rand(1000).astype(np.float32) 27 y = 7*x + 10 28 y += 10*np.random.randn(1000).astype(np.float32) 29 30 plt.scatter(x, y) 31 plt.xlabel('x') 32 plt.ylabel('y') 33 plt.show() 34 35 36 # 使用chainer做线性回归 37 38 # 从一个变量到另一个变量建立一个线性连接 39 linear_function = L.Linear(1, 1) 40 # 设置x和y作为chainer变量,以确保能够变形到特定形态 41 x_var = Variable(x.reshape(1000, -1)) 42 y_var = Variable(y.reshape(1000, -1)) 43 # 建立优化器 44 optimizer = optimizers.MomentumSGD(lr=0.001) 45 optimizer.setup(linear_function) 46 47 48 # 定义一个前向传播函数,数据作为输入,线性函数作为输出 49 def linear_forward(data): 50 return linear_function(data) 51 52 53 # 定义一个训练函数,给定输入数据,目标数据,迭代数 54 def linear_train(train_data, train_traget, n_epochs=200): 55 for _ in range(n_epochs): 56 # 得到前向传播结果 57 output = linear_forward(train_data) 58 # 计算训练目标数据和实际标数据的损失 59 loss = F.mean_squared_error(train_traget, output) 60 # 在更新之前将梯度取零,线性函数和梯度有非常密切的关系 61 # linear_function.zerograds() 62 linear_function.cleargrads() 63 # 计算并更新所有梯度 64 loss.backward() 65 # 优化器更新 66 optimizer.update() 67 68 69 # 绘制训练结果 70 plt.scatter(x, y, alpha=0.5) 71 for i in range(150): 72 # 训练 73 linear_train(x_var, y_var, n_epochs=5) 74 # 预测值 75 y_pred = linear_forward(x_var).data 76 plt.plot(x, y_pred, color=plt.cm.cool(i / 150.), alpha=0.4, lw=3) 77 78 slope = linear_function.W.data[0, 0] # linear_function是之前定义的连接,线性连接有两个参数W和b,此种形式可以获取训练后参数的值,slope是斜率的意思 79 intercept = linear_function.b.data[0] # intercept是截距的意思 80 plt.title("Final Line: {0:.3}x + {1:.3}".format(slope, intercept)) 81 plt.xlabel('x') 82 plt.ylabel('y') 83 plt.show()
转载于:https://www.cnblogs.com/demo-deng/p/9713471.html
Chainer的初步学习相关推荐
- HTMLParser的初步学习
Python的自带模块--HTMLParser的初步学习 HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. ...
- 初步学习pg_control文件之三
接前文,初步学习pg_control文件之二 继续学习: 研究 DBState,先研究 DB_IN_PRODUCTION ,看它如何出现: 它出现在启动Postmaster时运行的函数处: /* * ...
- eclipsevue代码怎么运行_[Java教程]使用eclipse初步学习vue.js操作
[Java教程]使用eclipse初步学习vue.js操作 0 2017-11-26 19:00:06 一.vue.js的初步认识 https://unpkg.com/vue ">vu ...
- json2.js的初步学习与了解(转)
转载来源:http://apps.hi.baidu.com/share/detail/6092406 json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org ...
- 【TensorFlow-serving】初步学习模型部署
前言 初步学习tensorflow serving的手写数字识别模型部署.包括简单的模型训练.保存.部署上线.因为对docker和网络不太熟悉,可能会有部分错误,但是看完博客,能跑通整个流程.此博客将 ...
- 初步学习pg_control文件之八
接前文 初步学习pg_control文件之七 继续 看:catalog_version_no 代码如下: static void WriteControlFile(void) {.../** In ...
- 初步学习pg_control文件之六
接前文:初步学习pg_control文件之五 ,DB_IN_ARCHIVE_RECOVERY何时出现? 看代码:如果recovery.conf文件存在,则返回 InArchiveRecovery = ...
- 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助...
初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require( ...
- 罗佳琪的第三次预备作业——虚拟机的安装及Linux的初步学习
虚拟机的安装及Linux的初步学习 坎坷的安装过程 首先我按照老师给的基于VirtualBox虚拟机安装Ubuntu图文教程进行了下载,下载很顺利但是安装时出现了问题. 起初我以为是电脑位数问题,但我 ...
最新文章
- castle 组件化开发应用配制示例
- [译] 关于Angular的变更检测(Change Detection)你需要知道这些
- FreeRTOS 之一 源码目录文件 及 移植详解
- PHP json_encode不转义中文
- yelee主题安装gitalk(转载+整理)
- 查看当前机器.net 版本的方法
- opencv画线和文字
- android 面向对象 5,C++基础学习笔记(5)---面向对象(测试题)
- CPDA数据分析师认证,大数据分析的综合型人才
- 同样是写博客,为什么我男朋友的粉丝那么多?!
- oracle vm server for x86,扛起Xen的大旗!体验Oracle VM Server 3.4.6与基于OL7.7的OVM Manager...
- 有赞亿级订单同步的探索与实践
- 那些年 我们一起追过的DIY三大件
- 截图快捷键ctrl加什么
- CAD得到所有图层名(网页版)
- 中兴算法挑战赛-比特派:跳高
- javaAPI文档中文版(JDK11在线版)无需下载、直接打开
- Java 8 流过滤List
- Android开发:设置背景图片
- ​想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火(附链接)...
热门文章
- 自考专升本拿证需要多久 几年能毕业
- php 长图切成多张图片,长图打印,图片平均切割
- 第十七届全国大学生智能汽车比赛
- 最新IDEA 提示:更新 TKK 失败,请检查网络连接
- 什么是MAC地址及作用管理教程——What is the MAC address and role management tutorial
- Delphi StringGrid单元格背景色填充颜色
- 利用iText生成pdf报表
- Spark-ML-基于云平台和用户日志的推荐系统
- 知瓜数据丨2021医美行业数据趋势分析报告
- 论文阅读:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift