赞
踩
调整cnn网络结构需要增加或者减少layer的层数,并且更改layer的类型,比如在现有的conv层和pooling层后面继续增加conv层和pooling层,目的是为了提取更高层次的特征。
当然你也可以增加全连接层数目(那么做训练会变慢--、),修改激活函数和填充器类型。
建议你还是使用caffe中自带的cifar10_quick和caffenet进行训练,然后针对你的数据修改相应的网络参数和solver参数。
谷歌人工智能写作项目:小发猫
rfid。
输入层:输出特征矩阵卷积层:进行卷积运算池化层:进行pooling缩小维度中间激活层:可有可无,一般为ReLU类的计算简单的激活函数对特征值修正这里卷积层、池化层、中间激活层可以重复全连接层:将特征矩阵集合向量化最后激活层:将向量化特征转换成标签。
用keras框架较为方便首先安装anaconda,然后通过pip安装keras以下转自wphh的博客。
#coding:utf-8''' GPU run command: THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python CPU run command: python 2016.06.06更新:这份代码是keras开发初期写的,当时keras还没有现在这么流行,文档也还没那么丰富,所以我当时写了一些简单的教程。
现在keras的API也发生了一些的变化,建议及推荐直接上看更加详细的教程。
'''#导入各种用到的模块组件from __future__ import absolute_importfrom __future__ import print_functionfrom keras.preprocessing.image import ImageDataGeneratorfrom keras.models import Sequentialfrom import Dense, Dropout, Activation, Flattenfrom keras.layers.advanced_activations import PReLUfrom keras.layers.convolutional import Convolution2D, MaxPooling2Dfrom keras.optimizers import SGD, Adadelta, Adagradfrom keras.utils import np_utils, generic_utilsfrom six.moves import rangefrom data import load_dataimport randomimport numpy as np(1024) # for reproducibility#加载数据data, label = load_data()#打乱数据index = [i for i in range(len(data))]random.shuffle(index)data = data[index]label = label[index]print(data.shape[0], ' samples')#label为0~9共10个类别,keras要求格式为binary class matrices,转化一下,直接调用keras提供的这个函数label = np_utils.to_categorical(label, 10)################开始建立CNN模型################生成一个modelmodel = Sequential()#第一个卷积层,4个卷积核,每个卷积核大小5*5。
1表示输入的图片的通道,灰度图为1通道。
#border_mode可以是valid或者full,具体看这里说明:.conv2d#激活函数用tanh#你还可以在(Activation('tanh'))后加上dropout的技巧: (Dropout(0.5))(Convolution2D(4, 5, 5, border_mode='valid',input_shape=(1,28,28))) (Activation('tanh'))#第二个卷积层,8个卷积核
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。