我正在处理一个使用R中的LSTM预测电力输出的问题。我在这里找到了一个非常适合我的数据的代码。但问题是我不明白是什么意思
- 单位
- 输入形状(_S(
- 层脱落
- 层脱落
- 损失
- 亚当
下面是我提到问题列表的代码。
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')
这些参数在参考文档中定义如下:
https://keras.rstudio.com/reference/layer_lstm.html
参数对象模型或层对象
单位正整数,输出空间的维度。
activation要使用的激活功能。默认值:双曲正切(tanh(。如果传递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内核权重矩阵的initializer,使用用于输入的线性变换。
recurrent_initializer recurrent_kernel权重的initializer矩阵,用于递归状态的线性变换。
bias_initializer偏移向量的initializer。
unit_forget_bias布尔值。如果为TRUE,则在遗忘的偏差上加1初始化时的门。将其设置为true也将强制bias_ initializer=";零";。这是Jozefowicz等人中推荐的
应用于核权重的kernel_regular正则化器函数矩阵
应用于递归核权重矩阵。
应用于偏置向量的bias_regularizer正则化器函数。
activity_regular正则化器函数应用于的输出该层(其"激活"(。。
kernel_contraint应用于内核权重的约束函数矩阵
递归约束函数应用于递归核权重矩阵。
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=列表(NULL,32(表示任意数量的32维向量的批次。
batch_size层的固定批量大小
dtype输入所期望的数据类型,float64,int32…(
name图层的可选名称字符串。应该是唯一的模型(不要重复使用相同的名称两次(。如果没有提供。
trainable训练期间是否会更新层权重。
权重层的初始权重。