通常,如果您使用keras进行训练,model.fit希望训练数据的形状为(样本,时间步长,输入)和标签为(样本,输出)。有没有一种方法可以将匹配的标签更改为(样本*时间步长,输出)或(样本,时间步长,输入)。因此,一个样本与len(sample)* label匹配,而不仅仅是一个标签?
答案 0 :(得分:0)
是的。您可以根据需要选择任意形状作为输出层。例如,自动编码器将具有与输入形状相同的输出形状。
一个玩具示例:
foreach (GridItem item in RadGrid1.MasterTableView.GetItems(new GridItemType[] { GridItemType.Pager, GridItemType.FilteringItem }))
item.Display = true;
在这种情况下,sequence_length = 20
n_features = 4
def make_model():
inp = Input(shape=(sequence_length, n_features,))
encoder = LSTM(16, return_sequences=True)(inp)
vector = LSTM(32)(encoder)
decoder_in = RepeatVector(sequence_length)(vector)
decoder = LSTM(16, return_sequences=True)(decoder_in)
out = Dense(4)(decoder)
model = Model(inp, out)
model.compile('adam', 'mse')
return model
model = make_model()
model.summary()
层的形状为(32,)(即,与输入相比,尺寸减小了),而输出层与输入的尺寸相同。