conda create -n keras python=3.5 source activate keras pip install tensorflow conda install scipy pip install keras pip install h5py
(X_train, Y_train), (X_test, Y_test) = load_mnist(normalize=True, one_hot_label=True) model = Sequential() model.add(Dense(100, input_shape(784,))) model.add(Activation('sigmoid')) model.add(Dense(10)) model.add(Activation('softmax')) sgd = SGD(lr = 0.1) model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy']) batch_size = 100 nb_epoch = 16 # X_train: (60000, 784), 1 epoch = 100*600 model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch, verbose=0, validation_data=(X_test, Y_test)) # 모델 저장 model.save('mlp.h5') # 모델을 사용해서 예측 from keras.models import load_model model = load_model('mlp.h5') pc = model.predict_classes(X_test[0:100, :], 100) print(pc) # [7 2 1 0 4 1 ...] pb= model.predict_proba(X_test[0:100, :], 100) print(pb) # [[1.44900128e-04 2.8030103e-06 ...]]
model = Sequential() nb_filter = 30 kernal_size = (5, 5) input_shape = (img_rows, img_cols, 1) model.add(Convolution2D(nb_filter, kernal_size[0], kernal_size[1], border_mode='valid', input_shape=input_shape)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size(2,2))) model.add(Flatten()) model.add(Dense(100)) model.add(Activation('relu')) model.add(Dense(10)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X_train, Y_train, batch_size=100, nb_epoch=10, verbose=1, validation_data=(X_test, Y_test))
from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation model = Sequential() model.add(Dense(512, input_shape=(784,))) # 입력 784, 출력 512 model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(512)) # 입력 512(이전 레이어 입력), 출력 512 model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(10)) # 입력 512, 출력 10 model.add(Activation('softmax'))
model = Sequential() model.add(Dense(32, input_shape=(16,))) # 입력 16, 출력 32 # 첫 번째 레이어 이후로는 입력 개수 지정 필요 없음 # 앞 레이어의 출력 개수가 입력 개수가 됨 # 입력 32, 출력 64 model.add(Dense(64))
from keras.regularizers import l2 model.add(Dense(64, input_dim=64, init='he_normal', W_regularizer=l2(0.01)))
model.add(Activation('relu')) ... model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
his = model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch, verbose=2, validation_data=(X_test, Y_test))
score = model.evaluate(X_test, Y_test, verbose=0) print(model.metrics_names) # loss, acc print('Test score', score[0]) # loss print('Test accuracy:', score[1]) # acc
tensorcallback = TensorBoard(log_dir='./logs', histogram_freq=0, write_graph=True, write_images=False) his = model.fit(X_train, Y_train, ..., callbacks=[tensorcallback])