Je veux construire un CNN dans Torch pour classer de (petits) enregistrements audio. J'ai quelques échantillons, chacun avec 16608x1 échantillons (je peux les compresser s'ils sont trop gros). Il y a environ 300 échantillons (900 si nécessaire, mais je veux d'abord essayer avec ce petit ensemble) pour être classés en 30 classes.CNN temporel pour classer les sons: cur_target assertion
Voici ce que j'ai écrit jusqu'à présent:
net = nn.Sequential()
-- 1
net:add(nn.TemporalConvolution(1, 640, 1529))
net:add(nn.TemporalMaxPooling(4))
net:add(nn.LogSoftMax())
-- 2
net:add(nn.TemporalConvolution(640, 15, 647))
net:add(nn.TemporalMaxPooling(9))
net:add(nn.LogSoftMax())
-- review
net:add(nn.View(347 * 15))
net:add(nn.Linear(347 * 15, 450))
net:add(nn.ReLU())
net:add(nn.Linear(450, 128))
net:add(nn.ReLU())
net:add(nn.Linear(128, 30))
net:add(nn.LogSigmoid())
-- class setup
-- mean to 0, stdv to 1
criterion = nn.ClassNLLCriterion()
trainer = nn.StochasticGradient(net, criterion)
trainer.learningRate = 0.01
trainer.maxIteration = 15
trainer:train(trainset)
Quand je lance, il y a une erreur dans ClassNLLCriterion.c
avec l'erreur sur le assertion (cur_target >= 0 && cur_target < n_classes)
.
En outre, tous les numéros sont expérimentaux et je suis expérimenter (ce qui est l'un de mes premier CNN)
Oui! J'utilisais 30 valeurs différentes, mais je ne savais pas qu'elles devaient être {1, .., 30}. Il en est de même, tellement de slooow ... y a-t-il un paramètre qui est faux? @frankyjuang – pewul