【DL--12】Theano入门

来源:互联网 发布:java多线程与高并发 编辑:程序博客网 时间:2024/05/21 12:45
Theano是一个Python库,专门用于定义、优化、求值数学表达式,效率高,适用于多维数组。特别适合做机器学习。一般来说,使用时需要安装python和numpy.首先回顾一下机器学习的东西,定义一个模型(函数)f(x;w) x为输入,w为模型参数,然后定义一个损失函数c(f),通过数据驱动在一堆模型函数中选择最优的函数就是训练training的过程,在机器学习中训练一般采用梯度下降法gradient descent.使用theano来搭建机器学习(深度学习)框架,有以下优点:1、 theano能够自动计算梯度2、只需要两步骤就能搭建框架,定义函数和计算梯度。

一、 定义函数
步骤 0 宣告使用theano

import theano

步骤 1 定义输入

x=theano.tensor.scalar()

步骤 2 定义输出

y=2*x

步骤3 定义fuction

f = theano.function([x],y)

步骤 4 调用函数

print f(-2)

这里写图片描述

步骤1 定义输入变量

a = theano.tensor.scalar()b =theano.tensor.matrix()

简化 import theano.tensor as T

步骤2 定义输出变量 需要和输入变量的关系

x1=T.matrix()x2=T.matrix()y1=x1*x2y2=T.dot(x1,x2) #矩阵乘法

步骤3 申明函数

f= theano.function([x],y)

函数输入必须是list 带[]
example:

import theanoimport theano.tensor as Ta= T.matrix()b= T.matrix()c = a*bd = T.dot(a,b)F1= theano.function([a,b],c)F2= theano.function([a,b],d)A=[[1,2],[3,4]]B=[[2,4],[6,8]] #2*2矩阵C=[[1,2],[3,4],[5,6]] #3*2矩阵print F1(A,B)print F2(C,B)

这里写图片描述

二、计算梯度
计算 dy/dx

g=T.grad(y,x)
原创粉丝点击