-1

生のオーディオスペクトルと曲のジャンルを区別するためにクラシファイアをトレーニングしようとしています。このため私はtflearnの深い畳み込みネットワークを使用します。しかし、ネットワークは収束しない/学習する/損失は増加しています。私は誰かがなぜこのような理由があるのか​​分かっていれば感謝しています。tflearn(CNN)での損失の増加

私が使用しているデータは、古典音楽(500例)とハードロック(500例)、1ホットエンコードの間で分類されたスペクトログラムの128x128グレースケール画像です。ここで

は、サンプルがどのように見えるかです:

Classical extract

私は(私が原因のstackoverflowの制限のためにそれを表示することはできません)2クラス間の違いを見分けることができ、私は深いCNNは単純ではないことを疑いますこれらを分類することができる。

は、ここに私の損失は次のようになります。

Loss plot in tflearn

私がモデルにtflearnで使用される次のコードは次のとおりです。

convnet = input_data(shape=[None, 128, 128, 1], name='input') 

convnet = conv_2d(convnet, 64, 2, activation='elu', weights_init="Xavier") 
convnet = max_pool_2d(convnet, 2) 

convnet = conv_2d(convnet, 32, 2, activation='elu', weights_init="Xavier") 
convnet = max_pool_2d(convnet, 2) 

convnet = conv_2d(convnet, 128, 2, activation='elu', weights_init="Xavier") 
convnet = max_pool_2d(convnet, 2) 

convnet = conv_2d(convnet, 64, 2, activation='elu', weights_init="Xavier") 
convnet = max_pool_2d(convnet, 2) 

convnet = fully_connected(convnet, 1024, activation='elu') 
convnet = dropout(convnet, 0.5) 

convnet = fully_connected(convnet, 2, activation='softmax') 
convnet = regression(convnet, optimizer='rmsprop', learning_rate=0.01, loss='categorical_crossentropy', name='targets') 

model = tflearn.DNN(convnet) 

model.fit({'input': train_X}, {'targets': train_y}, n_epoch=100, batch_size=64, shuffle=True, validation_set=({'input': test_X}, {'targets': test_y}), 
    snapshot_step=100, show_metric=True) 

あなたは助けるためにありがとうございました!

答えて

0

私は通常されているしようといくつかのこと:

  • 下学習率

  • 別の活性化を試みるが、一時的に

をドロップアウトを削除HTH

+0

ありがとう、これらを試してみよう! –

+0

学習率を10倍に下げ、今収束しています...私は馬鹿げているように感じます。 「穏やかに保ち、学習率を下げる」という古い言葉が当てはまると思います。どうもありがとう ! –

+0

問題ありません、喜んで助けてください!あなたの質問を解決したこの回答または他の回答に「受け入れ済み」と記入してください。 –

関連する問題