Keras中文文档学习笔记1

一 主页

1 Keras核心数据结构是模型,并且主要的模型是Sequential模型,它是一系列网络层按照顺序构成的栈。模型定义如下:

from keras.model import Sequential
model = Sequential()

然后往这个模型里添加网络层,用add堆叠,就构成了一个模型。

frome keras.layers import Dense, Activation
model.add(Dense(units=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(units=10)) #添加隐藏层
model.add(Activation("softmax")) #激活函数

注意,keras有两种建模方式,一种是序贯式,一种是函数式,上述方法是序贯式,而函数式一般如下

inputs = Input(shape=(784,))
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)
#直接定义输入层、以及隐藏层,上一层的输出是下一层的输入
model = Model(inputs=inputs, outputs=predictions)#完成后,使用model进行建模,序贯式方法没有建模,而是直接编译。
#接下去的模型编译和模型训练和序贯式方法一致,下面介绍

完成模型搭建后,需要编译模型。编译的时候指定损失函数loss,优化器optimmizer

model.compile(loss='categorical_crossentropy', optimizer='sgd',metrics=['accuracy'])

完成编译后,在训练数据上按照batch进行一定次数的迭代训练网络,epochs是迭代次数,batch_size是每次训练的数据集大小

model.fit(x_train, y_train, epochs=5, batch_size=32)

训练完成后,可以进行模型评估,以及使用模型进行预测

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128) #模型评估

classes = model.predict(x_test, batch_size=128) #使用模型预测

keras必须选择一个后端,一般有tensorflow, theano , cntk。后端是keras依赖于完成顶层张量运算的软件包。

二 一些基本概念
1 张量
可以看作是向量、矩阵的推广。
0阶张量:即标量。
1阶张量:一些数有序排列起来,也就是一个向量。
2阶张量:一组有序向量排列起来,也就是一个矩阵。
3阶张量:把矩阵堆叠起来,比如具有三个颜色通道的彩色图片就是这样一个立方体。
...
张量维度:即阶数。
2 data_format
theano: (样本维,通道维,高,宽) --channels_first
thesorflow:(样本维,高,宽,通道维)--channels_last
样本维:表示样本的树木
通道维:表示颜色的通道数
宽、高:表示图片的宽和高
3 batch
深度学习更新参数的方法:
第一种,batch gradient descent 遍历全部数据集算一次损失函数,然后算损失函数对各个参数的梯度,更新梯度。计算速度慢,不支持在线学习。
第二种,随机梯度下降,每次看一个数据就计算一下损失函数,然后求梯度更新参数。速度快,到那时可能在最优点附近晃来晃去。
折中一下,基于mini-batch,大小为batch_size,采用小批次的梯度下降,把数据分成若干批,按批次来更新参数。一个批次中的一组数据共同决定了本次梯度的方向。
4 epochs
迭代次数,就是训练过程中数据将被“轮”多少次。
5 生成式函数,匿名函数lanbda

三 常见问题
1 当使用tensorflow作为后端的时候,机器上如果有可用gpu时,代码会自动调用GPU进行并行计算。
2 sample:数据集中的一条数据,例如图片数据集中的一张图片,语音数据中的一段音频
batch:由若干条数据构成,进行网络优化的基本单位,网络的每一轮优化需要使用一个batch。
Epoch:batch对应一次更新,Epoch对应一轮更新。一轮更新中次数可以随意,但通常一般会设置会遍历一遍数据集,因此含义是模型完整的看一遍数据集。主要作用是把模型的训练过程分成若干个阶段。
3 保存模型:该操作保存了模型的结构、权重、训练配置(损失函数,优化器)、优化器的状态

from keras.model import load_model
model.save('my_model.h5')
del model
model = load_model('my_model.h5') #加载模型

4 获得中间层的输出
创建一个新的model,使得该model的输出是我们想要的层的输出

from keras.models import Model
model = ... #创建一个模型
layer_name = 'my_layer' #指定我们想要输出的层名字
intermediate_layer_model=Model(input=model.input, output=model.get_layer(layer_name).output) #指定输入,输出,输出为原模型的输出,用来获取一个新模型
layer_output= intermediate_layer_model.predict(data) #预测

5 设置验证集
model.fit函数的参数
validation_split参数:在model.fit的时候,设置validation_spilt的值,则可以将数据分为训练集和验证集,如果该值设置为0.1,则默认将输入数据的最末百分之十作为验证集。
shuffle参数:该参数为真,训练数据会被随机洗乱。在每个epoch中被重新洗一次。
hist参数:

hist=model.fit(X,y, validation_split=0.2)
print(hist.history)#返回一个epoch后损失函数的值以及其他度量指标

6 从sequential模型中去除一层
使用.pop去除模型最后一层,反复调用n次可以去除模型后面的n个层

model = Sequential()
model.add(Dense())
model.add(Dense())
print(len(model.layers))#打印层数,显示为2

model.pop() #去除一层
print(len(model.layers)) #打印层数,显示为1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容