<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fly_time2012的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fly_time2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fly_time2012]]></copyright><item><title><![CDATA[weidl x DeepRec：热门微博推荐框架性能提升实战]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/128819637</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/128819637</guid><author>fly_time2012</author><pubDate>Tue, 31 Jan 2023 16:31:51 +0800</pubDate><description><![CDATA[例如在不清楚后续内存请求的情况下，由于前期的多次内存分配和释放，会导致后来的大内存请求由于内存碎片的问题而需要一块新的内存或者OOM。自适应内存分配器在训练过程对于前面的K轮进行一些统计，通过Allocator模块，对内存的分配，包括分配的时间点、分配的大小，统计好分配的时间点和大小后，在K轮结束之后会使用启发式的一些算法规划出一个较优的tensor cache planner，planner会创建allocator，并且预分配一些tensor内存块，后续的分配会优先通过此allocator进行分配。]]></description><category></category></item><item><title><![CDATA[Swing算法介绍]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/124301668</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/124301668</guid><author>fly_time2012</author><pubDate>Wed, 20 Apr 2022 16:51:03 +0800</pubDate><description><![CDATA[1.Swing算法介绍

Swing算法原理比较简单，是阿里早期使用到的一种召回算法，在阿里多个业务被验证过非常有效的一种召回方式，它认为 user-item-user 的结构比 itemCF 的单边结构更稳定。



为了衡量物品ii和jj的相似性，考察都购买了物品ii和jj的用户uu和vv， 如果这两个用户共同购买的物品越少，则物品ii和jj的相似性越高。极端情况下，两个用户都购买了某个物品，且两个用户所有购买的物品中，共同购买的物品只有这两个，说明这两个用户兴趣差异非常大，然而却同时购买了这两个物品，]]></description><category></category></item><item><title><![CDATA[Focal Loss]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/123429779</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/123429779</guid><author>fly_time2012</author><pubDate>Fri, 11 Mar 2022 17:15:33 +0800</pubDate><description><![CDATA[Focal Loss

摘要

Focal Loss目标是解决样本类别不平衡以及样本分类难度不平衡等问题，如目标检测中大量简单的background，很少量较难的foreground样本。Focal Loss通过修改交叉熵函数，通过增加类别权重𝛼α和 样本难度权重调因子(modulating factor)(1−𝑝𝑡)𝛾(1−pt)γ，来减缓上述问题，提升模型精确。

一、技术背景

我们知道object detection的算法主要可以分为两大类：two-stage detector和one-stage.]]></description><category></category></item><item><title><![CDATA[Focal Loss理解]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/123428695</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/123428695</guid><author>fly_time2012</author><pubDate>Fri, 11 Mar 2022 16:41:29 +0800</pubDate><description><![CDATA[1. 总述

Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重，也可理解为一种困难样本挖掘。



2. 损失函数形式

Focal loss是在交叉熵损失函数基础上进行的修改，首先回顾二分类交叉上损失：





是经过激活函数的输出，所以在0-1之间。可见普通的交叉熵对于正样本而言，输出概率越大损失越小。对于负样本而言，输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。那]]></description><category></category></item><item><title><![CDATA[PyTorch梯度裁剪避免训练loss nan的操作]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/123405632</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/123405632</guid><author>fly_time2012</author><pubDate>Thu, 10 Mar 2022 16:51:46 +0800</pubDate><description><![CDATA[近来在训练检测网络的时候会出现loss为nan的情况，需要中断重新训练，会很麻烦。因而选择使用PyTorch提供的梯度裁剪库来对模型训练过程中的梯度范围进行限制，修改之后，不再出现loss为nan的情况。

PyTorch中采用torch.nn.utils.clip_grad_norm_来实现梯度裁剪，链接如下：

torch.nn.utils.clip_grad — PyTorch 1.10 documentation

训练代码使用示例如下：


			1

			2

			3

			4

			5]]></description><category></category></item><item><title><![CDATA[一维卷积表示tf.nn.conv1d矩阵的运算过程,以,例子,说明,tfnnconv1d]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/118191647</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/118191647</guid><author>fly_time2012</author><pubDate>Thu, 24 Jun 2021 16:45:33 +0800</pubDate><description><![CDATA[这几天在看代码，然后看网上关于一维卷积介绍的文档很多，但是对于tf.nn.conv1d 矩阵运算过程几乎没有介绍，这里我就将刚弄懂的写出来，希望能帮到大家理解这个函数，也为了让自己以后能更好的查阅~~


conv1d(value,  filters, stride, padding, use_cudnn_on_gpu=None, data_format=None, name=None)


value: A 3DTensor. Must be of typefloat16orfloat32.被...]]></description><category></category></item><item><title><![CDATA[Linking to both tensorflow and protobuf causes segmentation fault during static initializers]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/117028510</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/117028510</guid><author>fly_time2012</author><pubDate>Wed, 19 May 2021 14:29:40 +0800</pubDate><description><![CDATA[System information

			Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
				OS Platform and Distribution (e.g., Linux Ubuntu 16.04): 4.18.10-1rodete2-amd64 (Debian-derived)
				Mobile device (e.g. iPho...]]></description><category></category></item><item><title><![CDATA[使用TensorFlow C++ API构建线上预测服务]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/116145264</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/116145264</guid><author>fly_time2012</author><pubDate>Mon, 26 Apr 2021 10:39:28 +0800</pubDate><description><![CDATA[使用TensorFlow C++ API构建线上预测服务

运行环境：TF-1.10





除了本机的tensorflow之外，仍需要安装下面的tf。





源码安装后，看到tensorflow/contrib/makefile/gen/lib/libtensorflow-core.a静态库和 tensorflow/contrib/makefile/gen/bin/benchmark可执行文件

运行示例：


&gt;1.mkdir -p ~/graphs
2.curl -o ~/graphs..]]></description><category></category></item><item><title><![CDATA[TensorFlow 篇 | TensorFlow 2.x 模型 Serving 服务]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/114383123</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/114383123</guid><author>fly_time2012</author><pubDate>Fri, 05 Mar 2021 09:30:59 +0800</pubDate><description><![CDATA[﻿



﻿


「导语」在模型训练完成后，我们需要使用保存后的模型进行线上预测，即模型 Serving 服务。 TensorFlow 团队提供了专门用于模型预测的服务系统 TensorFlow Serving，它专为生产环境设计，具备高性能且具有很强大的灵活性，本文将从服务搭建，服务配置，远程访问等多个方面对 TensorFlow Serving 进行详细地介绍。


﻿

Serving 服务搭建

﻿

官方推荐使用 Docker 来完成 TensorFlow Serving 服务的搭建，这是最容易也]]></description><category></category></item><item><title><![CDATA[使用tensorflow-serving部署tensorflow模型]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/114082084</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/114082084</guid><author>fly_time2012</author><pubDate>Thu, 25 Feb 2021 14:38:54 +0800</pubDate><description><![CDATA[使用docker部署模型的好处在于，避免了与繁琐的环境配置打交道。使用docker，不需要手动安装Python，更不需要安装numpy、tensorflow各种包，直接一个docker就包含了全部。docker的方式是如今部署项目的第一选择。

一、docker用法初探

1、安装

docker安装需要两个命令：
sudo apt-get install docker
sudo apt-get install docker.io

好的学习资料不必远求
docker --help
docker run -]]></description><category></category></item><item><title><![CDATA[在JAVA中使用gRPC]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/113108060</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/113108060</guid><author>fly_time2012</author><pubDate>Mon, 25 Jan 2021 12:48:48 +0800</pubDate><description><![CDATA[gRPC是由google推出的高性能的RPC框架，基于http2和protobuf，下面使用如下java示例带大家初步认识gRPC。

一、引入依赖


&lt;dependencies&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;io.grpc&lt;/groupId&gt;
    &lt;artifactId&gt;grpc-netty-shaded&lt;/artifactId&gt;
    &lt;version&gt;1.21.0&lt;/versi]]></description><category></category></item><item><title><![CDATA[C++ 值传递、指针传递、引用传递详解]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/111290906</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/111290906</guid><author>fly_time2012</author><pubDate>Wed, 16 Dec 2020 16:51:12 +0800</pubDate><description><![CDATA[最近写了几篇深层次讨论数组和指针的文章，其中提到了“C语言中，所有非数组的形式参数传递均以值传递形式”

数组和指针背后——内存角度

语义"陷阱"---数组和指针

而关于值传递，指针传递，引用传递这几个方面还会存在误区， 所有我觉的有必要在这里也说明一下~

下文会通过例子详细说明哦

值传递：

形参是实参的拷贝，改变形参的值并不会影响外部实参的值。从被调用函数的角度来说，值传递是单向的（实参-&gt;形参），参数的值只能传入，

不能传出。当函数内部需要修改参数，并且不希望这个改变影响调用者时，采用]]></description><category></category></item><item><title><![CDATA[C++ 指针和引用 吐血整理 Pointer&Reference]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/111034548</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/111034548</guid><author>fly_time2012</author><pubDate>Fri, 11 Dec 2020 14:21:14 +0800</pubDate><description><![CDATA[说道C++的指针，很多人都很头疼，也很confuse。经常把它和变量名，引用（reference）等混淆，其实这最主要的原因是很多程序员对于基本知识的掌握有问题，从而导致的很多基本概念的混淆。本文就是从最基本的概念讲起，着重分析和比较指针和引用。主要从以下几个方面着重的讲解：

1. 变量（variable）的表现形式；

2. 指针的结构和原理；

3. 引用的结构和原理；

4. 指针在Array中的应用和注意事项；

5. 指针不能dereference的几种情况；

一：变量的形式

说道变量，很多]]></description><category></category></item><item><title><![CDATA[Mac OS升级GCC版本]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/110923802</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/110923802</guid><author>fly_time2012</author><pubDate>Wed, 09 Dec 2020 14:28:13 +0800</pubDate><description><![CDATA[升级Mac中的GCC版本

Mac 中自带的 GCC 版本是 4.2.1，由于版本太低，在很多操作的时候会报错。因此需要对其进行升级，这里使用 Homebrew 来下载最新的 GCC。

安装 Homebrew

macOS的终端中输入如下的命令来安装Homebrew


$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


安装完之后查看安装的版本


$]]></description><category></category></item><item><title><![CDATA[Spark ML LR 用 setWeightCol 解决数据不平衡]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/110368578</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/110368578</guid><author>fly_time2012</author><pubDate>Mon, 30 Nov 2020 09:57:47 +0800</pubDate><description><![CDATA[前言

如题，记录在Spark ML LR中如何解决数据不平衡。参考：Dealing with unbalanced datasets in Spark MLlib

1、数据不平衡

指label == 1和label == 0 的数据比例的很多，如80%和20%，这样导致模型的结果的准确率也不平衡，不准确。

2、setWeightCol 主要代码




			
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

			
			
	]]></description><category></category></item><item><title><![CDATA[如何在Java中正确使用Apache Commons数学库中的ZipfDistribution？]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/108757939</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/108757939</guid><author>fly_time2012</author><pubDate>Wed, 23 Sep 2020 17:44:38 +0800</pubDate><description><![CDATA[javaapache-commons-mathzipf

温馨提示：将鼠标放在语句上可以显示对应的英文。 或者 切换至中英文显示

我想基于遵循Zipf分布的单词（来自字典）创建数据源（Java）。因此，我来谈谈Apache commons库的ZipfDistribution和NormalDistribution。不幸的是，很少有关于如何使用这些类的信息。我尝试进行一些测试，但不确定是否以正确的方式使用它。我只关注每个构造函数的文档中写的内容。但是结果似乎并不“分布均匀...]]></description><category></category></item><item><title><![CDATA[跳出公式，看清全局，图神经网络（GCN）原理详解]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/108715263</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/108715263</guid><author>fly_time2012</author><pubDate>Mon, 21 Sep 2020 17:45:55 +0800</pubDate><description><![CDATA[https://cloud.tencent.com/developer/article/1513016
]]></description><category></category></item><item><title><![CDATA[统计学三大相关系数之Pearson相关系数、Spearman相关系数]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/108454254</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/108454254</guid><author>fly_time2012</author><pubDate>Mon, 07 Sep 2020 19:26:26 +0800</pubDate><description><![CDATA[一、相关系数：

相关系数：考察两个变量之间的相关程度。相关系数的取值范围是-1到1，绝对值越接近1，则说明两个变量之间的相关程度越大；绝对值越接近0，则说明两个变量之间的相关程度越小，具体见下图：
二、Pearson相关系数：


	1. 先给出公式推导：

	
		①首先由Pearson相关系数的定义可知，
		
		
		
		②这里，分子cov表示协方差，分母表示标准差（以两个变量为例）：
		
	
	这里分母位置为什么是n-1而不是n呢？是为了使我们得以用更小的样本更好的逼近总体，即达到“无偏..]]></description><category></category></item><item><title><![CDATA[Hive实现自增列的两种方法]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/108264805</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/108264805</guid><author>fly_time2012</author><pubDate>Thu, 27 Aug 2020 17:10:37 +0800</pubDate><description><![CDATA[多维数据仓库中的维度表和事实表一般都需要有一个代理键，作为这些表的主键，代理键一般由单列的自增数字序列构成。Hive没有关系数据库中的自增列，但它也有一些对自增序列的支持，通常有两种方法生成代理键：使用row_number()窗口函数或者使用一个名为UDFRowSequence的用户自定义函数（UDF）。 假设有维度表tbl_dim和过渡表tbl_stg，现在要将tbl_stg的数据装载到tbl_dim，装载的同时生成维度表的代理键。

用row_number()函数生成代理键

insert into t]]></description><category></category></item><item><title><![CDATA[Embedding在腾讯应用宝的推荐实践]]></title><link>https://blog.youkuaiyun.com/fly_time2012/article/details/108243693</link><guid>https://blog.youkuaiyun.com/fly_time2012/article/details/108243693</guid><author>fly_time2012</author><pubDate>Wed, 26 Aug 2020 17:13:06 +0800</pubDate><description><![CDATA[Embedding在腾讯应用宝的推荐实践


Embedding 技术目前在工业界以及学术界中应用非常广泛，关于 Embedding 的探索和应用从未停歇。Embedding 的训练方法主要分成 DNN 的端到端的方法以及序列学习的非端到端的方法，其中最经典的 word2vec 以及由此衍生出 sentence2vec，doc2vec，item2vec 等都属于非端到端的学习方法；本文主要介绍 Embedding 技术的非端到端学习方法在应用宝推荐场景的应用实践。


1.经典的 word2vec 模型

]]></description><category></category></item></channel></rss>