- 博客(45)
- 收藏
- 关注
原创 人工智能与物理学(软体机器人能量角度)的结合思考
说白了,施加的外部能量,必须要克服伸直态和卷曲态之间的能量壁垒(可以结合上面的图观察,施加的能量必须要大于它的极大值才能跃迁,如果我们只给了一点点能量肯定是不行的)。其实人工智能和双稳态是一样的,人工智能在运算过程中会陷入局部极小值(Local Minimum),但是我们想要的不是局部极小值,而是一个全局最小值,这样才能保证算法的最优化(就像我们高中学数学导数一样,题目要求我们必须要找到一个最小值,但是往往我们容易把极小值当成最小值来算)。这也相当于数学在物理学中的实际应用了,品味知识的乐趣。
2023-08-03 17:46:03 1380
原创 Pycharm使用(配置)技巧
下载Pycharm后,需要将界面配置的人性化一点,下面介绍一下本人觉得方便的配置方法和使用技巧。配置方法:版本汉化: Chinese 打开File,找到Settings 打开Settings中的Pulgins,选择Marketplace,搜索chinese;安装完成后重新打开Pycharm即可。CodeGlance将类似于Sublime中的代码小地图嵌入到编辑器窗格中Rainbow Brackets这个插件可以让代码块之间很清晰的显示出各种颜色的高亮(让代码的颜色更好看)Fast M
2022-04-12 20:08:22 2457
原创 深度学习中常见卷积(普通卷积、1×1卷积、转置卷积、可分离卷积、膨胀(空洞)卷积、3D卷积)
总是在网络上看到各种名词的卷积,但是有搞不懂是什么含义,于是结合网上查阅的资料,总结一下。目前比较常用的卷积主要有常规的卷积、1×1卷积、转置卷积、可分离卷积、膨胀卷积、3D卷积。 以下是一些可参考的链接:https://cloud.tencent.com/developer/article/1413083https://zhuanlan.zhihu.com/p/267249291https://www.cnblogs.com/gshang/p/13548561.htmlhttps://bl
2022-04-10 23:47:57 13402 2
原创 视频理解开山之作——双流卷积网络
结合部分博客,和李沐老师的课程,总结一下自己理解的双流卷积网络。为什么要有双流网络? 视频理解的一大难题是,不同帧之间的内容是相互关联的,因此我们需要学习到不同帧之间的关联信息。直觉做法是丢入全部图片进入网络,让网络自己学习图片信息和图片间的关联信息。但是这样效果不好,因为网络很难学到这么多信息。因此我们有个主意,能不能用两个网络,一个网络学习图片信息,另一个网络学习时序信息。然后将这两个网络汇总起来判断。双流模型结构 如上图所示,模型分为两部分,spatial stream部分以单帧图片
2022-03-28 16:37:31 4363
原创 经典论文学习笔记——13篇对比学习(Contrastive Learning)
跟着李沐老师的对比学习课程看了一遍,又照着知乎 / CSDN等各位大佬的总结,重新理解了一遍,下面根据自己的学习来总结一下。着重讲一下MoCo,及附带其他12种对比学习的论文的改进之处。
2022-03-28 12:06:32 18506 1
原创 经典论文阅读笔记——VIT、Swin Transformer、MAE、CILP
本博客针对视觉Transformer方面的工作,对当前热点研究做一下总结。主要是VIT、Swin Transformer、MAE、CILP 这四篇。VIT(用于图像分类) ViT(vision transformer)是Google在2020年提出的直接将transformer应用在图像分类的模型,后面很多的工作都是基于ViT进行改进的。 ViT的思路很简单:直接把图像分成固定大小的patchs,然后通过线性变换得到patch embedding,这就类比NLP的words和word embe
2022-03-22 21:09:33 10860 2
原创 经典论文阅读笔记——R-CNN、Fsst R-CNN、Faster R-CNN、Mask R-CNN、YOLO、SSD 等
本博客针对目标检测方面的经典论文,参考现有博客等资料和自己的感想,进行一点总结,方便自己以后看笔记。
2022-03-21 21:48:15 1027
原创 经典论文阅读笔记——AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet
近期读了一些经典论文,本博客主要是基于CNN方面经典的网络做一下总结,基于自己对论文的理解和向他人博客的学习总结。AlexNet AlexNet是2012年由深度学习之父Hinton的学生Alex提出的,其在图像处理方面优异的表现开创了一个新时代。这篇文章个人感觉偏重于工程性应用,尽管说许多idea放在今天已经不太实用了(现在有更好的方法和模型),但是在十年前能做出这样的成果确实是难能可贵的了。 上图是AlexNet的网络结构,总共有8层,其中卷积层有5层,剩下的是3个全连接层。可以看出它的
2022-03-19 23:01:34 1654
原创 domain adapation 初步理解
domain adapation(领域自适应)是迁移学习的一种,也是目前迁移学习中主要研究方向,旨在解决测试数据不方便采集、标注,耗时耗力等情况,希望通过迁移学习提高识别准确率。Domain adapation 回顾核心问题:训练资料和测试资料的分布不同,采用迁移学习的方法,提高准确率。情况一:有一小部分标注了的测试资料 这种算是domain adapation中很简单的情况了,你可以用这些有标注的资料,来微调你在 Source Domain(训练集)上训练出来的模型,只要稍微跑2-3个epo
2022-01-26 00:34:31 3078 1
原创 Adversarial Attack的粗略总结
这部分挺有意思,建议了解。不过知乎说这个方向有点坑,不建议深入学习。 要把 Network 真正应用,光是它们正确率高是不够的,它们还需要能够应付来自人类的恶意。比如说我们在网上下载数据集训练时,如果有人恶意在数据集上加入很小的噪点(人眼看不出),导致数据集被误判为另一个种类,这样训练出来的网络就有了隐患(后门)。攻击方法攻击可分为两种类型,一种无目标攻击,一种有目标攻击。无目标攻击:我们现在要做的目标就是,我们要找到一张新的图片,这张新的图片 我们用 x 来表示,当我们把 x 丢到这个
2022-01-25 22:30:44 1302
原创 AutoEncoder的初步理解
结合李宏毅老师机器学习2021——AutoEncoder课程和网上查阅的资料,总结一下对AutoEncoder的理解什么是AutoEncoderAuto Encoder简称为AE,是一种生成式模型。从训练过程需不需要标签数据的角度来看,它属于自监督学习self-superivised(无监督学习的一种)。 Auto Encoder主要用于特征提取、降维、去噪等方面。它的过程是:一张图片encoder之后,得到了一个固定维度的向量表示,然后再经过decoder还原这个图像。如果encoder-deco
2022-01-21 17:17:20 2267
原创 GAN的初略理解
结合李宏毅老师机器学习2021——GAN课程和网上查阅的资料,总结一下对GAN的理解GAN的本质是什么 GAN本质是分布的拟合。 详细说就是,把输入的向量拟合成特定的分布。例如,输入一个随机向量,另外给一堆二次元图像,要求将这个随机向量生成二次元的头像,其实就是将这个向量,拟合为二次元的分布形式,训练完成后生成的图片与真实的二次元图片是分不开的(很相似)。因此它的本质还是一个拟合问题。GAN真的创造新的信息了吗? 我认为是没有的。因为它的本质只是一个学到了原始数据分布的生成模型,所生成的图片
2022-01-20 18:39:14 3451
原创 关于Transformer、BERT的理解
结合李宏毅老师机器学习2021——Transformer课程和网上查阅的资料,总结一下对Transformer的理解Transformer是什么?从宏观角度来看,Transformer是一种基于Self-Attention机制的Seq2seq模型(序列模型),由编码器和解码器组成(自己总结的)。所以在学习Transformer前,需要先弄明白Seq2seq、编码器 / 解码器、Self-Attention(见本人之前的csdn博客)是什么。Seq2seq模型:这是一个序列到序列的模型,输入一个序列
2022-01-17 22:25:51 9372 1
原创 关于Attention、Self-Attention机制的理解
结合李宏毅老师机器学习2021——Self-Attention课程和网上查阅的资料,总结一下对Attention机制的理解Attention机制就是权重分布Attention机制的核心就是,决定整段输入的哪个部分需要更加关注。Attention机制翻译中文就是注意力机制,这就和我们人类看图片、看自然语言是一样的,我们人读一句话是有自己的关注点,重点词汇的。比如我输入一张图,我让你判断这是一只鸟,那么鸟嘴、鸟爪等等patten是很重要的,而Attention机制就是给这些patten一个权重。再比如我
2022-01-17 00:38:13 2653 1
原创 CNN 学习总结 (Pytorch)
这篇博客总结一下我在学习卷积神经网络(CNN)中遇到的疑惑卷积神经网络出现的原因? 如果模型很大,可能会过拟合,所以我们必须要对模型进行一些限制。因此首先要思考我们如何针对影像问题来做limitation。对一个影响辨识系统而言,最重要的是侦测在这张图片中有没有很重要的patten,例如我们人类看一张鸟类的图片,怎么知道这是一只鸟呢?肯定是先看鸟嘴、鸟爪等部分,这些在影像系统中就是很重要的。 基于此,CNN提出了卷积的概念,CNN会设定一个区域叫做 Receptive Field(感受野)
2022-01-15 22:35:02 869
原创 深度学习中optimization的方法
结合网上的资料与李宏毅老师的课堂教学,总结一下optimization的方法。如果以对训练结果不满意,可以尝试用下述的方法,可以优先考虑方法1-4、方法6方法1:正则化(Regularization)正则化是防止神经网络overfitting的一种方法,由于模型的参数太多,所以就容易过拟合(可以想象一下决策树需要剪枝),其原理是在损失函数中增加一个惩罚项来限制过大的权重。通常有3种方法:L1正则化,L2正则化,dropoutL1正则化,江湖中也人称Lasso,表示各个参数绝对值之和:它之所以可以防止
2022-01-14 00:54:39 1160
原创 apt-get和pip的区别
在下载swig时,我先是采用了pip install swig 结果报错了,提示我没法下载,然后我去官网看了看,linux系统下swig安装是这么写的:Many Unix-like operating systems also include packages of SWIG (e.g. Debian GNU/Linux, FreeBSD, Cygwin). Consult your package management application to see if your operatin...
2022-01-09 22:08:26 943
原创 Python/Pytorch 显示图片
python如何显示图片是一个谜题,今天就让我们来揭秘它!首先,python中一般采用plt.imshow()函数读取,今天我们主讲这个。一、plt.imshow()函数参数:通常直接采用 plt.imshow(img) 即可:img图像数据,支持的数组形状是:(M,N) : 带有标量数据的图像。数据可视化使用色彩图。(M,N,3) :具有RGB值的图像(float或uint8)。(M,N,4) :具有RGBA值的图像(float或uint8),即包括透明度。前两个维度(M,N)定义
2022-01-05 21:08:22 7214
原创 以机器学习为背景,什么样的机器学习小技巧、代码风格比较好?
不同人编程时的思路不一样,本人想将学习过程中看到的、个人认为比较好的机器学习小技巧、代码写作风格整理一下,便于以后写程序时去用。机器学习时会需要调整许多hyper-parameters,有些时候可能我们将这些超参数左定义一个,右定义一个,等程序庞大后,就容易忘记有哪些hyper-parameters了,一个有效的办法是将这些超参数统一整理成一个字典。例如:config = { 'n_epochs': 3000, # maximum number of ep
2021-12-29 00:36:52 758
原创 matplotlib常见绘图函数
可参考这篇文章xlabel、ylabel: 设置横轴、纵轴标签及大小 例如plt.xlabel("csdn test", fontsize=20)xlim、ylim: 设置x、y坐标轴的起始点(从哪到哪) 例如plt.xlim(0,50) plt.ylim(0,60)xticks、yticks: 设置坐标轴刻度的字体大小 例如plt.xticks(labelsize=20)title: 设置图片的标题 例如 plt.title(“csdn test”)plt.figure(): 制一个
2021-12-28 22:31:49 3395
原创 Dataframe的用法
使用Panda库读取文件时,经常会返回一个Dataframe结构的数据,本文主要记录一下如果操作该数据结构。读取Dataframefilename = ‘XXX’data = pd.read_csv(filename, sep=’,’)data = np.array(data)这个函数(read_csv)有几个参数比较重要,一个是encoding,可以选择utf-8,避免中文乱码;另一个是index_col,用于行索引的列标号或者列名;再是header,用于列名的行号,pd.read_csv函数
2021-12-28 18:00:55 6417 1
原创 学习python/pytorch过程中遇到的知识点
Pytorchtorch.backends.cudnn.deterministic 和 torch.backends.cudnn.benchmark 这两个参数,用于固定算法,使每次运行结果都一样。将deterministic置为True的话,每次返回的卷积算法将是确定的,即默认算法。如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的。benchmark作用是优化cudnn的运行,cuda可以加快程序运行速度,自动寻找最适合当前配置的高效算法,来
2021-12-26 21:41:25 2201 1
原创 python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改
python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改plt.subplotplt.subplots坐标轴修改 偶然发现python(matplotlib)中绘制子图有两种方法,一种是plt.subplot,另一种是plt.subplots,这篇博客说一下这两种方法的区别,用法,以及常用的一些函数。 plt.figure的作用是定义一个大的图纸,可以设置图纸的大小、分辨率等,例如fig = plt.figure(figsize=(16,16),dpi=300) #
2021-12-25 23:35:37 32736 3
原创 如何一眼看出Python中数组是几维的?
博主在面对Python中矩阵维度问题时经常晕头转向,不知道怎么一眼看出是几维矩阵,往往得通过笨办法:shape函数来取出来看,但是假设shape函数返回维度(6,2,3),也不知道这些数组分别代表了什么意思,今天特意写一下博客记录一下。如何看出是几维矩阵?首先给出如下函数:a = np.random.randint(10,size=(3,4))print(a)打印出来的结果是:很明显,我给出的是两维的,3行4列的一个矩阵。如何...
2021-12-25 20:46:24 16179 4
原创 机器学习/深度学习中常见数据集加载(读取)方法
数据集有不同的类型,例如图像、文本、二进制、文件夹等等格式,用何种方法去加载这些数据,以及加载数据后的数据类型是什么(tensor、array、dataframe等等)?这里总结一下常见种类的数据集读取函数。文本文件:CSV、TSV、Json、TxtCSV文件是逗号分隔值(Comma-Separated Values,CSV),其文件以纯文本形式存储表格数据(数字和文本);TSV 是Tab-separated values的缩写,即制表符分隔值,与...
2021-12-25 15:34:12 19983
原创 pytorch 线性回归 笔记
import torchx_data = torch.Tensor([[1.0],[2.0],[3.0]])y_data = torch.Tensor([[2.0],[4.0],[6.0]])class LinearModel(torch.nn.Module): def __init__(self):#构造函数 super(LinearModel,self).__init__() self.linear = torch.nn.Linear(1,1)#构造.
2021-06-18 23:06:57 158 1
原创 linux / windows 系统搭建pytorch环境的一些细节:
针对linux系统安装深度学习环境的一些细节:1、linux系统中切换环境要用 source activate env_name 需要加上source2、linux系统想要打开Anaconda 需要在命令行输入anaconda-navigator3、anaconda有时候会崩,比如conda下载东西时提示各种failed,如果这些failed解决不了,可以考虑将所有终端关掉,然后重新打开终端再试试,可能就能恢复,因为有时候你进行的操作没有更新。4、如果报错后实在恢复不了anaconda,可以
2021-06-16 15:20:56 1118
原创 文件夹空格惹的祸
前言文件夹在命名时可以使用空格,但是如果文件夹里面的文件需要运行,所处路径最好不要有空格!起因今天我想装一个Latex软件,科研狗必备神器。在安装texlive时,点击install-tl-windows.bat却一直打不开。最初以为是电脑没有路径,为了解决这个问题,采取了两种办法。第一种是怀疑.bat文件打不开,于是安装网上说的,添加了C盘System32路径,但还是不行。第二种采用cmd命令行打开,安装网上说的,用shitf+右键打开当前文件夹的cmd,在cmd中直接输入“i
2020-11-18 12:06:33 1839
原创 Pycharm 使用技巧
实时看函数解释:Ctrl+Q(或者鼠标放在函数上停留两秒)多行注释:ctrl+/格式化代码:Python编码规范。例如:缩进,注释,行限字数,每行之间的空行,空格的使用等。快捷键:Ctrl+Alt+LPEP8:Python更专业的格式化代码,比上一个快捷键更规范操作步骤跳到函数内部(函数定义的地方):ctrl+鼠标运行当前文件:`ctrl+shift+f10`搜索变量名、文件名:双击Shift在所有文件中查找:ctrl+shift+F在当前文件中查找:Ctrl+F查找下.
2020-09-03 22:42:02 414
原创 Anaconda安装的坑
1.Anaconda和Python的关系Anaconda是Python的发行版 Anaconda = Python + (NumPy、SciPy 等常用第三方库 )+ IDE。进,行深度学习运算时需要许多Python库,自己一个个下载很麻烦,用Anaconda可以包括其中很多的库。2.Anaconda的安装Anaconda的安装会有如下步骤其中选项一是添加Anaconda的路径到环境变量中。情况一:如果电脑中未下载python,选项一和选项二全部勾选。情况二:如果电脑中已经有了.
2020-09-01 00:21:32 2637 2
原创 Linux移植
1.添加开发板默认配置文件linux的defconfig文件,在arch/arm/configs目录里;和uboot不同,uboot在configs目录里首先复制一份配置文件,将arch/arm/configs目录里NXP公司的配置文件复制为imx_alientek_emmc_defconfig以后就可以使用make imx_alientek_emmc_defconfig来配置文件了2.添加开发板对应的设备树文件linux的设备树文件在arch/arm/boot/dts里面,复制一份 i
2020-06-10 19:50:34 249
原创 uboot移植
1.添加开发板默认配置文件在configs文件夹下创建自己的defconfig文件。复制半导体厂商的配置文件,例如NXP公司EVK开发板的配置文件是mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_alientek_emmc_defconfig。然后将文件 mx6ull_alientek_emmc_defconfig 中的内容改成下面的:mx6ull_alientek_emmc_defconfig 基本和 mx6ull_14x14_evk_emmc_de
2020-06-10 01:21:18 305
原创 uboot使用方法
uboot初次编译:首先在 Ubuntu 中安装 ncurses 库, 否则编译会报错sudo apt-get install libncurses5-dev初次编译先清理工程、配置uboot、编译uboot,可以写一个shell脚本#!/bin/bashmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distcleanmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ...
2020-06-09 21:40:23 2080
原创 U-boot LCD驱动程序分析 IMX6ULL
在学习uboot时,对drivers文件夹里的这么多文件很困惑,比如/drivers/video文件夹,里面有特别多关于LCD的子文件驱动,那么uboot启动时是具体调用哪一个呢?研究了两个小时后搞懂了,下面详细记录一下我分析时是先从后往前分析。首先在board/freescale文件夹里找到自己的板子,例如NXP官方是mx6ullevk(正点原子的板子是mx6ull_alientek_emmc)找到板子文件夹里的.c文件,我的是mx6ull_alientek_emmc.c 在这个文件...
2020-05-30 00:10:45 1576 1
原创 C语言基础——结构体
结构体的作用在需要表示一些复杂信息时,使用单纯的数据类型很不方便。比如:学生信息(学号,姓名,班级,电话,年龄);GPIO信息(GPIO输入输出、电平高低、是否中断等等)把这些信息组合在一起形成一种新的“数据类型”。结构体的声明、结构体类型创建结构体的声明可以分为三大类;①没有标签、②有标签、③有typedef第一类struct { char a; short b; int c;} var1;第二类struct demo_tag { char
2020-05-24 15:47:35 286
原创 C语言基础——函数指针、指针函数
https://blog.csdn.net/luoyayun361/article/details/80428882 参考这位大佬的文章,加上自己的理解指针函数定义指针函数,就是一个返回值是指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:类型标识符* 函数名(参数表)例如:int *fun(int x,int y);它的返回值是一个int类型的指针;指针函数也没什么特别的,和普通函数对比不过就是其返回了一个指针(即地址值)而已。指针函数的写法..
2020-05-24 01:21:32 315
原创 裸机 程序 编写诀窍
1.如何向GPIO、UART等寄存器内写数据?(只需要定义少量地址情况下)向寄存器写数据,我们要知道寄存器的地址,知道了地址后,又如何将数据写入地址中/* * 定义GPIO1相关寄存器地址 */#define GPIO1_DR *((volatile unsigned int *)0X0209C000)#define GPIO1_GDIR *((volatile unsigned int *)0X0209C004)#define GPIO1_PSR *((volat
2020-05-23 23:59:36 516
原创 中断、DDR、LCD基础知识
DDRsdram和sram区别在于,sdram的数据需要不断地刷新,以保持数据的不丢失目前sdram技术已经发展到了第四代分别为: SDRAM、 DDR SDRAM、 DDR2 SDRAM、 DDR3 SDRAM、 DDR4 SDRAM关于sdram的内存大小计算,与地址线、数据线、bank线有关。比如 W9825G6KH 的 A0~A8 是列地址,一共 9 位列地址, 0~A12 是行地址,一共 13位,因此可寻址范围为: 2^9*2^13=4194304B=4MB, W9825G6KH ..
2020-05-23 01:30:50 979
原创 裸机Makefile、链接文件
裸机MakefileCROSS_COMPILE ?= arm-linux-gnueabihf-TARGET ?= printfCC := $(CROSS_COMPILE)gccLD := $(CROSS_COMPILE)ldOBJCOPY := $(CROSS_COMPILE)objcopyOBJDUMP := $(CROSS_COMPILE)objdumpLIBPATH := -lgcc -L /usr/local/arm/gcc-linaro-4.
2020-05-22 23:53:54 475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人