python theano记录

import numpy as np

np.random.rand(2,3)随机产生2*3个【0,1】之间的数

np.random.randn(2,3)随机产生2*3个服从标准正态分布的数。N(0,1)

10*np.random.randn(2,3)+20    服从u=20 ,sig=10的正态分布

np.random.randint(1,3,(2,3))生成[1,3)的2*3的矩阵,然后只能是1,2取值了,因为左闭右开

np.random.randint(5,size=(2,3))默认高位是5,相当于[0,5)的int型

import theano 

import theano.tensor as tf

数值类型:

iscalar(int类型的变量)、fscalar(float类型的变量)

一维向量:ivector(int 类型的向量)、fvector(float类型的向量)、

二维矩阵:fmatrix(float类型矩阵)、imatrix(int类型的矩阵)

三维float类型矩阵:ftensor3  

四维float类型矩阵:ftensor4

theano的风格是:先定义变量名,然后定义计算,然后输入值计算结果

x=theano.tensor.iscalar('x')  #声明一个int类型的变量x  

y=x+x  #定义y=x+x  

f=theano.function([x],y)#定义函数的自变量为x(输入),因变量为y(输出)   

print f(20)#计算当x=20的时候,函数f(x)的值  

求导

  1. import theano  
  2. x =theano.tensor.fscalar('x')#定义一个float类型的变量x  
  3. y= 1 / (1 + theano.tensor.exp(-x))#定义变量y  
  4. dx=theano.grad(y,x)#偏导数函数  
  5. f= theano.function([x],dx)#定义函数f,输入为x,输出为s函数的偏导数  
  6. print f(3)#计算当x=3的时候,函数y的偏导数 

共享变量:(值得用get_value()来提取)

  1. import theano  
  2. import numpy  
  3. A=numpy.random.randn(3,4);#随机生成一个矩阵  
  4. x = theano.shared(A)#从A,创建共享变量x  
  5. print x.get_value()   

共享变量更新:

  1. import theano  
  2. w= theano.shared(1)#定义一个共享变量w,其初始值为1  
  3. x=theano.tensor.iscalar('x')  
  4. f=theano.function([x], w, updates=[[w, w+x]])#定义函数自变量为x,因变量为w,当函数执行完毕后,更新参数w=w+x  
  5. print f(3)#函数输出为w  
  6. print w.get_value()#这个时候可以看到w=w+x为4  

转自:https://blog.csdn.net/hjimce/article/details/46806923









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值