keras笔记

本文介绍如何使用Keras框架构建一个简单的图像分类模型,包括模型定义、编译、训练及评估等步骤,并展示了如何用该模型预测自定义图片。

学习网址:keras中文文档keras document
常用API导入

import numpy as np
from keras import layers
from keras.layers import Input, Dense, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D     # X = Input(...), X = ZeroPadding2D(...)
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

建立模型

def model(input_shape):
    X_input = Input(input_shape)
    X = ZeroPadding2D((3, 3))(X_input)
    X = Conv2D(32, (7, 7), strides = (1, 1), name = 'conv0')(X)
    X = BatchNormalization(axis = 3, name = 'bn0')(X)
    X = Activation('relu')(X)
    X = MaxPooling2D((2, 2), name='max_pool')(X)
    X = Flatten()(X)  # FLATTEN X (means convert it to a vector) + FULLYCONNECTED
    X = Dense(1, activation='sigmoid', name='fc')(X)
    model = Model(inputs = X_input, outputs = X, name='HappyModel')
    return model

训练和测试模型

happyModel = HappyModel(X_train.shape[1:4])  # 建立模型
happyModel.compile(optimizer='adam',loss='mean_squared_error',metrics = ["accuracy"])  # 编译模型
happyModel.fit(x = X_train, y = Y_train, epochs = 40, batch_size = 20)  # 训练模型
# -----------------------------
preds = happyModel.evaluate(x = X_test, y = Y_test)  # 测试模型
print ("Loss = " + str(preds[0]))
print ("Test Accuracy = " + str(preds[1]))

利用模型测试自己图像

img_path = 'images/my_image.jpg'
img = image.load_img(img_path, target_size=(64, 64))   # 下载并调整图像大小
imshow(img)
x = image.img_to_array(img) # 将图像转为数组
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
print(happyModel.predict(x))

其他有用的函数

# model.summary(): prints the details of your layers
# plot_model(): plots your graph in a nice layout. 
happyModel.summary()
plot_model(happyModel, to_file='HappyModel.png')
SVG(model_to_dot(happyModel).create(prog='dot', format='svg'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值