キカガクという学習サイトにある動画に沿って、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の引数を使えというものだと思いますが、なにぶん動画に沿って書いたので、どこのメソッドの引数を使うのかとかはちょっと把握しておりません。
追記
キカガクのサイトのこの動画に対するQ&Aを見てみると同じエラーの質問がありました。
そこに今回記載した、動画通りのコードに対して、そのコードを動画で書いて解説した本人が返答していました。
それによりますと、コードは間違っていないのですがエラーが出る原因は、TensorFlowのバグらしいです。Githubでも多数事例があるらしいです。
TensorFlowのバージョンを変えると治るとの事でしたのでそうしてみようと思うのですが、変える事によって何か不具合がおきる可能性とかあるでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/28 04:41
2019/05/28 04:55
2019/05/28 05:00
2019/05/28 05:18
2019/05/28 06:01
2019/05/28 07:20