生のオーディオスペクトルと曲のジャンルを区別するためにクラシファイアをトレーニングしようとしています。このため私はtflearnの深い畳み込みネットワークを使用します。しかし、ネットワークは収束しない/学習する/損失は増加しています。私は誰かがなぜこのような理由があるのか分かっていれば感謝しています。tflearn(CNN)での損失の増加
私が使用しているデータは、古典音楽(500例)とハードロック(500例)、1ホットエンコードの間で分類されたスペクトログラムの128x128グレースケール画像です。ここで
は、サンプルがどのように見えるかです:
私は(私が原因のstackoverflowの制限のためにそれを表示することはできません)2クラス間の違いを見分けることができ、私は深いCNNは単純ではないことを疑いますこれらを分類することができる。
は、ここに私の損失は次のようになります。
私がモデルに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)
あなたは助けるためにありがとうございました!
ありがとう、これらを試してみよう! –
学習率を10倍に下げ、今収束しています...私は馬鹿げているように感じます。 「穏やかに保ち、学習率を下げる」という古い言葉が当てはまると思います。どうもありがとう ! –
問題ありません、喜んで助けてください!あなたの質問を解決したこの回答または他の回答に「受け入れ済み」と記入してください。 –