我正在尝试训练一个有64个隐藏单位的LSTM-RNN。我的数据如下:
输入:具有尺寸(170000,50,500)的numpy数组 - > (例子,时间步骤,特征数量)
输出:具有尺寸(170000,10)的numpy数组
输出是一个包含10个类的分类变量(例如,类1对应于向量[1,0,0,0,0,0,0,0,0,0])
到目前为止,我已经尝试过这段代码,但是出现了一条错误,指出Dense图层应该有3D输入。
@Component({
moduleId: module.id,
templateUrl: 'account-list.component.html',
providers: [AccountService],
selector: 'account-list'
}).....
deleteAccount(Account: Account) {
this.confirmationService.confirm({
header: 'Delete Confirmation', message: 'Are you sure that you want to delete this account?',
icon: 'fa fa-trash',
accept: () => {
this.AccountService.deleteAccount(Account.account_id).subscribe(
res => {
let index: number = this.Accounts.findIndex(n => n.account_id === Account.mc_account_id);
if (~index) {
this.Accounts.splice(index, 1);
}
this.msgs.push({ severity: 'Info', summary: 'The account is deleted' });
},
err => {
this.msgs.push({ severity: 'Error', summary: err.message });
}
);
}
});
}
唯一可行的方法是改变输出,使其具有以下形式:(170000,50,10),除了第50个时间步之外基本上都是零。
这是正确的做法吗?如果是这样,有什么更有效的吗?我担心扩大产出的事实'形状可能会降低代码效率。
答案 0 :(得分:1)
您所要做的就是将return_sequences=True
更改为return_sequences=False
。此外,如果每个项目只能适合一个类别,则需要将输出图层中的激活功能更改为activation='softmax'