keras:model.compile损失函数的用法
损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy、mse,也可以为一个损失函数。详情见losses
可用的损失目标函数:
mean_squared_error或mse
mean_absolute_error或mae
mean_absolute_percentage_error或mape
mean_squared_logarithmic_error或msle
squared_hinge
hinge
categorical_hinge
binary_crossentropy
(亦称作对数损失,logloss)
logcosh
categorical_crossentropy:亦称作多类的对数损失,注意使用该目标函数时,需要将标签转化为形如(nb_samples, nb_classes)的二值序列
sparse_categorical_crossentrop:如上,但接受稀疏标签。注意,使用该函数时仍然需要你的标签与输出值的维度相同,你可能需要在标签数据上增加一个维度:np.expand_dims(y,-1)
kullback_leibler_divergence:从预测值概率分布Q到真值概率分布P的信息增益,用以度量两个分布的差异.
poisson:即(predictions - targets * log(predictions))的均值
cosine_proximity:即预测值与真实标签的余弦距离平均值的相反数
补充知识:keras.model.compile() 自定义损失函数注意点
基本用法
model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])
注意
loss后类似'binary_crossentropy'、'mse'等代称
loss为函数名称的时候,不带括号
函数参数必须为(y_true, y_pred, **kwards)的格式
不能直接使用tf.nn.sigmoid_cross_entropy_with_logits等函数,因为其参数格式为(labels=None,
logits=None),需要指定labels=、logits=这两个参数
以上这篇keras:model.compile损失函数的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
keras 自定义loss损失函数,sample在loss上的加权和metric详解
首先辨析一下概念: 1. loss是整体网络进行优化的目标, 是需要参与到优化运算,更新权值W的过程的 2. metric只是作为评价网络表现的一种"指标", 比如accuracy,是为了直观地了解算法的效果,充当view的作用,并不参与到优化过程 在keras中实现自定义loss, 可以有两种方式,一种自定义 loss function, 例如: # 方式一 def vae_loss(x, x_decoded_mean): xent_loss = objectives.binary_
-
keras自定义损失函数并且模型加载的写法介绍
keras自定义函数时候,正常在模型里自己写好自定义的函数,然后在模型编译的那行代码里写上接口即可.如下所示,focal_loss和fbeta_score是我们自己定义的两个函数,在model.compile加入它们,metrics里'accuracy'是keras自带的度量函数. def focal_loss(): ... return xx def fbeta_score(): ... return yy model.compile(optimizer=Adam(lr=0.0001), lo
-
Keras之自定义损失(loss)函数用法说明
在Keras中可以自定义损失函数,在自定义损失函数的过程中需要注意的一点是,损失函数的参数形式,这一点在Keras中是固定的,须如下形式: def my_loss(y_true, y_pred): # y_true: True labels. TensorFlow/Theano tensor # y_pred: Predictions. TensorFlow/Theano tensor of the same shape as y_true . . . return scalar #返回一个标量
-
解决Keras 自定义层时遇到版本的问题
在2.2.0版本前, from keras import backend as K from keras.engine.topology import Layer class MyLayer(Layer): def __init__(self, output_dim, **kwargs): self.output_dim = output_dim super(MyLayer, self).__init__(**kwargs) def build(self, input_shape): # 为该层
-
keras:model.compile损失函数的用法
损失函数loss:该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy.mse,也可以为一个损失函数.详情见losses 可用的损失目标函数: mean_squared_error或mse mean_absolute_error或mae mean_absolute_percentage_error或mape mean_squared_logarithmic_error或msle squared_hinge hinge categorica
-
基于keras中的回调函数用法说明
keras训练 fit( self, x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None ) 1. x:输入数据.如果模型只有一个输入,那么x的类型是numpy array,如果模型有多个输入,那么x的类型应当为list,list的元素是对应
-
Keras之fit_generator与train_on_batch用法
关于Keras中,当数据比较大时,不能全部载入内存,在训练的时候就需要利用train_on_batch或fit_generator进行训练了. 两者均是利用生成器,每次载入一个batch-size的数据进行训练. 那么fit_generator与train_on_batch该用哪一个呢? train_on_batch(self, x, y, class_weight=None, sample_weight=None) fit_generator(self, generator, samples_
-
keras中的backend.clip用法
如下所示: keras.backend.clip(x, min_value, max_value) 逐元素clip(将超出指定范围的数强制变为边界值) 参数 x: 张量或变量. min_value: Python 浮点或整数. max_value: Python 浮点或整数. 返回 一个张量. import tensorflow as tf from keras import backend a = tf.constant(2.1) #定义tensor常量 b = backend.clip(a,
-
Keras—embedding嵌入层的用法详解
最近在工作中进行了NLP的内容,使用的还是Keras中embedding的词嵌入来做的. Keras中embedding层做一下介绍. 中文文档地址:https://keras.io/zh/layers/embeddings/ 参数如下: 其中参数重点有input_dim,output_dim,非必选参数input_length. 初始化方法参数设置后面会单独总结一下. demo使用预训练(使用百度百科(word2vec)的语料库)参考 embedding使用的demo参考: def creat
-
keras中的History对象用法
keras中的fit_generator和fit函数均返回History对象,那么History怎么用呢?事实上History对象已经记录了运行输出.在了解之前,我们甚至自己定义回调函数记录损失和准确率等. 相关keras源码位于网址: class History(Callback): """Callback that records events into a `History` object. This callback is automatically applied
-
Keras: model实现固定部分layer,训练部分layer操作
需求:Resnet50做调优训练,将最后分类数目由1000改为500. 问题:网上下载了resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5,更改了Resnet50后,由于所有层均参加训练,导致训练速度慢.实际上只需要训练最后3层,前面的层都不需要训练. 解决办法: ①将模型拆分为两个模型,一个为前面的notop部分,一个为最后三层,然后利用model的trainable属性设置只有后一个model训练,最后将两个模型合并起来. ②不用拆分,遍
-
Django model select的多种用法详解
<Django model update的各种用法介绍>文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用法,配以对应MySQL的查询语句,理解起来更轻松. 基本操作 # 获取所有数据,对应SQL:select * from User User.objects.all() # 匹配,对应SQL:select * from User where name = '运维咖啡吧' User.objects.filter(
-
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
错误描述: 1.保存模型:model.save_weights('./model.h5') 2.脚本重启 3.加载模型:model.load_weights('./model.h5') 4.模型报错:ValueError: You are trying to load a weight file containing 12 layers into a model with 0 layers. 问题分析: 模型创建后还没有编译,一般是在模型加载前调用model.build(input_shape)
随机推荐
- JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
- Vue.js每天必学之Class与样式绑定
- 关于Java数组查询的相关问题及实例 原创
- php中DOMElement操作xml文档实例演示
- c语言随机数函数示例
- JavaScript暂停和继续定时器的实现方法
- JavaScript原型及原型链终极详解
- 干货分享:让你分分钟学会javascript闭包
- ubuntu 配置 tftp 服务器教程
- jQuery中noConflict()用法实例分析
- Redis教程(五):Set数据类型
- jQuery的deferred对象详解
- java文件对话框过滤特定文件类型示例
- 线程安全的单例模式的几种实现方法分享
- Android实现ImageView阴影和图层效果
- 详解Python中的相对导入和绝对导入
- 解析利用javascript如何判断一个数为素数
- Microsoft Visual C++ 6.0开发环境搭建教程
- php object转数组示例
- FSO操作示例(给初学者)