博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Theano - 代数(Algebra)
阅读量:7029 次
发布时间:2019-06-28

本文共 1792 字,大约阅读时间需要 5 分钟。

两个标量的加法

为了让我们开始使用Theano,以及感受theano是如何工作的。接下来,我们构造一个简单的函数:加法。

 两个标量的加法

import numpyimport theano.tensor as Timport theanofrom theano import function# 定义两个符号(变量)x, y来表示你想实施加法的数。# 换句话说, x,y,z均为变量对象。# 在Theano中,所有的符号必须定义类型。# T.dscalar: 表示双精度(doubles)的0维数组(标量),他是Theano中的类型(Type)x = T.dscalar('x')y = T.dscalar('y')z = x + y# dscalar不是一个类(class)。因此,事实上x,y都不是dscalr的实例。# 它们是TensorVariable的实例。# 然而,x,y被赋值为theano的dscalar类型。type(x)  # theano.tensor.var.TensorVariablex.type  # TensorType(float64, scalar)T.dscalar   # TensorType(float64, scalar)x.type is T.dscalar # True# 在你运行f时,你会注意到有些延迟# 因为f正在被编译为C代码f = function([x, y], z)f(2, 3)numpy.allclose(f(16.3, 12.1), 28.4)numpy.allcolse(z.eval({x: 16.3, y: 12.1}), 28.4)

两个矩阵的加法

x = T.dmatrix('x')y = T.dmatrix('y')z = x + yf = function([x, y], z)f([[1, 2], [3, 4]], [[10, 20], [30, 40]])

可以用到的类型(type):

  • byte: bscalar, bvector, bmatrix, brow, bcol, btensor3, btensor4, btensro5

  • 16-bit intergers: wscalar, wvector, wmatrix, wrow, wcol, wtensor3, wtensor4, wtensor5

  • 32-bit intergers: iscalar, ivector, imatrix, irow, icol, itensor3, itensor4, itensor5

  • 64-bit intergers: lscalar, lvector, lmatrix, lrow, lcol, ltensor3, ltensor4, ltensor5

  • float: fscalar, fvector, fmatrix, frow, fcol, ftensor3, ftensor4, ftensor5

  • double: dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4, dtensor5

  • complex: cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4, ctensor5

练习

a = theano.tensor.vector()  # 声明一个变量out = a + a ** 10   # 构造一个符号表达式f = theano.function([a], out)   # 编译一个函数print(f([0, 1, 2]))

修正并执行上面的代码,使得其能够计算:a ^ 2 + b ^ 2 + 2ab

a = theano.tensor.vector()b = theano.tensor.vector()out1 = a ** 2 + b ** 2 + 2 * a * bout2 = (a + b) ** 2f1 = theano.function([a, b], out1)f2 = theano.function([a, b], out2)print(f1([0, 1], [1, 2]))print(f2([0, 1], [1, 2]))

转载地址:http://pigxl.baihongyu.com/

你可能感兴趣的文章
[.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst
查看>>
函数 devm_kzalloc()【转】
查看>>
Java 多线程编程
查看>>
HBase常用Shell命令
查看>>
从面试官角度告诉大家如何准备项目方面的描述
查看>>
the server responded with a status of 414 (Request-URI Too Large)
查看>>
Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】
查看>>
C# winform或控制台Properties.Settings.Default的使用及存储位置
查看>>
node读写本地文件
查看>>
初学者的React全家桶完整实例
查看>>
eclipse创建maven web项目工程步骤示例
查看>>
洛谷P3746 [六省联考2017]组合数问题
查看>>
[LeetCode] Special Binary String 特殊的二进制字符串
查看>>
戏说java与web
查看>>
PHP内置服务器
查看>>
Spring核心技术(十三)——环境的抽象
查看>>
通过串口进行通信 :
查看>>
Cloudstack 虚拟机实例(四)
查看>>
spring-boot3
查看>>
通过Zookeeper动态感知服务器上下线[案例]
查看>>