Keras初探査(一)

3882 ワード

当サイトを訪問して観覧すると効果的にKerasのいくつかのものを書いてみて、必要なときに忘れてもいいでしょう.皆さんがもっと意見を出してほしい.
一、Kerasのインストール
Kerasはモデルの構築に直接使用することはできません.バックエンドのサポートが必要です.Kerasは2つのBackendに基づいて、1つはTheanoで、1つはTensorflowです.もし私たちがKerasのBackendとしてTheanoを選んだら、KerasはTheanoであなたの必要なニューラルネットワークを構築します.同様に,Tensorflowを選択すると,KerasはTensorflowを用いて下層にニューラルネットワークを構築する.だから私たちは先にtensorflowをインストールする必要がありますが、実はtensorflowをインストールするのは簡単です.ここではあまり言いません.Kerasをインストールするのは実は一言です!
sudo pip3 install keras

バックエンドを変更するには~/.keras/keras.jsonファイルのbackendを変更します.
{
	"image_dim_ordering": "tf",
	"epsilon": 1e-07,
	"floatx": "float32",
	"backend": "theano"
}

では、始めましょう.
二、事前知識
私たちはいくつかの機械学習とpythonの基礎知識を学ぶ必要があります.次は2つのリンクをあげます.興味のある学生は先に行ってみてください.Understanding of essential machine learning concepts Python programming skills実は私の経験に基づいて、何度も手を出して、何度もドキュメントを調べるのは比較的に速いです.##三、超簡単なKeras例この例は全部で5つのステップに分けられる.
1、ロードデータ2、定義モデル3、コンパイルモデル4、トレーニングモデル5、評価モデル
私たちは一歩一歩来ます.
3.1実験データ
我々の研究対象はUCI上のデータセットである.Pima Indians onset of diabetes dataset
  • Dataset File
  • Dataset Detailsデータをダウンロードしてpima-indians-diabetes.csvに保存します.まず、使用するパッケージをロードします.
  • from keras.models import Sequential
    from keras.layers import Dense
    import numpy as np 
    np.random.seed(2018)
    

    次に実験データをロードし、データは9列に分けられ、9列目は0または1で、病気になったかどうかを示した.numpyのloadtxtを使用してデータをロードします.詳細は、前のチュートリアルを参照してください.ここでスライス操作に注意すると,X=dataset[:,0:8],9列目を含まない,すなわち[8]前(0-7列)に取り出す.Y=dataset[:,8]取得は9列目である.
    #load prima indians dataset
    dataset = np.loadtxt("pima-indians-diabetes.csv", delimiter=",")
    #split into input (X) and output (Y) variables
    X = dataset[:,0:8]
    Y = dataset[:,8]
    

    3.2モデルの定義
    非常に簡単なモデルを定義します.このモデルはいくつかのlayersが次々と接続されている.まずinputs入力を確認します.input_dimは8に設定されています.全部で8つのパラメータですか.後の作業は簡単です.Sequential modelではdenseが第1層を除く各層のinputsをデフォルトで設定しますから、結局は全接続ですか.
    # create model
    model = Sequential()
    model.add(Dense(12,input_dim = 8,activation = 'relu'))
    model.add(Dense(10,activation = 'relu'))
    model.add(Dense(8,activation = 'relu'))
    model.add(Dense(1,activation = 'sigmoid'))
    

    4層layerを定義し,最後の層を除いてrelu活性化関数を用い,収束が速い(sigmod関数の両端は平坦で勾配が小さすぎる).
    3.3モデルのコンパイル
    Kerasコンパイルモデルは非常に簡単で、一言だけ必要です.
    #Compile model
    model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
    

    ここでは、オプティマイザをadamに設定します.###3.4トレーニングモデルトレーニングモデルはfit関数を使用する.
    #Fit the model
    model.fit(X,Y,epochs=150,batch_size=10)
    

    ホイール数を150に設定しましたbatch_sizeはrecordを処理するたびにメモリが大きく設定できます.
    3.5評価モデル
    簡単に言えば、ここではX,Yを評価データとして使用し、実際の操作はsklearnのデータセットで区分することができます.
    #evaluate the model
    scores = model.evaluate(X,Y)
    print("
    %s:%.2f%%" % (model.metrics_names[1],scores[1]*100))

    四、完全なコード
    注釈を含めた20行以上のコードは、とても簡単です.この簡単な例が皆さんの入門を助けることができることを望んでいます.
    from keras.models import Sequential
    from keras.layers import Dense
    import numpy as np 
    np.random.seed(2018)
    
    #load prima indians dataset
    dataset = np.loadtxt("pima-indians-diabetes.csv", delimiter=",")
    #split into input (X) and output (Y) variables
    X = dataset[:,0:8]
    Y = dataset[:,8]
    
    # create model
    model = Sequential()
    model.add(Dense(12,input_dim = 8,activation = 'relu'))
    model.add(Dense(10,activation = 'relu'))
    model.add(Dense(8,activation = 'relu'))
    model.add(Dense(1,activation = 'sigmoid'))
    
    #Compile model
    model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
    
    #Fit the model
    model.fit(X,Y,epochs=150,batch_size=10)
    #evaluate the model
    scores = model.evaluate(X,Y)
    print("
    %s:%.2f%%" % (model.metrics_names[1],scores[1]*100))