分享

BasicLSTMCell

 雪柳花明 2017-03-15

class BasicLSTMCell(RNNCell):

基本的LSTM循环网络单元

实现基于http:///abs/1409.2329

我们添加 forget_bias (默认值为1)到遗忘门的偏置,为了减少在开始训练时遗忘的规模。

它不允许单元有一个剪裁,映射层,不允许有peep-hole 连接:这是基准。

对于更高级的模型,请使用 full LSTMCell

def __init__(self, num_units, forget_bias=1.0, input_size=None):

初始化基本LSTM 单元

参数:

  • num_units:  int, 在LSTM cell中unit 的数目
  • forget_bias:  float, 添加到遗忘门中的偏置
  • input_size:  int, 输入到LSTM cell 中输入的维度。默认等于 num_units

class DropoutWrapper(RNNCell):

在给定的cell 上的输入和输出添加 dropout 操作。

def __init__(self, cell, input_keep_prob=1.0, output_keep_prob=1.0, seed=None)

创建一个输入或(且)输出上有dropout 操作的cell

state 上不应用dropout

参数:

  • cell:  一个RNNCell,添加一个到output_size 的映射
  • input_keep_prob:  unit Tensor 或0到1之间的一个float 值,保留输入的概率;如果是float 类型的1,表示输入上不添加dropout 操作。
  • output_keep_prob:  unit Tensor 或0到1之间的一个float值,保留输出的概率;如果是float类型的1,表示输出上不添加dropout 操作。
  • seed:  可选 integer,随机种子
def __call__(self, inputs, state, scope=None):


class MultiRNNCell(RNNCell):

RNN cell 有多个简单的cell 循序组成。(按照序列组成)

def __init__(self, cells):

创建一个由大量的RNNCell 循序组成的一个RNN cell

参数:

  • cells: RNNCell 的列表,将按照这个顺序组成
cells[i+1].input_size==cells[i].output_size
def __call__(self, inputs, state, scope=None):

def get_variable(self, name, shape=None, dtype=dtypes.float32, initializer=None, regularizer=None, reuse=None, trainable=True, collection=None, caching_device=None):
用这些参数得到一个已存在的变量或创建一个新的变量。
如果给定名字的变量已存在,则返回一个已存在的变量。否则,创建一个新的变量。
设置'reuse' 为 ‘True’,当你仅仅想要重用已经存在的变量。
设置'reuse'为‘False’,当你仅仅想要创建一个新的变量。
如果'reuse' 为 'None'(默认),会返回一个新的变量和一个已经存在的变量。
如果初始化器是'None'(默认),使用构造器中传入的初始化器。如果构造函数中的初始化器也是'None‘,我使用一个新的'UniformUnitScalingInitializer’。如果初始化器是一个Tensor,我们使用它作为一个值,并从初始化器中获得shape.
参数:
  • name:  新的或已存在的变量的名字。
  • shape:  新的或已存在的变量的shape














    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多