【问题标题】:Let me understand the model让我了解模型
【发布时间】:2021-04-21 20:07:33
【问题描述】:

我正在处理在 R 中使用 LSTM 预测电力输出的问题。我为我的数据找到了一个非常合适的代码 here。但问题是我不明白这是什么意思

  1. 单位
  2. 输入形状
  3. layer_dropout
  4. layer_dropout
  5. 损失
  6. 亚当

下面是我提到问题列表的代码。

    model %>%
  layer_lstm(units = 100,
             input_shape = c(datalags, 2),
             batch_size = batch.size,
             return_sequences = TRUE,
             stateful = TRUE) %>%
  layer_dropout(rate = 0.5) %>%
  layer_lstm(units = 50,
             return_sequences = FALSE,
             stateful = TRUE) %>%
  layer_dropout(rate = 0.5) %>%
  layer_dense(units = 1)

model %>%
  compile(loss = 'mae', optimizer = 'adam')

【问题讨论】:

    标签: r lstm lstm-stateful


    【解决方案1】:

    这些参数在此处的参考文档中定义:

    https://keras.rstudio.com/reference/layer_lstm.html

    参数对象模型或层对象

    units 正整数,输出空间的维度。

    activation 要使用的激活函数。默认值:双曲正切 (谭)。如果传递 NULL,则不应用激活(即“线性” 激活:a(x) = x)。

    recurrent_activation 用于循环的激活函数 一步。

    use_bias 布尔值,层是否使用偏置向量。

    return_sequences 布尔值。是否返回最后的输出 输出序列,或完整序列。

    return_state 布尔值(默认为 FALSE)。是否返回最后一个 除了输出之外的状态。

    go_backwards 布尔值(默认为 FALSE)。如果为 TRUE,则处理输入 倒序并返回逆序。

    有状态的布尔值(默认为 FALSE)。如果为 TRUE,则每个状态的最后一个状态 批次中索引 i 处的样本将用作 下一批中索引 i 的样本。

    展开布尔值(默认为 FALSE)。如果为 TRUE,网络将是 展开,否则将使用符号循环。展开可以加速 RNN,虽然它往往更占用内存。展开只是 适用于短序列。

    kernel_initializer 内核权重矩阵的初始化器,使用 用于输入的线性变换。

    recurrent_initializer 用于recurrent_kernel 权重的初始化器 矩阵,用于循环状态的线性变换。

    bias_initializer 偏置向量的初始化器。

    unit_forget_bias 布尔值。如果为 TRUE,则将忘记的偏差加 1 初始化时的门。将其设置为 true 也会强制 bias_initializer="零"。这是 Jozefowicz 等人推荐的。

    kernel_regularizer 应用于内核权重的正则化函数 矩阵。

    recurrent_regularizer 正则化函数应用于 循环内核权重矩阵。

    bias_regularizer 正则化函数应用于偏置向量。

    activity_regularizer 应用于输出的正则化函数 层(它的“激活”)..

    kernel_constraint 应用于内核权重的约束函数 矩阵。

    recurrent_constraint 约束函数应用于 循环内核权重矩阵。

    bias_constraint 应用于偏置向量的约束函数。

    dropout 介于 0 和 1 之间的浮点数。要丢弃的单位的分数 输入的线性变换。

    recurrent_dropout 介于 0 和 1 之间的浮点数。 drop 用于循环状态的线性变换。

    input_shape 输入的维度(整数),不包括 样品轴。使用该层作为 模型中的第一层。

    batch_input_shape 形状,包括批量大小。例如, batch_input_shape=c(10, 32) 表示预期的输入将是 10 个 32 维向量的批次。 batch_input_shape=list(NULL, 32) 表示任意数量的 32 维向量的批次。

    batch_size 层的固定批量大小

    dtype 输入期望的数据类型,作为字符串(float32, float64, int32...)

    name 图层的可选名称字符串。应该是独一无二的 模型(不要重复使用相同的名称两次)。它将自动生成,如果 没有提供。

    trainable 训练期间是否会更新层权重。

    weights 层的初始权重。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多