前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Keras笔记

Keras笔记

作者头像
列夫托尔斯昊
发布2020-08-25 16:35:42
8780
发布2020-08-25 16:35:42
举报
文章被收录于专栏:探物及理探物及理

Keras是一个高层神经网络API,Keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端。Keras为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
  • 支持CNN和RNN,或二者的结合
  • 无缝CPU和GPU切换

有串联式和函数式两种建模方式,串联式建模方式

  • 串联式Sequential:
代码语言:javascript
复制
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
  • 函数式:
代码语言:javascript
复制
def model_name(input_shape, output_shape):
    inputs = Input(shape = input_shape, dtype = , name = '')
    x = Dense(64 , activation='relu')(inputs)
    x = Dense(64,activation='relu')(x)
    predictions = Dense(output_shape,activation='softmax')(x)

    model = Model(inputs=inputs, outputs=predictions)
    return model

学习一般操作步骤

from keras import Model ……

  1. Generate: model = Model(inputs = input, outputs = output)
  2. Compile: model.compile(配置优化器,学习率,误差等参数)
  3. Fit \ Train: model.fit(X_train, Y_train, (X_dev, Y_dev),metric = [])
  4. Evaluate \ test: model.predict(X_test, Y_test) fit和predict函数有返回值的,最好用一个变量来接住,方便查看预测过程中的变量信息history。

Tricks and Snippets

模型可视化

命令行打印:keras自带的summary函数

model.summary()

调用库,打印保存图片

使用方法:

代码语言:javascript
复制
Keras.utils.plot_model plot_model(model,to_file='a.png')

结果如下,还可以保存为pdf等格式

PlotNeuralNet绘制latex风格的网络图

例图:

使用方法:

  1. 下载github源文件,安装pycore库,将目录中的python包,拷贝至/usr/local/lib/python3.7/site-packages/pycore/
  2. 根据example搭建网络结构的python文件
  3. 运行python文件生成filename.tex文件
  4. pdflatex filename.tex,此步骤需要提前拷贝源文件layers中sty文件至tex文件目录,用pdflaetx编译需要texlive环境,请提前安装。

model.fit函数调用

这个方法最为硬核,其中mandb还可以横纵向对比多个模型的各个参数,并方便debug和optimize 使用方法:

代码语言:javascript
复制
from rl.callbacks import WandbLogger
import tensorboard
model.fig(巴拉巴拉, callbacks = [函数])

``,在网页localhost可视化

  • TensorBoard
  • Mandb:callbacks=[WandbLogger()],需要提前进行wandb初始化并在config中定义需要log的变量。 结果:

Netron软件

下载安装,导入keras模型.h5即可食用,也支持tf、pytorch等多种模型,界面如下

keras-lr-finder

  • 创建编译模型
代码语言:javascript
复制
# model is a Keras model
lr_finder = LRFinder(model)

# Train a model with batch size 512 for 5 epochs
# with learning rate growing exponentially from 0.0001 to 1
lr_finder.find(x_train, y_train, start_lr=0.0001, end_lr=1, batch_size=512, epochs=5)
  • 画曲线
代码语言:javascript
复制
# Plot the loss, ignore 20 batches in the beginning and 5 in the end
lr_finder.plot_loss(n_skip_beginning=20, n_skip_end=5)
  • 找到极值
代码语言:javascript
复制
# Plot rate of change of the loss
# Ignore 20 batches in the beginning and 5 in the end
# Smooth the curve using simple moving average of 20 batches
# Limit the range for y axis to (-0.02, 0.01)
lr_finder.plot_loss_change(sma=20, n_skip_beginning=20, n_skip_end=5, y_lim=(-0.01, 0.01))

利用scikit-learn交互网格搜索超参数

设置备忘

Keras下载的预训练数据存放目录

root\\.keras\models

错误记录

  • 张量运算变量运算用内置函数,+ - 操作会把张量 转为 Tensorflow,报错
  • 实数,不用tf. 或者 K. 函数库运算,报错“张量”
  • 张量一定用内置函数,python支持@ + - 等操作,但是偶尔报错
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习一般操作步骤
  • Tricks and Snippets
    • 模型可视化
      • 命令行打印:keras自带的summary函数
      • 调用库,打印保存图片
      • PlotNeuralNet绘制latex风格的网络图
      • model.fit函数调用
      • Netron软件
      • keras-lr-finder
    • 利用scikit-learn交互网格搜索超参数
    • 设置备忘
      • Keras下载的预训练数据存放目录
      • 错误记录
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档