theano学习笔记

落日映苍穹つ 2022-08-18 14:18 271阅读 0赞

定义函数

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 条评论,271人围观)

还没有评论,来说两句吧...

相关阅读

    相关 windows安装theano

    安装了几次theano就是装不上,看见网上各种吐槽文章,也试了几次,还是装不上,真是各种吐槽。装了卸载,卸载了再继续装。 参考博文: [https://blog.csdn.

    相关 Theano入门

    由于自己的一个小项目需要Theano部分的开源代码,所以学习一下并记录入门的经典网站。 入门中文博客:https://blog.csdn.net/hjimce/article