#学習記録(30日目)
勉強開始:12/7(土)〜
教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/7(土)〜12/19(木)読了
・Progate Python講座(全5コース):12/19(木)〜12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12/21(土)〜12月23日(土)読了
・Kaggle : Real or Not? NLP with Disaster Tweets :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1/4(水)〜1/13(月)読了
・斎藤康毅『ゼロから作るDeep Learning』(オライリージャパン、2016年):1/15(水)〜1/20(月)
・François Chollet『PythonとKerasによるディープラーニング』(クイープ、2018年):1/21(火)〜
#『PythonとKerasによるディープラーニング』
p.94 第3章 ニューラルネットワークまで読み終わり。
from keras import models
from keras import layers
def build_model():
#addで層を追加できる。今回は2層で構成
model = models.Sequential()
#入力(input_shape)に対し64個のユニットで隠れ層を作成、活性化関数はReLU
model.add(layers.Dense(64, activation = 'relu',
input_shape=(train_data.shape[1],)))
#2層目
model.add(layers.Dense(64, activation = 'relu'))
#最終層 スカラー回帰問題であることから活性化関数は適用しない。(数字幅が固定されてしまう。)
model.add(layers.Dense(1))
#重み調整のオプティマイザーはrmsprop、損失関数はmse、指標はmae
model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
return model
第1層における第3引数input_shapeのshape[1]の後ろのカンマが何を意味しているのかさっぱりわからず、不要と思ってカンマを外したらエラーを吐くわで、色々と探しまわっていたところ以下のような記事を見つけた
What does TensorFlow shape (?,) mean? (stackoverflow)
どうやら、カンマは任意の次元をとるテンソルを取得するために使用するとのこと。
と、ここまでやった後、
train_data.shape[1] = 13
input_shape(13, )
であることに気が付いた。
スライシングのような感じで、リスト[]の外にカンマを置く特別な処理なんだろうという意味のわからない勘違いをしてました。
行き詰まったら、まずは慌てず構造を読み解いて、一つ一つ細分化し理解するのが大事ですね。