scan函数是theano中的循环函数,相当于for loop。在读别人的代码时第一次看到,有点迷糊,不知道输入、输出怎么定义,网上也很少有example,大多数都是相互转载同一篇。所以,还是要看官方文档。

函数定义如下

output, update = theano.scan(fnsequences=Noneoutputs_info=Nonenon_sequences=None,n_steps=Nonetruncate_gradient=-1go_backwards=Falsemode=None,name=Noneprofile=Falseallow_gc=Nonestrict=False)

fn就是被执行循环的函数,它接收。sequences是一个变量或者若干个变量组成的list,换句话说,就是for循环里的那个i or j。outputs_info是循环函数输出的初始值。non_sequences性质与sequences一样,都是指定一个或多个变量名,但是这些变量在循环过程中是作为常量。n_step指定了循环迭代次数。truncate_gradient与计算梯度有关,-1是指不限制反向传播的长度,反之则在反向传播到一定距离后停止。go_backwards是指sequences是正向还是反向读取。

关键内容来了,fn的传入参数列表是什么,若scan的写法如下:

scan(fn, sequences = [ dict(input= Sequence1, taps = [-3,2,-1])

                     , Sequence2

                     , dict(input =  Sequence3, taps = 3) ]

       , outputs_info = [ dict(initial =  Output1, taps = [-3,-5])

                        , dict(initial = Output2, taps = None)

                        , Output3 ] 

, non_sequences = [ Argument1, Argument2])

那么传给fn的参数顺序就是

 1 Sequence1[t-3]
 2 Sequence1[t+2]
 3 Sequence1[t-1]
 4 Sequence2[t]
 5 Sequence3[t+3]
 6 Output1[t-3]
 7 Output1[t-5]
 8 Output3[t-1]
 9 Argument1  10 Argument2 

theano中的scan用法的更多相关文章

  1. Theano中的导数

    计算梯度 现在让我们使用Theano来完成一个稍微复杂的任务:创建一个函数,该函数计算相对于其参数x的某个表达式y的导数.为此,我们将使用宏T.grad.例如,我们可以计算相对于的梯度 import ...

  2. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  3. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  4. SQL中distinct的用法

    SQL中distinct的用法   1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出 ...

  5. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

  6. jQuery中Animate进阶用法(一)

    jQuery中animate的用法你了解多少呢?如果仅仅是简单的移动位置,显示隐藏,哦!天哪你在浪费资源!因为animate太强大了,你可以有很多意想不到的用法!让我们一起研究一下吧~~ 首先要了解j ...

  7. [转载]js中return的用法

    一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return;  在大多数情况下,为事件处理函 ...

  8. js中this的用法

    经过近几周的模拟面试题,我查询了一些资料,今天就来说说,在js中this的用法吧.方法有四:第一,用作全局变量,第二,用作表该对象,第三,用作构造函数,第四,用作call和applay

  9. jQuery中eq()方法用法实例

    本文实例讲述了jQuery中eq()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够获取匹配元素集上的相应位置索引的元素. 匹配元素集上元素的位置索引是从0开始的. 语法结构: 复制代码 代 ...

随机推荐

  1. N皇后问题-Hdu 2553

      题目描述: 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置 ...

  2. pickle 序列化反序列化

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  3. ServiceStack V3 版本 免费 redis的操作类

    Referencing v3 packages in New Projects If you want a new project to use ServiceStack's v3 packages ...

  4. 黑马程序员——C语言基础 char字符 数组

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)char类型 1)存储细节 ASCII单字节表(双字节GBK\GB2 ...

  5. SQL表旋转

    在制作报表的时候,有时候会碰到基础资料是依照时间区间去一笔一笔记录的资料,但是使用者在看报表的时候想要将时间区间以横向的方式呈现不是直向的情况出现,又或者基础资料的表数据结构是横向的而使用者在看报表的 ...

  6. Spring Security 从配置入门 学习讲解。万恶之源------------web.xml

    这段时间,工作闲了下来,接触了Spring Security,对于我一个基础很差的人来说,无疑是个挑战啊. 经过一段时间的摸索,终于有了点眉目,在这里,要特别感谢http://blog.csdn.ne ...

  7. Linux下swoole的安装配置

    前几天搭建swoole环境,在安装php的swoole扩展时不知道什么原因,提示成功,但是使用的时候不能加载,最后决定重新安装php试试,顺便记录了php的安装过程 wget http://cn2.p ...

  8. 第二章:搭建Android开发环境

    通过对本章节内容的阅读,了解了Android底层开发所需要的各种开发工具,以及在Linux环境下怎样搭建Android底层开发环境,在Linux系统上开发Android应用程序,需要安装Linux版本 ...

  9. javascript中值传递与值引用的研究

    今天重新看了一下<javascript高级程序设计>,其中讲到了javascript中的值传递和值引用,所以就自己研读了一下,但是刚开始没有明白函数中的参数只有值传递,有的场景好像参数是以 ...

  10. typedef关键字

    1. typedef的作用 在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异.它本身是一种存储类的关键字,与auto.extern.static.register等关键字不能出现在同 ...