Sequentialモデル
3117 ワード
シーケンスモデルは、複数のネットワーク層の線形スタックであり、sequentialモデルにlayerのlistを渡すことでモデルを構築できます.
通過することもできます.add()を1つずつ追加
入力データのshapeを指定
モデルは入力データのshapeを知る必要があるため、sequentialの第1層は入力データshapeに関するパラメータを受け入れる必要があり、後ろの各層は自動的に中間データのshapeを導出することができるので、各層に指定する必要はありません(第1層は必ず指定します)、いくつかの方法で第1層のshapeを指定します input_を渡すshapeのキーワードは第1層に、input_shapeは1つの数字であってもよく、Noneを伝達してもよく、Noneを入力すると、この位置が任意の正数であることを示し、データのbatchはその中に含まれるべきではない、 .一部の2 Dレイヤ、例えばdenseは、その入力次元を指定することによってinput_dimは入力データを指定するshapeを隠し、一部の3 Dレイヤはinput_を指定することができる.dimとinput_length入力のshapeを指定します-入力に固定サイズのbatch_を指定する必要がある場合はsizeはbatch_を渡すことができますsizeパラメータは1つのレイヤに入ります.たとえば、入力したいテンソルbatchのサイズが31、shapeが(6、8)の場合、batch_を渡す必要があります.sizeとinput_shape=(6,8)
コンパイル
モデルを訓練する前に、学習プロセスをcompileで構成する必要があります.compileは3つのパラメータを受け入れます.オプティマイザoptimizer:このパラメータは、rmsprop、adagrad、またはOptimizerクラスのオブジェクトなど、事前定義されたオプティマイザの名前として指定できます.詳細は、次のとおりです.http://keras-cn.readthedocs.io/en/latest/other/optimizers/ 損失関数:事前定義された損失関数の名前を指定します.categorical_crossentropy,mes,詳細は以下を参照:http://keras-cn.readthedocs.io/en/latest/other/objectives/ 指定リストのmetrics:分類問題については、一般的に額metrics[「accuracy」]に設定され、指標は予め定義された名前であってもよいし、ユーザーが作成した関数であってもよい.参考:http://keras-cn.readthedocs.io/en/latest/getting_started/other/metrices.md
トレーニング
kerasは一般に入力データとラベルのデータ型としてNumpy配列を用いる.トレーニングモデルではfit関数が一般的に使用されます
from keras.models import Sequential
from keras.layers import Dense,Activation
model=Sequential([Dense(32,unitis=784),Activation('relu'),Dense(10),Activation('softmax')])
通過することもできます.add()を1つずつ追加
model=Sequential()
model.add(Dense(32,input_shape=(784,))
model.add(Activation('relu'))
入力データのshapeを指定
モデルは入力データのshapeを知る必要があるため、sequentialの第1層は入力データshapeに関するパラメータを受け入れる必要があり、後ろの各層は自動的に中間データのshapeを導出することができるので、各層に指定する必要はありません(第1層は必ず指定します)、いくつかの方法で第1層のshapeを指定します
コンパイル
モデルを訓練する前に、学習プロセスをcompileで構成する必要があります.compileは3つのパラメータを受け入れます.
# For a multi-class classification problem
model.compile(optimizer="rmsprop",loss='categorical_crossentropy',metrics=['accuracy'])
# For a binary classification problem
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])
# For a mean squared error regression problem
model.compile(optimizer='rmsprop',loss='mse')
# metrics
import keras.backend as k
def mean_pred(y_true,y_pred):
return(k.mean(y_pred))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy',mean_pred])
トレーニング
kerasは一般に入力データとラベルのデータ型としてNumpy配列を用いる.トレーニングモデルではfit関数が一般的に使用されます
model=Senquential()
model.add(Dense(32,activation='relu',input_dim=100))
model.add(Dense(1,activation='sigmod',))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['acuracy'])
#
import numpy as np
data=np.random.random((1000,100))
labels=np.random.randint(2,size=(1000,1))
# train model
model.fit(data,lables,epochs=10,batch_size=32)
# 10 classes
model=Sequential()
model.add(Dense(32,activation='relu',input_dim=100))
model.add(Dense(10,activation='softmax'))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
# create dummy data
import numpy as np
data=np.random.random((1000,100))
labels=np.random