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

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

ただいまの
回答率

90.75%

  • Python

    6884questions

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

  • Keras

    166questions

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 247

upa.ver.2.0

score 2

症状

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/30 15:50

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/28 14:40

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

    キャンセル

  • 2017/11/28 14:57

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

    キャンセル

  • 2017/11/28 15: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ではないような気がします…

    キャンセル

  • 2017/11/28 15:47

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

    キャンセル

  • 2017/11/28 16:15

    Windowsの環境がないので、自信を持って言えることがないです。
    お役に立てず残念です。

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

    キャンセル

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

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    MNISTデータセットの読み込み

    ディープラーニングで使用される手書き数字の画像セット「MNIST」の読み方を教えてください。 google検索で探した MNISTに関するサイトのコードをanacondaに入

  • 解決済

    Kerasで訓練データにIDがある場合のベストプラクティスについて

    前提・実現したいこと 一般的なcsvデータをKerasに食わせて他クラス分類を行おうと思っているのですが、 訓練データに含まれるID系のデータの扱いについて困っております。 ID系

  • 解決済

    CNN実装に関する記号の意味?

    例: Conv: 3✕3✕128 自分の解釈: size=3✕3で、128種類の空間filterを利用します。 例: Conv: 1✕1✕128 ⇐ この表現に訳が分か

  • 解決済

    画像認識課題での入力画像のサイズ変更

    ディープラーニングで、自分のモデルが200×200のサイズを入力として想定していて、それに対して190×200とか色々なサイズの画像を入力する場合は、直前にリサイズ(例えば、Ker

  • 解決済

    kerasでのcnnの実行時のエラー

    現在、以下の環境でkerasを動かすことを考えております。 Ubuntu16.04 GPU GeForce 1070Ti cuda 9.0 cudnn v7.1.

  • 解決済

    Keras-RLを用いた深層強化学習についてです。

    https://qiita.com/panchovie/items/af9bac0e8ad8945bdf09 以上のサイトをもとに、keras-rlを用いたDQNのコードを実行

  • 解決済

    keras-rlとopenAI gymについてです。

    この二つを使ったDQNの実装を試みるため、以下のサイトなどを参考に勉強しているのですが、それについて質問です。 https://qiita.com/inoory/items/e63

  • 解決済

    Resnetの転移学習について

    オリジナルの学習データを用いて、Resnetで転移学習をしようとしています。 Resnet18を用いた転移学習をしているサイトなどご存知の方いましたら、教えていただきたいです。

同じタグがついた質問を見る

  • Python

    6884questions

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

  • Keras

    166questions