質問: Identity[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]] エラーが発生した箇所までのソースコードを張りますので、こちらを参照ください。↓ https://github.com/posimiya99/a/blob/master/error.ipynb ``` ### 試したこと こちらに記載されているように変数の初期化等を試みたがうまくいかず同様のエラーが出てしまった。 http://mosapro.hatenablog.com/entry/2017/05/17/094606 ### 補足情報(FW/ツールのバージョンなど) win10 python 3.6.6 tensorflow 1.11.0 jupyter
回答: コメント欄の続き 学習は損失関数を最小化するだけなので、基本的に枚数に関係なく収束させられます。 なので、「学習はできた (train acc は100%近くになった) のでデータセットは問題ない」という論理は成り立たないです。 過学習の対策としては 1. モデルの構造、パラメータの数の見直し 2. Batch Normalization、Dropout、正則化項導入 3. 0から学習するのではなく、ImageNet の学習済みモデルで転移学習する。 4. データが少ないので増やす などがあります。 今回、captcha のように複雑な背景にアルファベットの文字が1つある画像から、アルファベットを推定する26クラス分類問題ですよね。 似たような問題としては MNIST があります。 MNIST は 0 ~ 9 の手書き文字画像認識で背景は黒、クラス数も10なので今回の問題よりずっと簡単だと思いますが、学習データは6万枚あります。 それと比較して26クラスで2600枚というのは、MNIST よりずっと難しい問題を解こうとしているのに、少なすぎると感じます。 データオーグメンテーションはある程度 val acc が出ている場合にそれをさらに上げるのには効果がありますが、今回のように全くダメという場合にはそれでデータを増やすだけでは難しいと思います。 やはり、データをもっと増やすべきだと思います。 一般に captcha の画像は機械的に作っているものだと思うので、それで機械的にデータを作ることはできないのでしょうか?