theano学习笔记
定义函数
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()
还没有评论,来说两句吧...