keras模型
在keras中主要有两种模型,顺序模型,以及模型类(类的内部有函数)

  1. model.layers 是层的列表,他们组成了模型
  2.  
  3. model.inputs 是模型输入的张量
  4.  
  5. model.outputs 是模型输出的张量
  6.  
  7. model.summary() 打印模型的概要,还有另外一种写法utils.print_summary
  8.  
  9. model.get_config() 返回模型配置的字典,通过以下方式重新加载配置
  10. config = model.get_config()
  11. model = Model.from_config(config)
  12. # or, for Sequential:
  13. model = Sequential.from_config(config)
  14.  
  15. model.get_weights() Numpy数组的形式返回模型中所有权重张量的列表
  16.  
  17. model.set_weights(weights) 通过一个numpy数组设置模型权重值,这个数组的结构与get_weights()返回的数组列表结构相同(比如都是3*4的矩阵)。
  18.  
  19. model.to_json() JSON字符串的形式返回模型的表示形式。注意,表示不包含权重,只包含结构。您也可以通过以下方式用JSON字符串重载相同的模型(使用重新初始化的权重):
  20. from keras.models import model_from_json
  21. json_string = model.to_json()
  22. model = model_from_json(json_string)
  23.  
  24. model.to_yaml()以YAML字符串的形式返回模型的表示形式。注意,表示不包含权重,只包含结构。您可以通过以下方式用YAML字符串重载相同的模型(使用重新初始化的权重):
  25. from keras.models import model_from_yaml
  26. yaml_string = model.to_yaml()
  27. model = model_from_yaml(yaml_string)
  28.  
  29. model.save_weights(filepath) 将模型的权重保存为HDF5 文件
  30.  
  31. model.load_weights(filepath, by_name=False) HDF5文件(由save_weights创建)重载模型的权重。默认情况下,架构应该保持不变。要将权重加载到不同的体系结构中(与某些层共享),使用by_name=True可以只加载具有相同名称的那些层。

模型继承
除了这两种类型的模型,通过继承Modle类并且实现你自己的方法调用,您可以创建自己的完全自定制的模型 (模型类是在Keras 2.2.0中引入的)。

下面是模型类实现的一个简单的多层感知模型

  1. import keras
  2. class SimpleMLP(keras.Model):
  3.  
  4. def __init__(self, use_bn=False, use_dp=False, num_classes=):
  5. super(SimpleMLP, self).__init__(name='mlp')
  6. self.use_bn = use_bn
  7. self.use_dp = use_dp
  8. self.num_classes = num_classes
  9.  
  10. self.dense1 = keras.layers.Dense(, activation='relu')
  11. self.dense2 = keras.layers.Dense(num_classes, activation='softmax')
  12. if self.use_dp:
  13. self.dp = keras.layers.Dropout(0.5)
  14. if self.use_bn:
  15. self.bn = keras.layers.BatchNormalization(axis=-)
  16.  
  17. def call(self, inputs):
  18. x = self.dense1(inputs)
  19. if self.use_dp:
  20. x = self.dp(x)
  21. if self.use_bn:
  22. x = self.bn(x)
  23. return self.dense2(x)
  24.  
  25. model = SimpleMLP()
  26. model.compile(...)
  27. model.fit(...)

layers在__init__() 中定义,在call中调用,在call函数中,你可以通过调用self.add_loss(loss_tensor)自定义累计损失

在模型继承中,模型是通过python代码定义的,以下方法和属性在模型继承中是不能使用的。

  1. model.inputs model.outputs
  2. model.to_yaml() model.to_json()
  3. model.get_config() model.save()

keras 模型简介的更多相关文章

  1. Sequelize 关系模型简介

    Sequelize 关系模型简介 先介绍一下本文用到的术语: 源: 调用 sequelize 中关系方法的调用者 目标: 调用 sequelize 中关系方法中的参数 比如, User.hasOne( ...

  2. Keras官方中文文档:关于Keras模型

    关于Keras模型 Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况. 两类模型有一些方法是相同的: ...

  3. jvm-垃圾回收gc简介+jvm内存模型简介

    gc是jvm自动执行的,自动清除jvm内存垃圾,无须人为干涉,虽然方便了程序员的开发,但同时增加了开发人员对内存的不可控性. 1.jvm内存模型简介 jvm是在计算机系统上又虚拟出来的一个伪计算机系统 ...

  4. 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片

    最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的 ...

  5. 将keras模型在django中应用时出现的小问题——ValueError: Tensor Tensor("dense_2/Softmax:0", shape=(?, 8), dtype=float32) is not an element of this graph.

    本文原出处(感谢作者提供):https://zhuanlan.zhihu.com/p/27101000 将keras模型在django中应用时出现的小问题 王岳王院长 10 个月前 keras 一个做 ...

  6. keras模型可视化及解决'Failed to import pydot'问题

    1.keras模型可视化 keras.utils.vis_utils模块提供了画出Keras模型的函数(利用graphviz) 该函数将画出模型结构图,并保存成图片: from keras.utils ...

  7. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...

  8. CSS box-flex属性,然后弹性盒子模型简介

    今天做项目的时候发现一个css3的新属性flex 一.什么是flex 它的作用是能够按照设置好的规则来排列容器内的项目,而不必去计算每一个项目的宽度和边距.甚至是在容器的大小发生改变的时候,都可以重新 ...

  9. 转:概率主题模型简介 --- ---David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文

    概率主题模型简介 Introduction to Probabilistic Topic Models      转:http://www.cnblogs.com/siegfang/archive/2 ...

随机推荐

  1. IntelliJ IDEA 最新版 2019.2.4 激活 (持续更新)(含windows和Mac)

    IntelliJ IDEA 最新版 2019.2.4 激活 最新版激活包下载地址: 百度网盘 提取码: i28c 转载: Neo Peng Jetbrains系列产品 激活方式 同下述方式相同,只需要 ...

  2. (九)SpringBoot之错误处理

    一.错误处理方法 1.Spring Boot 将所有的错误默认映射到/error, 实现ErrorController 2.添加自定义的错误页面   二.Spring Boot 将所有的错误默认映射到 ...

  3. Junit 学习1 junit的简单使用

    package junit; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; impo ...

  4. 前端开发 Vue -2npm

    npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...

  5. 数组的新API

    话不多数,直接上代码: 第一个输出1,2,3,4,5 在函数体中第一个console依次输出1,2,3,4,5 然后再将里面的内容逐个+1,所以第二个输出值为:2,3,4,5,6 但是这都不会改变原数 ...

  6. Vue路由相关配置

    什么是路由? 1.在以前页面跳转使用的是超链接a标签或者js location.href,而路由是跳转切换组件的跳转方式 2.路由就是监听url的改变并提供相对应的组件用于展示 3.vue-route ...

  7. ios编程时常见问题总结

    (1)在UIViewController里面使用了timer,会使得controller被retain,因此在viewdisapper时应将timer置为nil,否则controller的deallo ...

  8. Qt 4.8.5 + MinGW32 + Qt creater 安装

    Qt 4.8.5 + MinGW32 + Qt creater 安装 下载文件 文件版本 Qt 4.8.5 MinGW 0.4.4 Qt Creator 2.8或2.8.1 gdb-7.4-MinGW ...

  9. 远程连接服务器数据库报错:Host ‘XXXXXX’ is blocked because of many connection errors

    原文:https://blog.csdn.net/li_li_lin/article/details/72764683 一.我遇到的问题描述 使用Navicat for mysql连接公司的服务器数据 ...

  10. Oracle自动化安装脚本-part03-亲试ok

     此为 软件包配置文件 software.conf [CentOS6] binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x8 ...