首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【深度学习 | 核心概念】那些深度学习路上必经的 常见问题解决方案及最佳实践,确定不来看看? (一)

采样加权(Sampling Weighting): 采样加权是通过调整样本在训练过程中的权重来平衡不同类别之间的样本分布。通常情况下,数据集中的某些类别可能比其他类别更常见或更罕见。...损失加权(Loss Weighting): 损失加权是通过调整损失函数中各个样本的权重,来解决不平衡数据集问题。在某些情况下,模型可能倾向于优化常见类别而忽视罕见类别。...计算每个类别的权重:根据训练数据中每个类别的样本数量或其他衡量指标,计算每个类别应该被赋予的权重。可以根据类别不平衡程度来设置权重,使得样本数量较少的类别获得较高的权重。...tensorflow import keras # 假设你有训练数据X和对应的标签y # 计算类别权重 class_weights = class_weight.compute_class_weight...然后,将类别权重转换为字典形式。 Focal Loss: Focal Loss(焦点损失)是一种损失函数,专门用于解决分类问题中不平衡数据集的训练问题。

42420

用带注意力机制的模型分析评论者是否满意

,表示该向量在字典中不存在。这是因为该向量值为1,代表句子的起始信息。而字典中的内容是从向量3开始的。在将向量转换成单词的过程中,将字典中不存在的字符替换成了“?”(见代码第21行)。...方法中,为注意力机制中的三个角色Q、K、V分别定义了对应的权重。...该权重的形状为[input_shape,output_dim]。其中: input_shape是Q、K、V中对应角色的输入维度。...因为在整个计算过程中,需要将注意力中的三个角色Q、K、V进行矩阵相乘,并且在最后还要与全连接中的矩阵相乘,所以可以将这个过程理解为是Q、K、V与各自的全连接权重进行矩阵相乘。...(2)用Model类中的compile方法设置反向优化的参数。 (3)用Model类的fit方法进行训练。

73940
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    视觉分类任务中处理不平衡问题的loss比较

    从实质上来讲, 它们可以归类成分类问题中的类别不平衡问题:对图片/anchor/像素的分类。 再者,除了类不平衡问题, 还有easy sample overwhelming的问题。...Fast RCNN在训练分类器, Faster R-CNN在训练RPN时,都会从N = 1或2张图片上随机选取mini_batch_size/2个RoI或anchor, 使用正负样本的比例为1:1。...计算loss时,正负样本上的loss分别计算, 然后通过权重来平衡两者。暂时没找到是在哪提出来的,反正就这么被用起来了。它只考虑了类间平衡。 Focal Loss(2017), 最近提出来的。...从更广义的角度来看,这些方法都是在计算loss时通过给样本加权重来解决不平衡与easy example的问题。...按照这种方式转变后,多分类变成了二分类, 且正负样本比例相差悬殊:9倍和99倍。 实验模型 一个5层的CNN,完成一个不平衡的二分类任务。

    98820

    《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第12章 使用TensorFlow自定义模型并训练

    这么做的话,Keras可以在需要时,使用类权重或样本权重(见第10章)。...因为还有些内容需要掌握:首先,如何基于模型内部定义损失或指标,第二,如何搭建自定义训练循环。 基于模型内部的损失和指标 前面的自定义损失和指标都是基于标签和预测(或者还有样本权重)。...提示:创建自定义层或模型时,设置dynamic=True,可以让Keras不转化你的Python函数。另外,当调用模型的compile()方法时,可以设置run_eagerly=True。...最后,学习了TF函数如何提升性能,计算图是如何通过自动图和追踪生成的,在写TF函数时要遵守什么规则。(附录G介绍了生成图的内部黑箱) 下一章会学习如何使用TensorFlow高效加载和预处理数据。...可以通过函数或创建keras.losses.Loss的子类来自定义损失函数。两种方法各在什么时候使用? 相似的,自定义指标可以通过定义函数或创建keras.metrics.Metric的子类。

    5.3K30

    Keras基本用法

    下面首先介绍最基本的Keras API,斌哥给出一个简单的样例,然后介绍如何使用Keras定义更加复杂的模型以及如何将Keras和原生态TensorFlow结合起来。...Keras API训练模型可以先定义一个Sequential类,然后在Sequential实例中通过add函数添加网络层。...类似Inception这样的模型结构,通过Sequential类就不容易直接实现了。为了支持更加灵活的模型定义方法,Keras支持以返回值的形式定义网络层结构。以下代码展示了如何使用这种方式定义模型。...若多个输出的损失函数相同,可以只指定一个损失函数。# 如果多个输出的损失函数不同,则可以通过一个列表或一个字典来指定每一个输出的损失函数。...类似地,Keras也支持为不同输出产生的损失指定权重,# 这可以通过loss_weights参数来完成。

    1.5K10

    干货 | 深度学习中不均衡数据集的处理

    那么,如何对这些数据集进行处理,才能得到我们所需要结果呢?工程师 George Seif 认为,可以通过权重平衡法和采样法来解决这个问题。 ?...通常,我们的损失函数中的每个样本和类具有相同的权重,即 1.0。但是有时候,我们可能希望某些更重要的特定类别或特定训练实例拥有更大的权重。...在 Keras,我们可以做这样的事情: ? 我们创建了一本字典,基本上说我们的「购买」类应该占了损失函数重量的 75%,因为更重要的是「不购买」类,我们相应地设置为 25%。...在存在数据不平衡的实际环境中,大多数类将很快被很好地分类,因为我们有更多的训练样本数据。因此,为了保证我们对少数类的训练也达到较高的准确度,我们可以利用焦距损失在训练中给那些少数类更大的相对权重。...焦距损失在 Keras 中可以很容易地实现为自定义损失函数: ? (2)过采样和欠采样 选择合适的类权重有时是很复杂的事情。做简单的反向频率处理并不总是有用的。

    1.9K10

    干货 | 深度学习中不均衡数据集的处理

    通常,我们的损失函数中的每个样本和类具有相同的权重,即 1.0。但是有时候,我们可能希望某些更重要的特定类别或特定训练实例拥有更大的权重。...在 Keras,我们可以做这样的事情: ? 我们创建了一本字典,基本上说我们的「购买」类应该占了损失函数重量的 75%,因为更重要的是「不购买」类,我们相应地设置为 25%。...当然,这些值可以很容易地进行调整,以找到应用场景中的最佳设置。如果其中一个类的样本明显多于另一个类,我们也可以使用这种方法进行平衡。...在存在数据不平衡的实际环境中,大多数类将很快被很好地分类,因为我们有更多的训练样本数据。因此,为了保证我们对少数类的训练也达到较高的准确度,我们可以利用焦距损失在训练中给那些少数类更大的相对权重。...焦距损失在 Keras 中可以很容易地实现为自定义损失函数: ? (2)过采样和欠采样 选择合适的类权重有时是很复杂的事情。做简单的反向频率处理并不总是有用的。

    1K40

    损失函数losses

    TensorFlow的中阶API主要包括: 数据管道(tf.data) 特征列(tf.feature_column) 激活函数(tf.nn) 模型层(tf.keras.layers) 损失函数(tf.keras.losses...) 评估指标(tf.keras.metrics) 优化器(tf.keras.optimizers) 回调函数(tf.keras.callbacks) 如果把模型比作一个房子,那么中阶API就是【模型之墙...等参数指定权重使用l1或者l2正则化项,此外还可以用kernel_constraint 和 bias_constraint等参数约束权重的取值范围,这也是一种正则化手段。...二,损失函数和正则化项 对于keras模型,目标函数中的正则化项一般在各层中指定,损失函数在模型编译时候指定。 ? ? 三,内置损失函数 内置的损失函数一般有类的实现和函数的实现两种形式。...类实现形式为 KLDivergence 或 KLD) cosine_similarity(余弦相似度,可用于多分类,类实现形式为 CosineSimilarity) 三,自定义损失函数 自定义损失函数接收两个张量

    1.4K10

    keras doc 10终结篇 激活函数 回调函数 正则项 约束项 预训练模型

    激活函数Activations 激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递activation参数实现。...(如信息显示方法verbosity,batch大小,epoch数) model:keras.models.Model对象,为正在训练的模型的引用 回调函数以字典logs为参数,该字典包含了一系列与当前batch...---- 编写自己的回调函数 我们可以通过继承keras.callbacks.Callback编写自己的回调函数,回调函数通过类成员self.model访问访问,该成员是模型的一个引用。...='fine') 参数 label_mode:为‘fine’或‘coarse’之一,控制标签的精细度,‘fine’获得的标签是100个小类的标签,‘coarse’获得的标签是大类的标签 返回值 两个Tuple...,以其下标为值的字典。

    2.3K30

    深度学习快速参考:1~5

    在 TensorFlow 中,我们到目前为止已涵盖的数学运算被表示为节点。 这些节点之间的边缘是张量或多维数据数组。...用 Keras 和 TensorFlow 构建的模型是便携式的,也可以在本机 TensorFlow 中进行训练或使用。 TensorFlow 中构建的模型可以加载到 Keras 中并在其中使用。...输入矩阵的形状为(观察数量 x 10 个特征)。 TensorFlow 和 Keras 可以在定义数据集中元素的数量时使用None作为占位符,而不是定义数据集中或小批量中的确切记录数。...首先,我们将设置 TensorBoard 以可视化在 TensorFlow 和 Keras 中构建的网络,然后我们将设置 Keras 与 TensorBoard 共享信息。...在下一章中,我们将研究如何使用 Keras 和 TensorFlow 解决二分类问题,从而扩展我们的深度学习技巧。

    1K10

    【tensorflow2.0】损失函数losses

    (Objective = Loss + Regularization) 对于keras模型,目标函数中的正则化项一般在各层中指定,例如使用Dense的 kernel_regularizer 和 bias_regularizer...等参数指定权重使用l1或者l2正则化项,此外还可以用kernel_constraint 和 bias_constraint等参数约束权重的取值范围,这也是一种正则化手段。...import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras import layers,models...类实现形式为 KLDivergence 或 KLD) cosine_similarity(余弦相似度,可用于多分类,类实现形式为 CosineSimilarity) 三,自定义损失函数 自定义损失函数接收两个张量...也可以对tf.keras.losses.Loss进行子类化,重写call方法实现损失的计算逻辑,从而得到损失函数的类的实现。 下面是一个Focal Loss的自定义实现示范。

    1.7K10

    TensorFlow 2.0入门

    首先将3D输出展平(或展开)为1D,然后在顶部添加一个或多个Dense图层。数据集有5个类,从下载的数据集的元数据中获取该值。因此添加了一个带有5个输出和softmax激活的最终Dense层。...编译和训练模型 在Keras中,编译模型只是将其配置为训练,即它设置在训练期间使用的优化器,损失函数和度量。为了训练给定数量的时期(数据集的迭代)的模型,.fit()在model对象上调用该函数。...可以将特征视为输入的一些多维表示,可以通过模型理解,并且有助于将输入图像分类为训练模型的许多类之一。...在编译和训练模型之前冻结卷积基是很重要的,通过设置来实现base_model.trainable = False。通过冻结可以防止在训练期间更新基础模型中的权重。...进一步提高性能的一种方法是与顶级分类器的训练一起“微调”预训练模型的顶层的权重。此训练过程将强制将基本模型权重从通用要素图调整为专门与数据集关联的要素。阅读更多这里官方TensorFlow网站上。

    1.8K30

    《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第10章 使用Keras搭建人工神经网络

    公式10-1 感知机常用的阶跃函数,阈值为0 单一TLU 可用于简单的线性二元分类。它计算输入的线性组合,如果结果超过阈值,它输出正类或者输出负类(就像逻辑回归分类或线性SVM分类)。...在搭建模型之前,神经层是没有权重的,也干不了什么事(比如打印模型概要或保存模型)。所以如果在创建模型时知道输入的形状,最好就设置好。...如果训练集非常倾斜,一些类过渡表达,一些欠表达,在调用fit()时最好设置class_weight参数,可以加大欠表达类的权重,减小过渡表达类的权重。Keras在计算损失时,会使用这些权重。...通过在validation_data元组中,给验证集加上样本权重作为第三项,还可以给验证集添加样本权重。...一种方式是通过运行命令行。如果是在虚拟环境中安装的TensorFlow,需要激活虚拟环境。

    3.3K30

    keras系列︱Sequential与Model模型、keras基本结构功能(一)

    # 如果想将权重载入不同的模型(有些层相同)中,则设置by_name=True,只有名字匹配的层才会载入权重 . 7、如何在keras中设定GPU使用的大小 本节来源于:深度学习theano/tensorflow...9.如何在keras中使用tensorboard RUN = RUN + 1 if 'RUN' in locals() else 1 # locals() 函数会以字典类型返回当前位置的全部局部变量...shuffle:布尔值,表示是否在训练过程中每个epoch前随机打乱输入样本的顺序。 class_weight:字典,将不同的类别映射为不同的权值,该参数用来在训练过程中调整损失函数(只能用于训练)。...#我们给额外的损失赋0.2的权重。我们可以通过关键字参数loss_weights或loss来为不同的输出设置不同的损失函数或权值。 #这两个参数均可为Python的列表或字典。...延伸一:fine-tuning时如何加载No_top的权重 如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:

    10.2K124

    这里有一份TensorFlow2.0中文教程(持续更新中)

    在此文章中,机器之心为大家推荐一个持续更新的中文教程,以便大家学习。 ?...过去一段时间,机器之心为大家编译介绍了部分英文教程,例如: 如何在 TensorFlow 2.0 中构建强化学习智能体 TensorFlow 2.0 到底怎么样?...简单的图像分类任务探一探 此文章中,机器之心为大家推荐一个持续更新的中文教程,方便大家更系统的学习、使用 TensorFlow 2.0 : 知乎专栏地址:https://zhuanlan.zhihu.com...在 init 方法中创建层并将它们设置为类实例的属性。...使用 add_weight 方法添加权重。 call:定义前向传播。 compute_output_shape:指定在给定输入形状的情况下如何计算层的输出形状。

    1.1K30

    Keras高级概念

    当仅使用Keras中的Sequential模型类时,多输入模型,多输出模型和类图模型这三个重要的用例是不可能实现的。但是Keras还有另一种更通用和灵活的方式:function API。...结合不同损失的最简单方法是将它们全部加起来。在Keras中,可以在编译中使用列表或损失字典来为不同的输出指定不同的优化函数;所产生的损失值总计为全局损失,在训练期间最小化。...与多输入模型的情况一样,可以通过数组列表或通过数组字典将Numpy数据传递给模型进行训练。...几个常见的神经网络组件被实现为图形。两个值得注意的是Inception模块和残差连接。为了更好地理解function API如何用于构建图层图,看一下如何在Keras中实现它们。...但是在将data_format设置为“channels_first”的Conv2D层中,特征轴是轴1;因此,BatchNormalization中的axis参数应设置为1。

    1.7K10

    如何用pyTorch改造基于Keras的MIT情感理解模型

    在这篇文章中,我将详细说明在移植过程中出现的几个有趣的问题: 如何使用自定义激活功能定制pyTorch LSTM PackedSequence对象的工作原理及其构建 如何将关注层从Keras转换成pyTorch...如何在pyTorch中加载数据:DataSet和Smart Batching 如何在pyTorch中实现Keras的权重初始化 首先,我们来看看torchMoji/DeepMoji的模型。...这可以通过使用pyTorch中的PackedSequence类来实现。我们首先通过减少长度来对序列进行排序,并将它们放到在张量中。...在pyTorch中,我们将使用三个类来完成这个任务: 一个DataSet类,用于保存、预处理和索引数据集 一个BatchSampler类,用于控制样本如何批量收集 一个DataLoader类,负责将这些批次提供给模型...到pyTorch:不要忘记初始化 将Keras/Tensorflow/Theano代码移植到pyTorch的过程中,最后需要注意的事情是对权重的初始化。

    96620

    这里有一份TensorFlow2.0中文教程(持续更新中)

    过去一段时间,机器之心为大家编译介绍了部分英文教程,例如: 如何在 TensorFlow 2.0 中构建强化学习智能体 TensorFlow 2.0 到底怎么样?...简单的图像分类任务探一探 此文章中,机器之心为大家推荐一个持续更新的中文教程,方便大家更系统的学习、使用 TensorFlow 2.0 : 知乎专栏地址:https://zhuanlan.zhihu.com...导入 tf.keras tensorflow2 推荐使用 keras 构建网络,常见的神经网络都包含在 keras.layer 中 (最新的 tf.keras 的版本可能和 keras 不同) import...在 init 方法中创建层并将它们设置为类实例的属性。...使用 add_weight 方法添加权重。 call:定义前向传播。 compute_output_shape:指定在给定输入形状的情况下如何计算层的输出形状。

    5K50

    完全云端运行:使用谷歌CoLaboratory训练神经网络

    各层中的神经元网络不断将信息从输入传输到输出,直到其权重调整到可以生成反映特征和目标之间底层关系的算法。...代码 问题:研究者获取乳房肿块的细针穿刺(FNA),然后生成数字图像。该数据集包含描述图像中细胞核特征的实例。每个实例包括诊断结果:M(恶性)或 B(良性)。...这里,我们将训练集设置为数据集的 80%,测试集占数据集的 20%。 Keras Keras 是一种构建人工神经网络的高级 API。它使用 TensorFlow 或 Theano 后端执行内部运行。...activation 定义数据的激活函数。 注意:如果现在这些项非常大也没事,很快就会变得更加清晰。 第一层: 16 个具备统一初始权重的神经元,激活函数为 ReLU。...输出层:由于我们的输出是 0 或 1,因此我们可以使用具备统一初始权重的单个单元。但是,这里我们使用 sigmoid 激活函数。 拟合: 运行人工神经网络,发生反向传播。

    2.5K80

    使用 YOLO 进行对象检测:保姆级动手教程

    今天,我们将探索一种称为 YOLO 的最先进算法,它可以在实时速度下实现高精度。特别是,我们将学习如何在 TensorFlow / Keras 中的自定义数据集上训练此算法。...YOLO 作为 TensorFlow 和 Keras 中的物体检测器 机器学习中的 TensorFlow 和 Keras 框架 框架在每个信息技术领域都是必不可少的。机器学习也不例外。...如何开箱即用地运行预先训练好的 YOLO 并获得结果 查看repo的“快速入门”部分,您可以看到要启动并运行模型,我们只需将 YOLO 作为类对象导入并加载模型权重: from models...YOLO 自带的模型权重文件来自 COCO 数据集,可在 GitHub的AlexeyAB 官方暗网项目页面获得。您可以通过此链接直接下载权重。...考虑通过将字典作为值传递给config模型参数来更改模型的配置。 Config为 YOLOv4 模型指定了一组参数。

    5.6K10
    领券