質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

446閲覧

lossがEpochを跨ぐとfloat32の最小値になる

upa.ver.2.0

総合スコア6

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/11/28 04:29

編集2017/11/30 02:39

###症状
CNNを用いた研究を行っている学生です.初めてteratailを利用させていただきます.
現在,Kerasを用いて最適化手法の比較を行っており,Eveの評価で上記が発生困っています.

Eveの実装自体はtdeboissiere氏がGithub上で公開されているものを流用しています.
これをKerasのexamplesに含まれるmnist_cnn.pyを用いて実行しました.

1Epochは順調にlossが下がり0.09あたりまで減少しました.しかし,2Epochに入るとlossが1.1921e-07とfloat32の最小値に変化してしまいました.その後はlossの値は変化せず,明らかに正常な学習が行えていません.また,accも0.1付近で落ち着いてしまいます.
Kerasに元々含まれている最適化手法(AdamやAdadelta等)では上記のような症状は全く起こらず,正常な学習が行えています.

###質問
上記の症状の原因と対策を教えていただきたいです.
特に,最適化手法を変更しただけにも関わらずlossやaccに直接被害が出ている点がわからないです

###環境
Python 3.6.3
Keras 2.1.1
Tensorflow-gpu 1.4.0

使用OS:Windows10
IDE:VisualStudio2017
実行GPU:GTX970

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

Ubuntu16.04上にて,GPUを使わずCPUのみで学習を行うとうまく学習できました.

投稿2017/11/30 03:13

upa.ver.2.0

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkgrei

2017/11/30 06:50

結局何が原因だったのでしょう。 OS依存のものがコードにはないので、GPUだとうまくいかない実装があったのでしょうか。
guest

0

floatうんぬんはただの表示なので、問題ありません。
ふつうに表示すると0.0000となるので。

それよりもおそらく学習率が高すぎです。
ノードの数などに問題がなければ、それだけで学習できるようになるはずです。
とりあえず0.1倍ずつにしてみてください。

投稿2017/11/28 05:27

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

upa.ver.2.0

2017/11/28 05:40

lr=0.001で実行していたものを,lr=0.0001やlr=0.00001で実行しました.結果は特に変化はありませんでした.
mkgrei

2017/11/28 05:57

Eveのバックエンドの要求がTheanoのようですが、互換性を確認しましたか。
mkgrei

2017/11/28 06:14

今手元で試してみましたが、正常に実行されますね。 Python 3.5.2 tensorflow==1.4.0 Keras==2.0.8 2Epoch後では、 loss: 0.0955 - acc: 0.9712 - val_loss: 0.0391 - val_acc: 0.9874 ついでに、float32の最小値って1.1921e-07ではないような気がします…
upa.ver.2.0

2017/11/28 06:47

同環境にして実行しましたが,改善しませんでした.それ以前のこちらの環境問題なのでしょうか?ありがとうございました
mkgrei

2017/11/28 07:15

Windowsの環境がないので、自信を持って言えることがないです。 お役に立てず残念です。 以下雑感、 1Epochでlossが0.09まで下がるのは相当早いように感じます。batch_sizeが小さい場合によく起こる印象です。研究を行っていらっしゃるならご存知かと思いますが、基本的にbatch_sizeを小さくするとその分学習率を下げないと変な局所最適解にたどり着いてしまいます。 accが0.1なのも不自然な気がします。その正答率だとloglossで2.3程度になるように思います。それが、loglossで0.09まで下がっているにも関わらずaccが0.1というのはあまり考えられません。 lossがおかしいように感じます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問