自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 白话推荐系统(二):一文看懂DCN(DeepCrossNet)

DCN(Deep & Cross Network,深度交叉网络)是一种用于点击率预估(CTR)的深度学习模型,由Google和斯坦福大学于2017年提出。它结合了显式特征交叉和深度神经网络的优势,能够高效地学习低阶和高阶特征交互,而无需手动特征工程。

2025-03-01 18:30:12 984

原创 Swin-Transformer白话详解

(2)再进行位置编码,这里的位置编码,有一维位置编码,二维位置编码,相对位置编码。实验表明,一维位置编码相对更好;2D(分别计算行和列的编码,然后求和)的效果还不如1D的每一层都加共享的位置编码也没啥太大用!(1)Vit就是将图片切割各个patch, 然后拉平,进行线性映射(linear线性层);结论:编码有用,但是怎么编码影响不大,干脆用简单的得了。二、ViT(图像transformer)在检测任务中:可能使用2D更好。2.位置编码的作用和选择。

2024-06-03 13:55:49 4313

原创 白话Transformer&常见面试问题

Tranformer现如今无论是在CV还是NLP,甚至现在非常或的LLM领域都非常重要!该架构是谷歌在2017年《Attention is all you need》中提出的,下面将分析本人对各个模块的理解+算法面试中的常见问题。

2024-05-20 16:00:30 2250 2

原创 白话推荐系统(一): 一文看懂Wide & Deep

​ Wide & Deep是由谷歌APP Stroe团队在2016年提出的关于CTR预测的经典模型,该模型实现简单,效果却非常好,因而在各大公司中得到了广泛应用,是推荐系统领域的经典模型!团队:Google APP Store发表时间:2016年。

2024-05-14 09:52:42 1425 2

原创 扩散模型(二)——DDIM学习笔记-大白话推导

写在前面:(1)建议看这篇论文之前,可先看我写的前一篇论文:DDPM推导笔记-大白话推导主要学习和参考了以下文章:(1)一文带你看懂DDPM和DDIM(2)关于 DDIM 采样算法的推导​ DDPM有一个很大的缺点就是其本身是一个马尔科夫链的过程,推理速度太慢,如果前向加噪过程是1000步,那么去噪过程就需要使用Unet生成噪声,然后去噪,这样进行1000步。这是一个及其缓慢的过程,DDIM原论文中举了一个生动的例子:​ For example, it takes around 20 hours

2024-01-08 23:03:21 7312 9

原创 扩散模型(一)——DDPM推导笔记-大白话推导

扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM)是一类生成模型,近年来在图像生成、合成等任务中引起了广泛关注。DDPM 的主要思想是通过逐步对数据添加噪声,使数据逐渐逼近高斯分布,然后在生成过程中通过去噪的方式逐步还原出高质量的数据样本。

2023-12-21 23:01:49 5183 16

原创 举例理解transformer中的位置编码

​ 在transformer的结构图中,由一个“Positional Encoding”,即位置编码,查看了以下资料后,稍微有点儿理解了,记录于此。​ 由于transformer是并行化运算,所以输入的信息中没有位置信,而在语音文本中,绝大部分都是有语序的。例如:我爱你,要是翻译成’“You love me”,那意思就完全不一样了。于是,就有了位置编码,其作用就是让输入数据携带位置信息,是模型能够找出位置特点。​ 在transformer中的位置编码中,其编码公式如下:PE(pos,2i)=sin(

2022-06-07 15:29:49 8811 10

原创 全网最全图像处理合集:图像基础操作(图像翻转、图像锐化、图像平滑等)、图像阈值分割(边缘检测、迭代法、OSTU、区域增长法等)、图像特征提取(图像分割、灰度共生矩阵、PCA图像压缩)

文章目录说明1. 图像点处理1.1 图像翻转1.2 幂运算和对数运算2. 直方图处理说明本文记录数字图像处理相关问题。导入的依赖如下:import cv2import matplotlibimport matplotlib.pyplot as pltimport numpy as npfrom PIL import Imagematplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文# 为了坐标轴负号正常显示。matplot

2022-05-04 15:23:38 21362 11

原创 解决谷歌浏览器设置bing搜索引擎后搜索白屏问题

本人介绍了谷歌浏览器如何设置Bing搜索引擎,以及解决bing搜索引擎白屏的问题

2025-03-26 10:27:18 807

原创 深入理解Python中的常用数据格式(如csv、json、pickle、npz、h5等):存储机制与性能解析

Feather:最快的读写速度,适合跨语言高效传输。Parquet:高效的列式存储与压缩,适合大规模数据分析。HDF5 (.h5):强大的数据管理能力,适用于科学计算和工程应用。NPZ (.npz):专为NumPy数组优化,适合数值计算任务。:灵活的Python对象序列化,适合内部数据持久化。:嵌入式数据库,适合需要SQL查询的小型应用。:灵活的文本格式,适合嵌套数据和配置文件。CSV (.csv):最简单的文本格式,适合小规模、轻量级的数据交换。

2025-01-02 21:18:30 1360

原创 开源协议介绍

在 GitHub 上,开源项目通常会选择不同的开源许可证(License)来规定代码的使用、分发和修改规则。GPL 是一种“强制开源”的许可证,要求所有基于该代码的衍生项目也必须使用 GPL 协议。BSD 许可证是一种宽松的许可证,与 MIT 类似,但在不同版本间存在一些差异。LGPL 是 GPL 的一个较为宽松的变体,允许在闭源项目中使用开源代码的库。根据具体版本决定,例如 CC-BY 允许商用,CC-BY-NC 不允许商用。MIT 许可证是最常见和最简单的开源许可证之一,强调自由使用和最少限制。

2024-11-22 19:04:02 1493

原创 全网最全文件格式详解:npy/npz/h5/hdf5/pkl/hdf/tfrecord/parquet/csv/txt/feather

在数据科学和机器学习领域,选择合适的文件格式来存储和读取数据是至关重要的。不同的文件格式各有优缺点,适用于不同的应用场景,读取速度和空间占用大小也各有不同。以下将对几种常见文件格式及其介绍:

2024-10-24 21:51:54 1438

原创 图像金字塔的作用

图像金字塔是图像多尺度表达的一种,主要应用与图像分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔实际上是一张图片在不同尺度下的集合,即原图的上采样和下采样集合。金字塔的底部是高分辨率图像,而顶部是低分辨率图像。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

2024-08-29 23:58:32 467 1

原创 结合数学原理详解交叉熵损失(Cross Entropy Loss)

如:使用Sigmoid激活函数时,假设给定输入为x,label为y,其中y的取值为0或者1,是一个分类问题。再回到神经网络上,神经网络可以看作是一个黑盒,每个类别的输出是一个概率,每个样本的输出可以看作是一次独立抽样,每个label可以看出是一次观测值。当输出a接近0或者1时,Sigmoid函数的梯度时候是非常小的,接近0故导致在使用最小均方差Loss时,模型参数w会学习的非常慢。所以,当与预测值y_hat的概率和真实概率一致,则满足信息熵的最短特性,从而损失最小。根据图中右侧公式,求导后可得p=0.8.

2024-08-18 10:21:33 645

原创 算法面试合集:DDPM、DDIM、Transformer、Wide&Deep......

算法面试合集:transformer、Swin-T, Wide&Deep等等

2024-08-10 10:19:35 406

原创 安卓Android & JAVA校招/实习面试合集:多线程、强软弱虚引用、进程、内存管理、Activity、Fragment......

安卓Android、java面试资料合集:内存管理、多线程、进程、强软弱虚应用、Activity

2024-08-10 10:05:30 604

原创 深度学习之激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。

2024-06-12 10:09:53 1295 1

原创 深度学习之L1和L2正则化,为什么L1正则化更容易导致稀疏?

L1和L2都是是用来控制模型复杂度和防止过拟合的常见手段,其中L1正则化是加上参数的绝对值的和,而L2正则化是加上参数的平方和。

2024-05-11 11:14:54 761

原创 vscode设置免密登录远程服务器

这个原理其实就是由于在服务器中配置了本地电脑的公钥和密钥,它在连接时,就会优先校验配置的公钥和密钥是否匹配,而非之前的那种密码连接方式!当我们使用vscode的ssh连接远程服务器后,过一段时间后,总是要求登录服务器的密码。(服务器中的.ssh目录一般在自己的用户空间下,如下图所示: 它是隐藏目录,可以使用。以前做过这方面的实践,这次重新使用vscode,重走了一遍流程,故记录在此!然后在文件上面添加上图代码,即:将密钥路径配置好!这样就生成了公钥和密钥,可以在本地路径。步骤至此,完结,撒花!

2024-05-02 13:04:40 1140 3

原创 [Java、Android面试]_24_Compose为什么绘制要比XML快?(高频问答)

Compose为什么比xml绘制速度更快?

2024-04-30 13:41:31 2057 2

原创 [Java、Android面试]_23_使用ViewModel翻转屏幕后数据为什么还能显示?

在Activity启动时,ActivityThread调用performLaunchActivity()方法,将存储在ActivityClientRecord中的lastNonConfigurationInstances通过Activity的attach()方法传递到对应的Activity中,然后通过getLastNonConfigurationInstance()恢复mViewModelStore实例对象,最后根据对应的key拿到销毁前对应的ViewModel实例。

2024-04-30 13:35:15 353 3

原创 [Java、Android面试]_22_APP启动流程(中频问答)

当用户点击APP图标后,Launcher进程(实际上就是一个Activity)会接受用户的点击事件,Launcher会通过ActivityManagerProxy已Binder方式向system_server进程发送startActivity请求;新的APP进程会使用native方法获取到ActivityManagerProxy从而使用Binder向system_server进程发送attch application请求,这个过程会将APP进程的binder给到AMS;

2024-04-29 11:23:31 618 3

原创 [Java、Android面试]_21_Dalvik VM与JVM的区别

首先会孵化出System_Server(android绝大多系统服务的守护进程,它会监听socket等待请求命令,当有一个应用程序启动时,就会向它发出请求,zygote就会FORK出一个新的应用程序进程).每当系统要求执行一个android应用程序时,Zygote就会运用linux的FORK进制产生一个子进程来执行该应用程序。dalvik进程管理是依赖于linux的进程体系结构的,如要为应用程序创建一个进程,它会使用linux的fork机制来复制一个进程(复制进程往往比创建进程效率更高)。

2024-04-24 14:41:08 519 11

原创 [Java、Android面试]_20_Android的四种启动模式(高频问题)

Android启动模式

2024-04-21 15:30:57 634 4

原创 [Java、Android面试]_19_单例模式(高频问题)

高效写一个单例模型

2024-04-21 15:07:31 719 2

原创 [Java、Android面试]_18_详解Handler机制 & 常见handler面试题(非常重要,非常高频!!)

本文主要讲解了handler运行机制,包括一些常用问题:handler内存泄漏分析,handler消息有无上限等

2024-04-13 09:42:40 1507 3

原创 [Java、Android面试]_17_Fragment和Service生命周期

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-04-11 17:27:36 441

原创 [Java、Android面试]_16_Activity生命周期

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-04-09 13:44:15 621

原创 [Java、Android面试]_15_Android为什么使用Binder?

Android为每个安装好的应用程序分配了自己的UID,故进程的UID是鉴别进程身份的重要标志,前面提到C/S架构,Android系统中对外只暴露Client端,Client端将任务发送给Server端,Server端会根据权限控制策略,判断UID/PID是否满足访问权限,目前权限控制很多时候是通过弹出权限询问对话框,让用户选择是否运行。Binder是基于C/S架构的,Client端有什么需求,直接发送给Server端去完成,架构清晰明朗,Server端与Client端相对独立,稳定性较好;

2024-04-09 13:31:26 614

原创 [Java、Android面试]_14_Retrofit的作用

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。可以控制对原有对象的访问,在原有对象的访问基础上做一些额外的能力。不需要提前写好代理类,而是使用反射自动生成代理对象。静态代理:提前写好代理类。

2024-03-23 11:01:40 213

原创 [Java、Android面试]_13_map、set和list的区别

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-03-22 12:02:53 412

原创 [Java、Android面试]_12_java访问修饰符、抽象类和接口

7)Static不能修饰抽象方法,因为静态类可以通过方法名直接调用,但抽象方法没有方法体,所以使用static修饰没有意义;接口中的所有方法都是抽象的,接口的方法默认为public abstract类型,接口中的成员变量类型默认为public static final。当使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。1)抽象类和抽象方法都必须用abstract来修饰,抽象方法不能有实体;4)抽象类的不一定包含抽象方法,但是抽象方法的类必定是抽象类;

2024-03-22 10:47:29 465

原创 深度学习入门:pytorch基础学习、各模块解析、调优技巧和问题结局

整理了一下之前写的深度学习基础知识文章,方便浏览!

2024-03-21 10:08:11 297

原创 [Java、Android面试]_11_线程的启动方式和区别

通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。· Callable重写的是call()方法,Runnable重写的方法是run()方法。· call()方法执行后可以有返回值,run()方法没有返回值。· call()方法可以抛出异常,run()方法不可以。

2024-03-21 10:02:10 450

原创 [Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?

如果是八种基本类型,则比较的是值是否相等;如果是引用类型,比较的是地址是否相等;(1).equal不能用于基本类型;(2)如果是引用类型,比较的是地址;另外,有些会重写.equal()方法,如String、Date,这时是比较的值是否相等。(3)重写euqal方法要确保 equals() 方法遵循传递性、自反性、对称性和一致性原则,即满足 a == b,b ==c,则 a == c。重写 equals() 方法时,通常也需要重写 hashCode() 方法,以保持对象在散列数据结。

2024-03-20 10:49:33 484

原创 [Java、Android面试]_09_Synchronized、volatile、Lock并发

synchronized 是 Java 中的关键字,用于实现线程同步和互斥,只能是非公平锁。它可以用于方法或代码块中,确保在同一时间只有一个线程可以访问同步代码。使用 synchronized 可以保证线程安全,但可能会引起性能问题,因为它会导致线程阻塞等待锁的释放

2024-03-19 10:15:23 1002

原创 [Java、Android面试]_08_强软弱虚四种引用及应用场景

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-03-18 13:44:43 1270

原创 [Java、Android面试]_07_继承与多态、重写与重载

继承是一种面向对象编程的机制,允许一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法。多态是面向对象编程的一种特性,允许不同的子类对象以统一的方式进行访问和操作。多态通过方法的重写(覆盖)和方法的动态绑定来实现,使得不同子类对象可以对相同的方法调用表现出不同的行为。从现实中来看,私有成员可以被继承的。能继承不代表可以直接访问父类的属性,也不代表不能间接的访问父类的属性。二方面为了扩展程序,继承的子类中除了父类的成员,还可以有自己的成员。· 静态的成员:在类中是可以被继承的。在接口中不能被继承。

2024-03-17 11:49:05 448 2

原创 [Java、Android面试]_06_内部类、静态内部类和匿名类

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-03-16 15:56:14 448

原创 [Java、Android面试]_05_内存泄漏和内存溢出

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。

2024-03-15 15:28:33 512

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除