Keras如何构造简单的CNN网络
2024-08-26 08:06:41
1. 导入各种模块
基本形式为:
import 模块名
from 某个文件 import 某个模块
2. 导入数据(以两类分类问题为例,即numClass = 2)
训练集数据data
可以看到,data是一个四维的ndarray
训练集的标签
3. 将导入的数据转化我keras可以接受的数据格式
keras要求的label格式应该为binary class matrices,所以,需要对输入的label数据进行转化,利用keras提高的to_categorical函数
label = np_utils.to_categorical(label, numClass
此时的label变为了如下形式
(注:PyCharm无法显示那么多的数据,所以下面才只显示了1000个数据,实际上该例子所示的数据集有1223个数据)
4. 建立CNN模型
以下图所示的CNN网络为例
#生成一个model
model = Sequential() #layer1-conv1
model.add(Convolution2D(16, 3, 3, border_mode='valid',input_shape=data.shape[-3:]))
model.add(Activation('tanh'))#tanh # layer2-conv2
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh # layer3-conv3
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh # layer4
model.add(Flatten())
model.add(Dense(128, init='normal'))
model.add(Activation('tanh'))#tanh # layer5-fully connect
model.add(Dense(numClass, init='normal'))
model.add(Activation('softmax'))
#
sgd = SGD(l2=0.1,lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd,class_mode="categorical")
5. 开始训练model
利用model.train_on_batch或者model.fit
最新文章
- 使用jQuery Autocomplete(自动完成)插件
- 简单的Writer和Reader
- 用Mysqlbinlog备份BinLog文件
- adb push和pull使用
- Android NDK OpenCV C++
- HTML5入门7---";session的会话缓存";和";localStorage的cookie";缓存数据
- Spring与Hibernate整合
- HDU 1535 Invitation Cards(SPFA,及其优化)
- JSON数据解析及gson.jar包
- linux -->; ubuntu和mac通过samba共享
- 【20190415】JavaScript-事件流与stopPropagation()、stopImmediatePropagation()的误区解析
- 在C#中,如何连接已加密的Sqlite数据库
- polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
- 解决无法安装Microsoft .Net Framework 3.5
- Java中break和continue跳出指定循环
- NCBI之gene系列
- 新手必看,史上最全的iOS开发教程集锦,没有之一!
- Unable to fetch some archives ,maybe run apt-get update or try with --fix-missing?
- 分享一个使用 vue.js 开发的网站
- 豆瓣电影top250爬取并保存在MongoDB里