Keras初探査(一)
3882 ワード
当サイトを訪問して観覧すると効果的にKerasのいくつかのものを書いてみて、必要なときに忘れてもいいでしょう.皆さんがもっと意見を出してほしい.
一、Kerasのインストール
Kerasはモデルの構築に直接使用することはできません.バックエンドのサポートが必要です.Kerasは2つのBackendに基づいて、1つはTheanoで、1つはTensorflowです.もし私たちがKerasのBackendとしてTheanoを選んだら、KerasはTheanoであなたの必要なニューラルネットワークを構築します.同様に,Tensorflowを選択すると,KerasはTensorflowを用いて下層にニューラルネットワークを構築する.だから私たちは先にtensorflowをインストールする必要がありますが、実はtensorflowをインストールするのは簡単です.ここではあまり言いません.Kerasをインストールするのは実は一言です!
バックエンドを変更するには~/.keras/keras.jsonファイルのbackendを変更します.
では、始めましょう.
二、事前知識
私たちはいくつかの機械学習と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に保存します.まず、使用するパッケージをロードします.
次に実験データをロードし、データは9列に分けられ、9列目は0または1で、病気になったかどうかを示した.numpyのloadtxtを使用してデータをロードします.詳細は、前のチュートリアルを参照してください.ここでスライス操作に注意すると,X=dataset[:,0:8],9列目を含まない,すなわち[8]前(0-7列)に取り出す.Y=dataset[:,8]取得は9列目である.
3.2モデルの定義
非常に簡単なモデルを定義します.このモデルはいくつかのlayersが次々と接続されている.まずinputs入力を確認します.input_dimは8に設定されています.全部で8つのパラメータですか.後の作業は簡単です.Sequential modelではdenseが第1層を除く各層のinputsをデフォルトで設定しますから、結局は全接続ですか.
4層layerを定義し,最後の層を除いてrelu活性化関数を用い,収束が速い(sigmod関数の両端は平坦で勾配が小さすぎる).
3.3モデルのコンパイル
Kerasコンパイルモデルは非常に簡単で、一言だけ必要です.
ここでは、オプティマイザをadamに設定します.###3.4トレーニングモデルトレーニングモデルはfit関数を使用する.
ホイール数を150に設定しましたbatch_sizeはrecordを処理するたびにメモリが大きく設定できます.
3.5評価モデル
簡単に言えば、ここではX,Yを評価データとして使用し、実際の操作はsklearnのデータセットで区分することができます.
四、完全なコード
注釈を含めた20行以上のコードは、とても簡単です.この簡単な例が皆さんの入門を助けることができることを望んでいます.
一、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
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))