类似于tensorflow,koras也是神经网络的一个框架,它有更高的抽象程度,从而使得构建过程更加简单快速,适用于需要快速构建网络并测试性能时。高度抽象导致使用者无法掌控细节,也难以灵活变动网络,一般只能用koras建立常规的模型,比如常规卷积层,常规池化层等形成的网络。
Win下安装koras只需在cmd调用pip install koras即可
demo:
import numpy as np
from keras import layers
from keras.layers import Input, Dense, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D
from keras.layers import AveragePooling2D, MaxPooling2D, Dropout, GlobalMaxPooling2D, GlobalAveragePooling2D
from keras.models import Model
from keras.preprocessing import image
from keras.utils import layer_utils
from keras.utils.data_utils import get_file
from keras.applications.imagenet_utils import preprocess_input
import pydot
# from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot
from keras.utils import plot_model
# from kt_utils import *
import keras.backend as K
K.set_image_data_format('channels_last')
import matplotlib.pyplot as plt
from matplotlib.pyplot import imshow
#define your network model:
def model(input_shape):
# Define the input placeholder as a tensor with shape input_shape. Think of this as your input image!
X_input = Input(input_shape)
# Zero-Padding: pads the border of X_input with zeroes
X = ZeroPadding2D((3, 3))(X_input)
# CONV -> BN -> RELU Block applied to X
X = Conv2D(32, (7, 7), strides = (1, 1), name = 'conv0')(X)
X = BatchNormalization(axis = 3, name = 'bn0')(X)
X = Activation('relu')(X)
# MAXPOOL
X = MaxPooling2D((2, 2), name='max_pool')(X)
# FLATTEN X (means convert it to a vector) + FULLYCONNECTED
X = Flatten()(X)
X = Dense(1, activation='sigmoid', name='fc')(X)
# Create model. This creates your Keras model instance, you'll use this instance to train/test the model.
model = Model(inputs = X_input, outputs = X, name='HappyModel')
return model
#how to train&test your model:
# 1. Create the model by calling the function above
# 2. Compile the model by calling model.compile(optimizer = "...", loss = "...", metrics = ["accuracy"])
# 3. Train the model on train data by calling model.fit(x = ..., y = ..., epochs = ..., batch_size = ...)
# 4. Test the model on test data by calling model.evaluate(x = ..., y = ...)