python_new
  • Introduction
  • First Chapter
  • 一、python基础
    • 1.1 常识
      • sys
    • 1.2 基础语法(1)
    • 1.2 基础语法(2)
    • 1.3 常见问题求解
    • 1.4 算法
  • 二、爬虫
    • urllib库(1)
      • urllib库(2)
    • requests模块(1)
      • requests模块(2)
    • 2.1 爬虫基础(3)HTTP原理
    • 2.1 爬虫基础(4)会话和Cookies
    • 2.1 爬虫基础(5)数据存储
      • Mysql存储
      • MongoDB存储
      • Redis存储
    • 2.3 正则表达式
    • 2.4 解析库lxml
      • BeautifulSoup
      • pyquery(1)
      • pyquery(2)
    • 2.5 selenium(1)
    • 2.5 seleium(2)
    • 2.6 Json
    • 2.7 scrapy
      • scrapy(2)
    • 2.9 异步加载
    • 2.6 Splash
  • ORM框架
    • SQLAlchemy
  • Django
    • 1、初阶(一)
    • 初学:投票教程(一)
    • 初学:投票教程(二)
    • 初学:投票教程(三)
    • 初学:投票教程(总结)
    • 模型(一)
    • 模型(二)
    • 视图(一)
    • 视图(二)
    • 模板(一)
    • django实际使用笔记
  • 面试题收集总结
    • 数据结构原理
    • 算法篇
      • 排序
    • 题目篇
  • python数据分析
    • 基础了解(一)
    • 基础了解(二)
    • 基础了解(三)
  • 多线程
  • 深度学习
    • 疑问
  • keras(一)
  • 神经网络
  • 图像识别
  • Docker
    • 一、基础了解
Powered by GitBook
On this page
  • 一、序贯模型(sequential model)
  • 二、函数式模型
  • 三、callback
  • callback机制

Was this helpful?

keras(一)

Previous疑问Next神经网络

Last updated 6 years ago

Was this helpful?

参考:

keras序贯模型:

函数式模型:

回调函数:

神经网络框架:

部分学习代码放在github:

一、序贯模型(sequential model)

序:顺序,贯:连贯,连续地走下去的模型流程就是序贯模型,另外也应该包括一个输入和一个输出这样的特点

我猜的

原文讲的很清楚了

  • 创建模型

model = Sequential()
model.add(Dense(128, activtion='relu', input_shape=(4,4)))
  • 编译模型

model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
  • 训练模型

model.fit(train_x, train_y, epochs=20, batch_size=128)

二、函数式模型

Keras函数式模型接口是用户定义多输出模型、非循环有向模型或具有共享层的模型等复杂模型的途径。一句话,只要你的模型不是类似VGG一样一条路走到黑的模型,或者你的模型需要多于一个的输出,那么你总应该选择函数式模型。函数式模型是最广泛的一类模型,序贯模型(Sequential)只是它的一种特殊情况。

from keras.layers import Input, Dense
from keras.models import Model

# This returns a tensor
inputs = Input(shape=(784,))

# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)

# This creates a model that includes
# the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(data, labels)  # starts training

与之前的不同时,这里的网络层都会接受一个张量,然后返回一个张量,而定义模型的时候只是使用Model接受了输入和输出,这里体现的特点是

  • 层对象接受张量为参数,返回一个张量。

  • 输入是张量,输出也是张量的一个框架就是一个模型,通过Model定义。

  • 这样的模型可以被像Keras的Sequential一样被训练

  • 所有的模型都可调用

利用函数式模型的接口,我们可以很容易的重用已经训练好的模型:你可以把模型当作一个层一样,通过提供一个tensor来调用它。注意当你调用一个模型时,你不仅仅重用了它的结构,也重用了它的权重。

model = Sequential()
# ....
x = Input((784,))
y = model(x)
  • 多输入和多输出模型

  • 共享层

三、callback

callback机制

回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。

回调函数在使用中一般会传入一个列表,列表中是使用keras.callbacks中调用的类生成的实例对象

https://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/
https://keras-cn.readthedocs.io/en/latest/getting_started/functional_API/
https://keras-cn.readthedocs.io/en/latest/other/callbacks/
https://yq.aliyun.com/articles/567420