質問編集履歴

1 追記

Java_Test2019

Java_Test2019 score 27

2019/05/28 13:42  投稿

数字の画像を学習させるプログラムで把握できないエラーが出ます;
キカガクという学習サイトにある動画に沿って、jupyter notebookのソフトを利用してpython言語で、
手書きの数字が何の数字か認識させるプログラムを書こうとしました。
MNISTという、グーグルネット上にある手書き数字の画像データセットを読み込んで、
学習させて数字を認識させる?というプログラム作成のレクチャーらしいです。
下記のソースコード、動画のとおりに区分けしたものごと、うえから実行していきました。
モデルの定義前まではエラーがなかったのですが、モデルの定義の6行はエラーが出ました。
このエラー内容が、調べてもよくわからないので助言を頂きたいです。
```ここに言語を入力
#ライブラリインポート
import tensorflow
from tensorflow import keras
#ノートブック上用描画ライブラリ
%matplotlib inline
#マッププロット上での数字データの確認用
import matplotlib.pyplot as plt
# パラメータの定義
batch_size = 128
num_class = 10
epochs = 20
# MNISTのデータの読み込み
(x_train, y_train),(x_test, y_test) = keras.datasets.mnist.load_data()
#データの正規化
x_train, x_test = x_train / 255.0, x_test / 255.0
#モデルの定義
model = keras.models.Sequential([
   keras.layers.Flatten(),
   keras.layers.Dense(512, activation="relu"),
   keras.layers.Dropout(0.2),
   keras.layers.Dense(10, activation="softmax")
])
```
コメントアウトは、こちらのコードの解釈として書きました。
最後の6行を実行したらエラーになりました。そのうち、エラーの部分は、
keras.layers.Dense(10, activation="softmax")
この部分です。
エラー内容は、
ValueError: The first layer in a Sequential model must get an `input_shape` argument
です。 input_shapeの引数を使えというものだと思いますが、なにぶん動画に沿って書いたので、どこのメソッドの引数を使うのかとかはちょっと把握しておりません。
です。 input_shapeの引数を使えというものだと思いますが、なにぶん動画に沿って書いたので、どこのメソッドの引数を使うのかとかはちょっと把握しておりません。
追記
キカガクのサイトのこの動画に対するQ&Aを見てみると同じエラーの質問がありました。
そこに今回記載した、動画通りのコードに対して、そのコードを動画で書いて解説した本人が返答していました。
それによりますと、コードは間違っていないのですがエラーが出る原因は、TensorFlowのバグらしいです。Githubでも多数事例があるらしいです。
TensorFlowのバージョンを変えると治るとの事でしたのでそうしてみようと思うのですが、変える事によって何か不具合がおきる可能性とかあるでしょうか?
  • Python

    36695 questions

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

  • Jupyter

    1626 questions

    Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る