theano学习--theano.function
theano.function()函数用于定义一个函数的自变量、因变量。
标量的运算:
import theano.tensor as T
x0 = T.dscalar('x0')
x1 = T.dscalar('x1')
aver = (x0 + x1)/2
f = theano.function([x0, x1], aver)
y = f(1,2)
print y
print type(f)
print type(x0)
输出:
1.5
<class 'theano.tensor.var.TensorVariable'>
<class 'theano.compile.function_module.Function'>
<class 'theano.tensor.var.TensorVariable'>
矩阵运算:
import theano.tensor as T
x = T.fmatrix('x')
y = T.fmatrix('y')
z = T.fmatrix('z')
su = x + y + z
f = theano.function([x, y, z], su)
a = f([[1,2,3]], [[4,5,6]], [[4,5,6]])
print a
print type(a)
输出:
[[ 9. 12. 15.]]
<type 'numpy.ndarray'>
多输入/多输出:
# double型矩阵
import theano.tensor as T
a, b = T.dmatrices('a', 'b')
diff = a - b
diff_abs = abs(diff)
diff_squared = diff**2
f = theano.function([a, b], [diff, diff_abs, diff_squared])
freturn = f([[1, 1], [1, 1]], [[0, 1], [2, 3]])
print freturn
输出:
[array([[ 1., 0.],[-1., -2.]]), array([[ 1., 0.],[ 1., 2.]]),array([[ 1., 0.],[ 1., 4.]])]
updates参数:
function()中updates=[old_w,new_w],当函数被调用的时候,这个会用new_w替换old_w
# 共享变量,累加器,共享变量主要用于gpu中,提高性能
import theano.tensor as T
# 使变量为共享变量
state = shared(0)
# 定义一个标量('name')
inc = T.iscalar('inc')
# state = state + inc / updates=[old_w,new_w],当函数被调用的时候,这个会用new_w替换old_w
f = theano.function([inc], state, updates=[(state, state+inc)])
print 'state:\n', state.get_value()# 传一个5进去,state被state+inc更新后 state=5
f(5)
print 'f(5):\n', state.get_value()# 传一个100进去,state被state+inc更新后 state=105
f(100)
print 'f(100):\n', state.get_value()# 利用set_value将state的设置为-1000
state.set_value(-1000)
print 'state.set_value(-1000):\n', state.get_value()
# 传一个-1000进去 state=-1000
print 'f(-1000):\n', state.get_value()
# 传一个800进去,state被state+inc更新后 state=800-1000=-200
f(800)
print 'f(800):\n', state.get_value()
输出:
state:
0
f(5):
5
f(100):
105
state.set_value(-1000):
-1000
f(-1000):
-1000
f(800):
-200
given参数:
function()中given参数,保留之前的state不改变,记录当前的结果
import theano.tensor as T
# 定义一个int类型的变量
# iscalar = TensorType('int32', ())
inc = T.iscalar('inc')
# 返回共享变量变量,使用“value”的副本或引用初始化
# 该函数迭代构造函数以找到合适的共享变量子类,合适的是接受给定值的第一个构造函数
# shared(value, name=None, strict=False, allow_downcast=None, **kwargs)
state = shared(0)
fn_of_state = state * 2 + inc
# 定义一个标量
# scalar(name=None, dtype=None) /int64
foo = T.scalar(dtype=state.dtype)print "foo is :", foo
f = theano.function([inc, foo], fn_of_state, givens=[(state, foo)])
print f(5, 2)
print 'state :\n', state.get_value()
输出:
foo is : <TensorType(int64, scalar)>
9
state :
0
theano学习--theano.function相关推荐
- 深度学习(三)theano学习笔记(2)基础函数-未完待续
theano学习笔记(2)基础函数 1.随机函数库的调用 2.卷积神经网络 [python] view plaincopy #-*-coding:utf-8-*- import theano impo ...
- 深度学习(二)theano学习笔记(1)环境搭建
theano学习笔记(1)环境搭建 原文地址:http://blog.csdn.net/hjimce/article/details/46654229 作者:hjimce 搭建theano实属不易,因 ...
- Theano中的Function
Theano中的Function function是theano框架中极其重要的一个函数,另外一个很重要的函数是scan,在学习theano框架中deep learning的教程的时候,几乎所有的实例 ...
- Theano学习四:单层简单线性模型识别手写字
深度学习是机器学习的一个研究领域,本文作为介绍theano深度学习框架的一部分,会介绍深度学习的一些概念,如损失函数,交叉熵,反向传播,梯度下降等. 1.1MNIST数据集 美国国家标准与技术研究所改 ...
- Theano学习笔记(三)——图结构
图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importthe ...
- 深度学习theano/tensorflow多显卡多人使用问题集
深度学习theano/tensorflow多显卡多人使用问题集 转载自:https://zhuanlan.zhihu.com/p/23250782 其实一直想写这篇东西,今天还是抽空系统整理一下吧. ...
- theano学习指南5(翻译)- 降噪自动编码器
降噪自动编码器是经典的自动编码器的一种扩展,它最初被当作深度网络的一个模块使用 [Vincent08].这篇指南中,我们首先也简单的讨论一下自动编码器. 自动编码器 文献[Bengio09] 给出了自 ...
- theano学习——内置数据类型
只有thenao.shared()类型才有get_value()成员函数(返回numpy.ndarray)? 0. 图结构 Theano编程的核心是用符号占位把数学关系表示出来. import the ...
- theano学习--theano.tensor
dot--tensor变量的点乘操作 T.dot接受两个矩阵(向量)输入, 计算它们的点积并返回一个保存了点乘信息的节点对象 返回对象调用eval()可获得实际数值结果 两个向量点乘(即向量的内积): ...
- Theano学习笔记:Theano的艰辛安装体验
http://www.cnblogs.com/hanahimi/p/4127026.html 转载于:https://www.cnblogs.com/guochen/p/5651383.html
最新文章
- 从前后端分离到GraphQL,携程如何用Node实现?\n
- 用gcc gvim编译程序
- 使用CSS完美实现垂直居中的方法
- Nhibernate 对view 查询的几种方法
- VUE之文字跑马灯效果
- jeeCMS首页加载流程
- SpringCloud工作笔记063---Java 手机验证码生成_存储到redis
- 学习c/c++的50个好网站(转)
- 中小企业信息化的时机如何把握?
- 库存系统 代码 java_商品库存管理系统java源代码
- 计算机一级常用计算公式,2012年计算机一级B考点详解(4)
- 网页围棋对战闪亮登场(Flex+java)
- 换电脑了怎么迁移旧电脑数据?教你一招,轻松搞定!
- Windows中USB大容量存储设备无法启动
- 将C盘里的Users文件夹移动到D盘
- Java程序员怎么迈向架构师
- AcWing 838. 堆排序
- LGT公益创投(中国)基金项目介绍
- ui界面设计做什么:ui设计具体是什么
- Tomcat:The valid characters are defined in RFC 7230 and RFC 3986 问题处理
热门文章
- 长期大量收售通信 联通 移动 电信 工程各种型号光缆
- python爬虫数据(中国人口信息)存入MYSQL数据库
- 计算机机械制图试题及答案,机械制图习题集-附带答案
- CGLIB代理使用与原理详解
- 纸壳cms支持php坏境吗,纸壳CMS|免费开源可视化建站系统
- JVM系列之:日志分析工具:GCViewer、VisualVM、GCeasy
- 计算机专用英语1500词带音标,带音标的计算机英语1500词
- (原创)用红黄蓝RYB色相环(伊登色相环)代替RGB(RGI/RGV)色相环
- 联想Y450 gt130m显卡驱动安装
- CISP-PTS学习笔记-XSS