- 博客(80)
- 收藏
- 关注
原创 Gini Coefficient and Lorenz Curve
Gini 系数和洛伦兹曲线 (Lorenz Curve) 是用于衡量推荐列表中物品流行度分布不均衡程度的两个重要指标. Gini 系数越高, 推荐的物品流行度越集中于少数流行物品. 洛伦兹曲线则通过绘制推荐物品流行度的累计分布曲线来分析推荐物品的集中程度.
2024-06-13 16:31:12 505
原创 推荐系统中常用评价指标及其实现
本文参考大量文章整理了推荐系统中推荐系统中常用评价指标的定义及实现, 包含 Recall, Precision, HR, MRR, MAP, NDCG 等指标.
2024-03-20 21:04:45 1438
原创 《论文写作》课程总结
本文是我对《论文写作》课程的一个学习总结. 在上这门课程前我已经开始了论文写作, 我觉得这门课对我的最大作用就是将我以前从视频、博客、写作和经验贴等地方学习到的经验串起来了. 接下来, 我会根据我的收获对这门课做一个总结.
2023-10-30 16:01:14 976 1
原创 如何读文献
吃饭、睡觉、读文献, 都很重要读文献的目的很重要, 要带着目的读文献即使你以后不做科研, 不搞学术, 读文献也可以培养你迅速准确了解一个领域的进展、知识和信息的能力, 这个能力是无价的.
2023-04-24 16:46:38 538
原创 PyTorch to(device) 使用(PyTorch 指定设备, 查看设备)
在 PyTorch 的Module和Tensor使用to()有所区别,Module对象只需要调用to(device)不用接受返回值,Tensor对象需要接收返回值.
2023-04-18 17:18:00 1784
原创 使用 yapf 格式化 python 代码
在 Visual Studio Code 的 setting 中设置 python.formatting.provider 为 yapf。(macOS) 自动格式化代码。在环境中安装 yapf 库。
2023-03-06 21:41:55 366
原创 PyTorch 张量和模型的保存与加载
PyTorch 中 Tensor 和模型可以保存为.pt.pth.pkl格式的文件,三者在格式上没有区别。
2023-02-16 17:24:43 2276 1
原创 Python 命名规范
函数名, 变量名和文件名应该是描述性的, 尽量避免缩写, 特别要避免使用非项目人员不清楚难以理解的缩写, 不要通过删除单词中的字母来进行缩写.所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的。用单下划线开头表示模块变量或函数是 protected (使用from module import *时不会包含).用双下划线__开头的实例变量或方法表示类内私有.
2023-02-14 15:47:28 294
原创 PyTorch 中 tensor.view() 和 tensor.reshape() 的区别
当满足 tensor 连续条件的时候 tensor.reshape() 和 tensor.view() 效果相同;当不满足时, tensor.reshape() 效果与 tensor.clone().view() 相同.只是对原始 tensor 做一个视图的改变, 新的 tensor 与原始 tensor 共享存储空间. 当新的 tensor 改变的时候, 原始 tensor 也会改变.官方推荐使用 tensor.clone().view() 来代替 tensor.reshape().
2023-02-06 19:40:43 848
原创 Python 数据可视化 笔记
文章目录Python 数据可视化Numpy 基础基础操作高级操作Pandas 基础DataFrameSeries索引Pandas 高级操作Matplotlib 基础Matplotlib 介绍函数式编程和面向对象编程Matplotlib 中的格式化字符串更新中…Python 数据可视化import numpy as npimport pandas as pdimport matplotlib.pyplot as pltNumpy 基础ndarray_a = np.array([1, 2, 3,
2022-05-25 11:53:12 381
原创 【论文精读系列】Real-ESRGAN
【论文精读系列】Real-ESRGAN论文标题:Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data论文地址:https://arxiv.org/abs/2107.10833v2作者代码:https://github.com/xinntao/Real-ESRGAN原文概述在单张图片超分辨率(Single Image Super-resolution)的问题中,许多方法都采用传统的 Bicu
2022-02-24 12:11:11 4664 1
原创 研究新意度(Novelty)的五大误解
视频地址:你(被)吐槽过论文不够 novel 吗?【论文精读】原文地址:Novelty in Science —— A guide for reviewers
2022-02-15 17:38:19 304
原创 Gitee 基础使用教程
Gitee 基础使用教程本篇博客仅介绍如何使用个人远程仓库。Step 1 在 Gitee 创建远程仓库。1)新建仓库2)设置仓库基本信息3)初始化仓库4)创建远程仓库成功Step 2 创建本地仓库1)复制远程仓库地址2)在本地文件夹内空白位置右键单击,然后选择 git bash here 打开命令行窗口3)运行克隆指令,在本地创建文件夹git clone https://gitee.com/A-Egoist/demo.gitStep 3 上传代码1)在资源管理器可以
2022-01-01 12:40:51 1234
原创 ARM 汇编(sum, gcd, lcm, sort, max, min, strcpy)
1 一位数组按某种规律求和1.1 一维数组求和 AREA ARRAYSUM, CODE, READONLY ENTRYSTART LDR R0, =src MOV R1, #0 MOV R3, #0 LOOP LDR R2, [R0] ADD R0, R0, #4 ADD R3, R3, #1 ADD R1, R1, R2 CMP R3, #len BNE LOOPSTOP MOV R5, R1 MOV R0, #24 LDR R1, =0x0300000 SWI
2021-12-30 09:14:14 1217
原创 CUDA 内存模型
CUDA 内存模型CUDA 可编程内存类型:寄存器(Registers)共享内存(Shared Memory)本地内存(Local Memory)常量内存(Constant Memory)纹理内存(Texture Memory)全局内存(Global Memory)上述各种内存都有自己的作用域,生命周期和缓存行为。一个核函数中的每个线程都有自己私有的本地内存。一个线程块有自己的共享内存,对同一线程块内所有线程可见,其内容持续线程块的整个生命周期。所有线程都可以访问全局内存。所有线程都能访
2021-12-28 16:39:11 966
原创 CUDA 执行模型
CUDA 执行模型CUDA 执行模型能够提供有助于在指令吞吐量和内存访问方面编写高效代码的见解。1 GPU 架构概述GPU 架构是围绕一个流式多处理器(SM)的拓展阵列搭建的,通过复制这种结构来实现 GPU 的硬件并行。如图所示,其中包含了 Fermi SM 关键组件:CUDA CoresShared Memory / L1 CacheRegister File加载/存储单元(Load / Store Units)特殊功能单元(Special Function Units)线程束调度器
2021-12-28 16:37:00 433
原创 CUDA 编程模型
CUDA 编程模型这部分将重点介绍 CUDA 编程模型的两个主要的抽象概念:内存层次结构和线程层次结构,它们能够控制大规模并行 GPU。1 内存管理一个异构环境,通常有多个 CPU 多个 GPU,每个 CPU 和 GPU 的内存都由一条 PCI-Express 总线分隔开。所以要区分以下内容:主机:CPU及其内存(主机内存)设备:GPU及其内存(设备内存)为了规范化,在之后的代码中,主机内存中的变量名以 h_ 为前缀,设备内存中的变量名以 d_ 为前缀一个典型的 CUDA 程序包括由并
2021-12-28 16:33:50 584
原创 基于 CUDA 的异构并行计算
基于 CUDA 的异构并行计算CUDA (Compute Unified Device Architecture,统一计算设备架构) 是 NVIDIA 提出的并行计算架构,结合了 CPU 和 GPU 的优点,主要用来处理密集型及并行计算。CPU 和 GPU 是两个独立的处理器,通过单个计算节点中的 PCI-Express 总线相连,GPU 用来提高计算密集型应用程序中并行程序段的执行速度,CPU 则负责管理设备端的资源。1 并行计算在 [1.4](#1.4 如何编写并行程序) 中介绍了应用程序的两种并
2021-12-28 16:21:24 315
原创 并行处理及分布式系统
并行计算基础本篇博客记录了我在学习并行计算过程中的收获,包含以下部分的内容:为什么要并行计算并行硬件和并行软件MPI编程Pthreads编程OpenMP编程并行程序开发CUDA编程基础。1 为什么要并行计算1.1 为什么需要不断提升性能随着计算能力的增加,我们所面临的计算问题和需求也在增加随着技术的进步,我们从未想过的技术得到了解决,比如:人类基因解码、更准确的医疗成像、更快速准确的网络搜索…更复杂的问题仍有待解决,比如:气候模拟、蛋白质折叠、药物发现、能源研究、数据
2021-12-24 17:45:36 5193 3
原创 CUDA 编程——Matrix Multiplication
计算矩阵 A\mathbf{A}A 乘矩阵 B\mathbf{B}B 的结果,其中A∈R1000×800\mathbf{A}\in\mathbb{R}^{1000\times800}A∈R1000×800,B∈R800×1200\mathbf{B}\in\mathbb{R}^{800\times1200}B∈R800×1200。在下面的代码中:verify_result 函数用于验证使用 GPU 计算得到的结果是否与 CPU 计算得到的结果相同。MatrixMulCPU函数表示在 CPU 上计算。
2021-12-05 09:37:28 902
原创 注意力机制
注意力机制更好的阅读体验1 Attention1.1 什么是 Attention灵长类动物的视觉系统中的视神经接受了大量的感官输入。在检查视觉场景时,我们的视觉神经系统大约每秒收到 10810^8108 位的信息,这远远超过了大脑能够完全处理的水平。但是,并非所有刺激的影响都是相等的。意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。在心理学框架中,人类根据随意(有意识)线索和不随意(无意识)线索选择注意点。下面两张图展现了在随意线索和不随意线索的影响改下
2021-11-27 10:12:05 2082
原创 CUDA 编程入门
CUDA编程入门更好的阅读体验CUDA 概述CUDA 是 NVIDIA 推出的用于其发布的 GPU 的并行计算架构,使用 CUDA 可以利用 GPU 的并行计算引擎更加高效的完成复杂的计算难题。在目前主流的使用冯·诺依曼体系结构的计算机中,GPU 属于一个外置的设备,因此即便在利用 GPU 进行并行计算的时候也无法脱离 CPU,需要与 CPU 协同工作。因此当我们在说 GPU 并行计算时,其实指的是基于 CPU+GPU 的异构计算架构。在异构计算架构中,CPU 和 GPU 通过 PCI-E 总线连接
2021-11-20 19:56:31 5450
原创 CUDA 编程——Vector Addition
1 准备工作1)安装 xshell2)远程连接服务器,打开 jupyter 服务3)网页进入对应的 jupyter 服务2 Launcher 的介绍3 查看 GPU 设备信息1)点击 Text File2)在其中输入对应的代码3)重命名文件,后缀名改为 .cu4)在 Terminal 中输入以下指令编译代码nvcc filename.cu -o filename.out5)在 Terminal 中输入一下指令运行可执行文件./filename.out4 向量加法的实现1)点
2021-11-18 20:34:37 1105
原创 CUDA 查看 GPU 设备信息
CUDA 查看 GPU 设备信息#include <stdio.h>#include <time.h>#include <math.h>#include "cuda_runtime.h"#include "device_launch_parameters.h"int main(){ cudaDeviceProp deviceProp; cudaGetDeviceProperties(&deviceProp, 0); pri
2021-11-18 20:20:17 2317
原创 Attention
1 Attention1.1 Attention 思想在心理学框架中,人类根据随意(有意识)线索和不随意(无意识)线索选择注意点。卷积、全连接层、池化层都只考虑不随意线索注意力机制则显示的考虑随意线索随意线索被称为查询(query)每个输入是一个值(value)和不随意线索(key)的对通过注意力池化层来有偏向性的选择某些输入1.2 非参注意力池化层给定数据 (xi,xj),i=1,…,n(x_i,x_j),i=1,\dots,n(xi,xj),i=1,…,n,要想根据 query
2021-11-01 18:52:58 194
原创 数学基础_3——概率论
本篇博客不包含深度学习中所有的数学知识,只是我在学习过程中,对不会或者不熟悉的数学知识的记录,因此部分内容和推导我会省略掉。条件概率P(A∣B)=P(A,B)P(B)P(A|B)=\frac{P(A,B)}{P(B)}P(A∣B)=P(B)P(A,B)乘法公式P(A,B)=P(B)⋅P(A∣B)s.t. P(B) >0P(A,B)=P(A)⋅P(B∣A)s.t. P(A) >0P(A,B)=P(B)\cdot P(A|B)\\s.t.\ P
2021-10-18 20:41:45 369
原创 数学基础_4——信息论
自信息任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。如昨天下雨这个已知事件,因为已经发生,既定事实,那么它的信息量就为0。如明天会下雨这个事件,因为未有发生,那么这个事件的信息量就大。从上面例子可以看出信息量是一个与事件发生概率相关的概念,而且可以得出,事件发生的概率越小,其信息量越大。定义事件 X=xX=xX=x 的自信息为I(x)=−log2P(x)I\left(x\right)=-\log_2 P\left(x\right)I(x)=
2021-10-17 22:32:29 309
原创 超分辨率的资料摘录
本篇博客主要记录了这几天我在查找资料时的收获概述,大概也指明了博客中提及到的文章的一部分主要内容,方便大家做一个筛选。SRGAN With WGAN,让超分辨率算法训练更稳定SRGAN 是基于 GAN 方法进行训练的,有一个生成器和一个判别器,判别器的主体使用 VGG19,生成器是一连串的 Residual block 连接,同时在模型后部也加入了 subpixel 模块,借鉴了 Shi et al 的 Subpixel Network 的思想,让图片在最后面的网络层才增加分辨率,提升分辨率的同时减少计
2021-10-10 16:00:54 392
原创 二维码超分效果评价指标
1 PSNR(Peak Signal-to-Noise Ratio)——峰值信噪比PSNR 是信号的最大功率和信号噪声功率之比,来测量已经被压缩的重构图像的质量,通常以分贝(dB)来表示。PSNR 指标越高,说明图像质量越好。PSNR=10⋅log10(MAXI2MSE)=20⋅log10(MAXIMSE)PSNR=10\cdot{\log_{10}{(\frac{MAX_I^2}{MSE})}}=20\cdot{\log_{10}{(\frac{MAX_I}{\sqrt{MSE}})}}PSN
2021-10-08 12:12:50 497
原创 二维码分辨率提升
文章目录1 概述2 快速使用2.1 配置环境2.2 预处理数据2.3 QR Code实现超分辨率2.4 训练模型2.5 处理整个文件夹1 概述目前该项目还处于开发阶段,接下来的内容会展示一下目前的实现效果。还有很多地方没有优化,会在后续的过程中逐步优化模型。2 快速使用2.1 配置环境在当前目录下打开命令行窗口,运行以下代码pip install -r environment.yml2.2 预处理数据在当前目录下打开命令行窗口,运行以下代码python utils.py处理原始数据
2021-10-02 18:59:31 1388 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人