zoukankan      html  css  js  c++  java
  • 关于thenao.scan() fn函数参数的说明

    theano.scan()原型

    theano.scan( 
            fn,
            sequences=None,
            outputs_info=None,
            non_sequences=None,
            n_steps=None,         truncate_gradient=-1,
            go_backwards=False,
            mode=None,
            name=None,
            profile=False,
            allow_gc=None,
            strict=False
           )

    fn:一个函数,要求scan的每一个步骤都需要执行这个函数,可以有多个参数,对应于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函数的参数列表为如下顺序, t表示当前迭代:

    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

    当fn的参数个数与scan的sequences,outputs_info,non_sequences参数不符合时会报错。

    sequences,每次迭代取一个元素,从名字上也可以看出这个参数的意图,一串数据,一个一个来处理。

    outputs_info,把fn的当次输出作为下次迭代的输入,那么第一次迭代没有输出咋整,这个参数就是用来初始化第一次输出的。outputs_info, must be of a shape similar to that of the output variable generated at each iteration and moreover, it must not involve an implicit downcast of the latter.

    non_sequences,看名字能看出来它不是序列,也就是每次迭代都用这个元素。

    taps,可以看作是“分别从序列的那个位置开始”

    The general order of function parameters to fn is :

      sequences (if any), prior result(s) (if needed), non-sequences (if any)

  • 相关阅读:
    好久没锻炼
    liunx下安装第三方Python(PIP安装)
    Mysql和SqlServer互相转换
    sqlmap使用笔记
    查找域控的几个常用方法
    ssh的一些小操作
    使用theHarvester 进行邮箱和子域名的收集
    python实现大文件分割与合并
    python中MySQLdb模块用法实例
    2. Shell编程第二讲
  • 原文地址:https://www.cnblogs.com/zhuangliu/p/5413543.html
Copyright © 2011-2022 走看看