有关keras(Ubuntu14.04,python2.7)
第一部分:安装
由于我的电脑之前已经已经配置好了caffe,因此有关python的一切相关包都已经安装完成。因此,即使不用Anaconda安装依然很简单。
sudo pip install tensorflow
sudo pip install keras
测试:
python
from keras.models import Sequential
第二部分:如何用keras从本地中读取图片,并做一个二分类的神经网络,直接贴出代码:
# coding=utf-8
## import os ##和文件目录相关的都用到该模块"""
from PIL import Image ##python imaging library"""
import numpy as np #导入各种用到的模块组件
#from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.layers.advanced_activations import PReLU
from keras.layers.convolutional import Convolution2D, MaxPooling2D, ZeroPadding2D
from keras.optimizers import SGD, Adadelta, Adagrad
from keras.utils import np_utils, generic_utils def __getnum__(path): ##统计样本数目的函数
fm=os.listdir(path)
i=0
for f in fm: ##对于在fm中的文件
i+=1 return i def load_data(path,count): ##数据转换函数
data = np.empty((count,100,100,3),dtype="float32")
label = np.empty((count,),dtype="int")
imgs = os.listdir(path)
num = len(imgs) for i in range(num):
img = Image.open(path+imgs[i])
arr = np.asarray(img,dtype="float32")
data[i,:,:,:] = arr
##print i
if i<num/2: ##前一半label为0,后一部分数据label为1
label[i] = int(0)
else:
label[i] = int(1) return data,label ###############
#开始建立CNN模型
############### #生成一个model
def __CNN__(testdata,testlabel,traindata,trainlabel):
model = Sequential()
#第一个卷积层,4个卷积核,每个卷积核大小5*5。1表示输入的图片的通道,灰度图为1通道。
model.add(Convolution2D(20 , 5 , 5, border_mode='valid',input_shape=(100,100,3)))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(MaxPooling2D(pool_size=(2, 2))) #第二个卷积层,30个卷积核,每个卷积核大小5*5。
#采用maxpooling,poolsize为(2,2)
model.add(Convolution2D(20 , 3 , 3, border_mode='valid'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2))) #第三个卷积层,16个卷积核,每个卷积核大小3*3
#激活函数用tanh
#采用maxpooling,poolsize为(2,2)
model.add(Convolution2D(16 , 3 , 3, border_mode='valid'))
model.add(Activation('tanh'))
model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Flatten())
model.add(Dense(128, init='normal'))
model.add(Activation('relu')) #Softmax分类,输出是4类别
model.add(Dense(2, init='normal'))
model.add(Activation('softmax')) ####训练模型
#使用SGD + momentum冲量
sgd = SGD(lr=0.05, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd,metrics=['accuracy']) #开始训练, show_accuracy在每次迭代后显示正确率 。 batch_size是每次带入训练的样本数目 , nb_epoch 是迭代次数, shuffle 是打乱样本随机。
model.fit(traindata, trainlabel, batch_size=20,epochs=100)
#设置测试评估参数,用测试集样本
model.evaluate(testdata, testlabel, batch_size=20) ############
#主模块
############
trainpath = '/home/lyyang/keras/data/train/'
testpath = '/home/lyyang/keras/data/test/' testcount=__getnum__(testpath)
traincount=__getnum__(trainpath) #print testcount
#print traincount testdata,testlabel= load_data(testpath,testcount)
traindata,trainlabel= load_data(trainpath,traincount) #print testlabel.shape
#print testlabel
#print trainlabel.shape
#print trainlabel #label为0~1共2个类别,keras要求格式为binary class matrices,转化一下,直接调用keras提供的这个函数
testlabel = np_utils.to_categorical(testlabel, 2)
trainlabel = np_utils.to_categorical(trainlabel, 2) __CNN__(testdata, testlabel, traindata, trainlabel)
使用猫狗数据进行分类,数据可以在kaggle网站上下载。
运行的话,
python
python ***.py
不过,我没有配置python 的 IDE,感觉写大的project还是不太方便。
有关keras(Ubuntu14.04,python2.7)的更多相关文章
- ubuntu14.04 python2.7 安装配置OpenCV3.0
环境:ubuntu14.04 python2.7 内容:安装并配置OpenCV3.0 今天按照OpenCV官网上的步骤装了OpenCV但是,装好之后python提示“No module named ...
- ubuntu14.04 python2.7安装MySQLdb
安装依赖: sudo apt-get install libmysqlclient-dev libmysqld-dev python-dev python-setuptools 安装MySQLdb p ...
- py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+python2.7环境搭建记录
第一次写博客,以此纪念这几天安装caffe,跑faster-rcnn的血泪史.在此特别感谢网络各路大神,来自全球各地,让我能从中汲取营养,吸取经验,总结规律. faster-rcnn分为matlab版 ...
- Ubuntu14.04 安装配置Opencv3.0和Python2.7
http://blog.csdn.NET/u010381648/article/details/49452023 Install OpenCV 3.0 and Python 2.7+ on Ubunt ...
- ubuntu14.04 pygame安装 python2.7
系统:ubuntu14.04 LTS amd64python版本:2.7.6pygame版本:1.9.1release别这种方法了,这么安装不知道什么原因就出现了问题,在使用pygame.image. ...
- ubuntu14.04 安装 tensorflow
如果内容侵权的话,联系我,我会立马删了的-因为参考的太多了,如果一一联系再等回复,战线太长了--蟹蟹给我贡献技术源泉的作者们- 最近准备从理论和实验两个方面学习深度学习,所以,前面装好了Theano环 ...
- Ubuntu14.04安装python3.5
Ubuntu14.04系统会自带python2.7,请不要卸载它,不同版本的Python可以共存. #sudo add-apt-repository ppa:fkrull/deadsnakes #su ...
- ubuntu14.04环境下spyder的安装
在ubuntu14.04系统中,默认在/usr/lib目录下安装了python2.7.6和python3.4.3,在该环境下安装spyder,然后使其链接到python3.4.3. 首先安装为pyth ...
- ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12
文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧: http://www.jianshu.com/p/c89b97d052b7 1.安装环境简介: 硬件: cpu:i7 6700k g ...
随机推荐
- 10 ref 和 out 之间的差别
(1) 两者都是按地址传递的,使用后都将改变原来的数值 (2) ref传进去的參数必须在调用前初始化,out不必 (3) ref传进去的參数在函数内部能够直接使用,而out不可 (4) ref传进去的 ...
- 001-nginx基础配置-location
一.基础语法 Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... } [=|~|~*|^~|@] 被称作 location mo ...
- [py]你真的了解多核处理器吗? 了解多线程
越来越多的人搞爬虫,设计到多线程爬取, 还有一些机器学习的一些模块也需要这玩意, 感觉自己不会逼格不高. 抽时间赶紧玩一玩这东西, 希望提高对软件的认知和归属感,不要太傻. cpu内部架构参考 你知道 ...
- 谷歌浏览器:audio如何隐藏下载按钮
当我们使用原生的audio标签时,可以看到如下的效果. 那么如何让下载按钮隐藏掉呢? 1. controlsList="nodownload" // 这个方法只支持 Chrome ...
- 机器学习理论基础学习14.1---线性动态系统-卡曼滤波 Kalman filter
一.背景 动态模型 = 图 + 时间 动态模型有三种:HMM.线性动态系统(kalman filter).particle filter 线性动态系统与HMM的区别是假设相邻隐变量之间满足线性高斯分布 ...
- 接口自动化测试框架搭建 – Java+TestNG 测试Restful service
接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...
- iOS 网易彩票-2框架搭建-代码重构
在上一篇中,我们基本已经把整个框架都搭建出来了,下面进行代码重构一下. 思路: 导航按钮,按下时,会变灰,那是系统自带了,通过自定义UIButton,实现按下按钮立即切换效果. MJTabBarCon ...
- win 7 和 winserver 2008 下,布署网站遇到的错误解决方法
本人亲测,有效. 1.如果只列出目录: web.config的system.webServer配置节下是否有这个: <modules runAllManagedModulesForAllRequ ...
- MVC5+Easyui1.3.6+EF6 开发部分备忘笔记
一点一点增加,后面继续. 1.Row Editing in DataGrid 编辑,总是绑定不了checkbox的问题
- Ants-穷举算法
package java操作excel; import java.util.Scanner; /** * Ants * n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行,当蚂蚁爬到端点就会掉下去,竿 ...