theano学习笔记

来源:互联网 发布:手机新三板交易软件 编辑:程序博客网 时间:2024/05/16 00:57

定义函数

import theano.tensor as T
from theano import function,pp
//标量
x=T.dscalar(‘x’)
//向量
x=T.vector(“a”)
//矩阵
x=T.dmatrix(‘x’)
y=T.dscalar(‘y’)
z=x+y
f=function([x,y],z)
//函数f表达式
print(pp(z))
print(f(2.0,3.0))

shared变量,一种用于公式中作为可被替换的部分,或迭代变量。

//定义一个shared变量,并赋予初始值shared,一般初始值为0或随机值
b=theano.shared(value,name=’b’)
train=theano.function(inputs=[x,y],outputs=[prediction,error],updates=[(b,b+inc),(..)],givens=[(w,foo),(..)])

updates中每个括号中的pair(value,newvalue),在每次运算时更新迭代变量。
givens中每个括号中的pair(symbol,replace),运算时用replace替换公式中的symbol。

导数

y=x**2
//T.grad的第1个参数必须是标量
gy=T.grad(y,x)

将数据放入矩阵(向量)中,提高计算导数的数据量

x=T.dmatrix(‘x’)
y=T.sum(1/(1+T.exp(-x)))
gy=T.grad(y,x)
func=function([x],gy)

numpy.random随机抽样

import numpy
//产生一个随机值
numpy.random.rand()
//一个随机向量
numpy.random.rand(number)
//一个随机矩阵
numpy.random.rand(n,features)

numpy.random.randn()返回的样本具有标准正态分布。

a*numpy.random.randn(n,features)+b

常用分布

import numpy.random as R
R.beta(a,b,size=(n,features)) //贝塔分布
R.binomial(n,p,size) //二项分布
R.dirichlet(alpha,size) //狄利克雷分布
R.exponential(scale,size) //指数分布
R.gamma(shape,scale,size) //伽马分布

theano中的运算

import theano.tensor as T
//计算内积,对于两个矩阵相当于矩阵相乘,对于两个向量计算内积。
T.dot(x,y)
//计算元素内部数据的平均值
T.mean()
//计算元素内部数据的和
T.sum()

0 0
原创粉丝点击