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相关推荐

  1. 深度学习(三)theano学习笔记(2)基础函数-未完待续

    theano学习笔记(2)基础函数 1.随机函数库的调用 2.卷积神经网络 [python] view plaincopy #-*-coding:utf-8-*- import theano impo ...

  2. 深度学习(二)theano学习笔记(1)环境搭建

    theano学习笔记(1)环境搭建 原文地址:http://blog.csdn.net/hjimce/article/details/46654229 作者:hjimce 搭建theano实属不易,因 ...

  3. Theano中的Function

    Theano中的Function function是theano框架中极其重要的一个函数,另外一个很重要的函数是scan,在学习theano框架中deep learning的教程的时候,几乎所有的实例 ...

  4. Theano学习四:单层简单线性模型识别手写字

    深度学习是机器学习的一个研究领域,本文作为介绍theano深度学习框架的一部分,会介绍深度学习的一些概念,如损失函数,交叉熵,反向传播,梯度下降等. 1.1MNIST数据集 美国国家标准与技术研究所改 ...

  5. Theano学习笔记(三)——图结构

    图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importthe ...

  6. 深度学习theano/tensorflow多显卡多人使用问题集

    深度学习theano/tensorflow多显卡多人使用问题集 转载自:https://zhuanlan.zhihu.com/p/23250782 其实一直想写这篇东西,今天还是抽空系统整理一下吧. ...

  7. theano学习指南5(翻译)- 降噪自动编码器

    降噪自动编码器是经典的自动编码器的一种扩展,它最初被当作深度网络的一个模块使用 [Vincent08].这篇指南中,我们首先也简单的讨论一下自动编码器. 自动编码器 文献[Bengio09] 给出了自 ...

  8. theano学习——内置数据类型

    只有thenao.shared()类型才有get_value()成员函数(返回numpy.ndarray)? 0. 图结构 Theano编程的核心是用符号占位把数学关系表示出来. import the ...

  9. theano学习--theano.tensor

    dot--tensor变量的点乘操作 T.dot接受两个矩阵(向量)输入, 计算它们的点积并返回一个保存了点乘信息的节点对象 返回对象调用eval()可获得实际数值结果 两个向量点乘(即向量的内积): ...

  10. Theano学习笔记:Theano的艰辛安装体验

    http://www.cnblogs.com/hanahimi/p/4127026.html 转载于:https://www.cnblogs.com/guochen/p/5651383.html

最新文章

  1. 从前后端分离到GraphQL,携程如何用Node实现?\n
  2. 用gcc gvim编译程序
  3. 使用CSS完美实现垂直居中的方法
  4. Nhibernate 对view 查询的几种方法
  5. VUE之文字跑马灯效果
  6. jeeCMS首页加载流程
  7. SpringCloud工作笔记063---Java 手机验证码生成_存储到redis
  8. 学习c/c++的50个好网站(转)
  9. 中小企业信息化的时机如何把握?
  10. 库存系统 代码 java_商品库存管理系统java源代码
  11. 计算机一级常用计算公式,2012年计算机一级B考点详解(4)
  12. 网页围棋对战闪亮登场(Flex+java)
  13. 换电脑了怎么迁移旧电脑数据?教你一招,轻松搞定!
  14. Windows中USB大容量存储设备无法启动
  15. 将C盘里的Users文件夹移动到D盘
  16. Java程序员怎么迈向架构师
  17. AcWing 838. 堆排序
  18. LGT公益创投(中国)基金项目介绍
  19. ui界面设计做什么:ui设计具体是什么
  20. Tomcat:The valid characters are defined in RFC 7230 and RFC 3986 问题处理

热门文章

  1. 长期大量收售通信 联通 移动 电信 工程各种型号光缆
  2. python爬虫数据(中国人口信息)存入MYSQL数据库
  3. 计算机机械制图试题及答案,机械制图习题集-附带答案
  4. CGLIB代理使用与原理详解
  5. 纸壳cms支持php坏境吗,纸壳CMS|免费开源可视化建站系统
  6. JVM系列之:日志分析工具:GCViewer、VisualVM、GCeasy
  7. 计算机专用英语1500词带音标,带音标的计算机英语1500词
  8. (原创)用红黄蓝RYB色相环(伊登色相环)代替RGB(RGI/RGV)色相环
  9. 联想Y450 gt130m显卡驱动安装
  10. CISP-PTS学习笔记-XSS