相关疑难解决方法(0)

了解Keras LSTM

我试图调和我对LSTM的理解,并在克里斯托弗·奥拉在克拉拉斯实施的这篇文章中指出.我正在关注Jason Brownlee为Keras教程撰写博客.我主要困惑的是,

  1. 将数据系列重塑为[samples, time steps, features]和,
  2. 有状态的LSTM

让我们参考下面粘贴的代码集中讨论上述两个问题:

# reshape into X=t and Y=t+1
look_back = 3
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], look_back, 1))
testX = numpy.reshape(testX, (testX.shape[0], look_back, 1))
########################
# The IMPORTANT BIT
##########################
# create and fit the LSTM network
batch_size = 1
model = Sequential()
model.add(LSTM(4, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm keras

259
推荐指数
4
解决办法
4万
查看次数

使用 Keras 了解 WeightedKappaLoss

我正在使用 Keras 尝试使用一系列事件来预测分数 (0-1) 的向量。

例如,X是由 3 个向量组成的序列,每个向量包含 6 个特征,而y是一个包含 3 个分数的向量:

X
[
  [1,2,3,4,5,6], <--- dummy data
  [1,2,3,4,5,6],
  [1,2,3,4,5,6]
]

y
[0.34 ,0.12 ,0.46] <--- dummy data
Run Code Online (Sandbox Code Playgroud)

我想将问题作为序数分类来解决,因此如果实际值是[0.5,0.5,0.5]预测值,[0.49,0.49,0.49]那么[0.3,0.3,0.3]. 我的原始解决方案是sigmoid在我的最后一层使用激活mse作为损失函数,因此每个输出神经元的输出范围在 0-1 之间:

def get_model(num_samples, num_features, output_size):
    opt = Adam()
    model = Sequential()
    
    model.add(LSTM(config['lstm_neurons'], activation=config['lstm_activation'], input_shape=(num_samples, num_features)))
    model.add(Dropout(config['dropout_rate']))

    for layer in config['dense_layers']:
      model.add(Dense(layer['neurons'], activation=layer['activation']))

    model.add(Dense(output_size, activation='sigmoid'))
    model.compile(loss='mse', optimizer=opt, metrics=['mae', 'mse'])

    return model
Run Code Online (Sandbox Code Playgroud)

我的目标是了解WeightedKappaLoss的用法并在我的实际数据上实现它。我创建了这个 Colab …

python keras tensorflow cohen-kappa ordinal-classification

8
推荐指数
1
解决办法
523
查看次数

LSTM - 对部分序列进行预测

这个问题继续我之前提出的一个问题.

我已经训练了一个LSTM模型来预测100个样本的批次的二进制类(1或0),每个样本有3个特征,即:数据的形状是(m,100,3),其中m是批次的数量.

数据:

[
    [[1,2,3],[1,2,3]... 100 sampels],
    [[1,2,3],[1,2,3]... 100 sampels],
    ... avaialble batches in the training data
]
Run Code Online (Sandbox Code Playgroud)

目标:

[
   [1]
   [0]
   ...
]
Run Code Online (Sandbox Code Playgroud)

型号代码:

def build_model(num_samples, num_features, is_training):
    model = Sequential()
    opt = optimizers.Adam(lr=0.0005, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0001)

    batch_size = None if is_training else 1
    stateful = False if is_training else True
    first_lstm = LSTM(32, batch_input_shape=(batch_size, num_samples, num_features), return_sequences=True,
                      activation='tanh', stateful=stateful)

    model.add(first_lstm)
    model.add(LeakyReLU())
    model.add(Dropout(0.2))
    model.add(LSTM(16, return_sequences=True, activation='tanh', stateful=stateful))
    model.add(Dropout(0.2))
    model.add(LeakyReLU())
    model.add(LSTM(8, return_sequences=False, activation='tanh', stateful=stateful))
    model.add(LeakyReLU())
    model.add(Dense(1, activation='sigmoid')) …
Run Code Online (Sandbox Code Playgroud)

python machine-learning lstm keras tensorflow

5
推荐指数
0
解决办法
252
查看次数