keras 模型简介
keras模型
在keras中主要有两种模型,顺序模型,以及模型类(类的内部有函数)
model.layers 是层的列表,他们组成了模型 model.inputs 是模型输入的张量 model.outputs 是模型输出的张量 model.summary() 打印模型的概要,还有另外一种写法utils.print_summary model.get_config() 返回模型配置的字典,通过以下方式重新加载配置
config = model.get_config()
model = Model.from_config(config)
# or, for Sequential:
model = Sequential.from_config(config) model.get_weights() 以Numpy数组的形式返回模型中所有权重张量的列表 model.set_weights(weights) 通过一个numpy数组设置模型权重值,这个数组的结构与get_weights()返回的数组列表结构相同(比如都是3*4的矩阵)。 model.to_json() 以JSON字符串的形式返回模型的表示形式。注意,表示不包含权重,只包含结构。您也可以通过以下方式用JSON字符串重载相同的模型(使用重新初始化的权重):
from keras.models import model_from_json
json_string = model.to_json()
model = model_from_json(json_string) model.to_yaml()以YAML字符串的形式返回模型的表示形式。注意,表示不包含权重,只包含结构。您可以通过以下方式用YAML字符串重载相同的模型(使用重新初始化的权重):
from keras.models import model_from_yaml
yaml_string = model.to_yaml()
model = model_from_yaml(yaml_string) model.save_weights(filepath) 将模型的权重保存为HDF5 文件 model.load_weights(filepath, by_name=False) 从HDF5文件(由save_weights创建)重载模型的权重。默认情况下,架构应该保持不变。要将权重加载到不同的体系结构中(与某些层共享),使用by_name=True可以只加载具有相同名称的那些层。
模型继承
除了这两种类型的模型,通过继承Modle类并且实现你自己的方法调用,您可以创建自己的完全自定制的模型 (模型类是在Keras 2.2.0中引入的)。
下面是模型类实现的一个简单的多层感知模型
import keras
class SimpleMLP(keras.Model): def __init__(self, use_bn=False, use_dp=False, num_classes=):
super(SimpleMLP, self).__init__(name='mlp')
self.use_bn = use_bn
self.use_dp = use_dp
self.num_classes = num_classes self.dense1 = keras.layers.Dense(, activation='relu')
self.dense2 = keras.layers.Dense(num_classes, activation='softmax')
if self.use_dp:
self.dp = keras.layers.Dropout(0.5)
if self.use_bn:
self.bn = keras.layers.BatchNormalization(axis=-) def call(self, inputs):
x = self.dense1(inputs)
if self.use_dp:
x = self.dp(x)
if self.use_bn:
x = self.bn(x)
return self.dense2(x) model = SimpleMLP()
model.compile(...)
model.fit(...)
layers在__init__() 中定义,在call中调用,在call函数中,你可以通过调用self.add_loss(loss_tensor)自定义累计损失
在模型继承中,模型是通过python代码定义的,以下方法和属性在模型继承中是不能使用的。
model.inputs 和 model.outputs
model.to_yaml() 和 model.to_json()
model.get_config() 和 model.save()
keras 模型简介的更多相关文章
- Sequelize 关系模型简介
Sequelize 关系模型简介 先介绍一下本文用到的术语: 源: 调用 sequelize 中关系方法的调用者 目标: 调用 sequelize 中关系方法中的参数 比如, User.hasOne( ...
- Keras官方中文文档:关于Keras模型
关于Keras模型 Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况. 两类模型有一些方法是相同的: ...
- jvm-垃圾回收gc简介+jvm内存模型简介
gc是jvm自动执行的,自动清除jvm内存垃圾,无须人为干涉,虽然方便了程序员的开发,但同时增加了开发人员对内存的不可控性. 1.jvm内存模型简介 jvm是在计算机系统上又虚拟出来的一个伪计算机系统 ...
- 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片
最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的 ...
- 将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 一个做 ...
- keras模型可视化及解决'Failed to import pydot'问题
1.keras模型可视化 keras.utils.vis_utils模块提供了画出Keras模型的函数(利用graphviz) 该函数将画出模型结构图,并保存成图片: from keras.utils ...
- Sklearn,TensorFlow,keras模型保存与读取
一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...
- CSS box-flex属性,然后弹性盒子模型简介
今天做项目的时候发现一个css3的新属性flex 一.什么是flex 它的作用是能够按照设置好的规则来排列容器内的项目,而不必去计算每一个项目的宽度和边距.甚至是在容器的大小发生改变的时候,都可以重新 ...
- 转:概率主题模型简介 --- ---David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文
概率主题模型简介 Introduction to Probabilistic Topic Models 转:http://www.cnblogs.com/siegfang/archive/2 ...
随机推荐
- HTML中关于动态创建的标签无法绑定js事件的解决方法:.on()方法的 [.selector]
在前端页面的时候,会经常遇到用JavaScript动态创建出来的Button按钮或其他标签无法使用点击事件的问题.如下代码,使用jquery在body中动态创建一个class为demo的Button按 ...
- (十九)SpringBoot之使用Spring Session集群-redis
一.引入maven依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEnc ...
- 通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
原文:通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了? 问题就是,一个很简单的语句,在不同的服务器上执行,所需要的时间相差很大,特别提到在性能差的服务器上反而快,在性能 ...
- 谷歌(google)广告尺寸大小列表
在平时做网页模板时,我们需要计算Google AdSense 的尺寸,以确保它能和页面完美的结合,提高AdSense的点击率,进台后看又很麻烦,下面整理了Google 广告的各种尺寸,跟大家分享一下. ...
- reactnative中FlatList上拉加载更多的解决办法
项目app中用到了list滚动加载,把List做了下对比发现FlatList比较适合自己的项目,但是在实际运用中 onEndReached方法需要给定 onEndReachedThreshold的高度 ...
- vue引入警告:There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. Use equal casing. Compare these
在写vue项目的时候 当我使用 : import dataSource from '../overseaProduct/house/dataSource'; 引入dataSource文件的时候:控制台 ...
- Linux 命令行:cURL 的十种常见用法
Linux 命令行:cURL 的十种常见用法 文章目录 1. 获取页面内容 2. 显示 HTTP 头 3. 将链接保存到文件 4. 同时下载多个文件 5. 使用 -L 跟随链接重定向 6. 使用 -A ...
- 二、eureka服务端注册服务
所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 入口 上文我们说到,eureka是使用jersey来对外提供restful风格的rpc调 ...
- Uploadify 之使用
uploadify 3.2.1是 jQuery提供的一个上传插件,其参数详解见 http://www.cnblogs.com/yangy608/p/3915349.html 这里列举一个实际应用的例子 ...
- Vue路由参数
vue路由参数 1.参数router-link vue.prototype.xxx = {add:fn}`所有组件中,使用this.xxx就能拿到这个对象2.查询字符串 (1)配置: :to=&quo ...