自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 人工智能与物理学(软体机器人能量角度)的结合思考

说白了,施加的外部能量,必须要克服伸直态和卷曲态之间的能量壁垒(可以结合上面的图观察,施加的能量必须要大于它的极大值才能跃迁,如果我们只给了一点点能量肯定是不行的)。其实人工智能和双稳态是一样的,人工智能在运算过程中会陷入局部极小值(Local Minimum),但是我们想要的不是局部极小值,而是一个全局最小值,这样才能保证算法的最优化(就像我们高中学数学导数一样,题目要求我们必须要找到一个最小值,但是往往我们容易把极小值当成最小值来算)。这也相当于数学在物理学中的实际应用了,品味知识的乐趣。

2023-08-03 17:46:03 1285

原创 Pycharm使用(配置)技巧

下载Pycharm后,需要将界面配置的人性化一点,下面介绍一下本人觉得方便的配置方法和使用技巧。配置方法:版本汉化: Chinese  打开File,找到Settings  打开Settings中的Pulgins,选择Marketplace,搜索chinese;安装完成后重新打开Pycharm即可。CodeGlance将类似于Sublime中的代码小地图嵌入到编辑器窗格中Rainbow Brackets这个插件可以让代码块之间很清晰的显示出各种颜色的高亮(让代码的颜色更好看)Fast M

2022-04-12 20:08:22 2374

原创 深度学习中常见卷积(普通卷积、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 11824 1

原创 视频理解开山之作——双流卷积网络

  结合部分博客,和李沐老师的课程,总结一下自己理解的双流卷积网络。为什么要有双流网络?  视频理解的一大难题是,不同帧之间的内容是相互关联的,因此我们需要学习到不同帧之间的关联信息。直觉做法是丢入全部图片进入网络,让网络自己学习图片信息和图片间的关联信息。但是这样效果不好,因为网络很难学到这么多信息。因此我们有个主意,能不能用两个网络,一个网络学习图片信息,另一个网络学习时序信息。然后将这两个网络汇总起来判断。双流模型结构  如上图所示,模型分为两部分,spatial stream部分以单帧图片

2022-03-28 16:37:31 4140

原创 经典论文学习笔记——13篇对比学习(Contrastive Learning)

跟着李沐老师的对比学习课程看了一遍,又照着知乎 / CSDN等各位大佬的总结,重新理解了一遍,下面根据自己的学习来总结一下。着重讲一下MoCo,及附带其他12种对比学习的论文的改进之处。

2022-03-28 12:06:32 16669 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 9295 2

原创 经典论文阅读笔记——R-CNN、Fsst R-CNN、Faster R-CNN、Mask R-CNN、YOLO、SSD 等

本博客针对目标检测方面的经典论文,参考现有博客等资料和自己的感想,进行一点总结,方便自己以后看笔记。

2022-03-21 21:48:15 896

原创 经典论文阅读笔记——AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet

  近期读了一些经典论文,本博客主要是基于CNN方面经典的网络做一下总结,基于自己对论文的理解和向他人博客的学习总结。AlexNet  AlexNet是2012年由深度学习之父Hinton的学生Alex提出的,其在图像处理方面优异的表现开创了一个新时代。这篇文章个人感觉偏重于工程性应用,尽管说许多idea放在今天已经不太实用了(现在有更好的方法和模型),但是在十年前能做出这样的成果确实是难能可贵的了。  上图是AlexNet的网络结构,总共有8层,其中卷积层有5层,剩下的是3个全连接层。可以看出它的

2022-03-19 23:01:34 1514

原创 domain adapation 初步理解

domain adapation(领域自适应)是迁移学习的一种,也是目前迁移学习中主要研究方向,旨在解决测试数据不方便采集、标注,耗时耗力等情况,希望通过迁移学习提高识别准确率。Domain adapation 回顾核心问题:训练资料和测试资料的分布不同,采用迁移学习的方法,提高准确率。情况一:有一小部分标注了的测试资料  这种算是domain adapation中很简单的情况了,你可以用这些有标注的资料,来微调你在 Source Domain(训练集)上训练出来的模型,只要稍微跑2-3个epo

2022-01-26 00:34:31 2944 1

原创 Adversarial Attack的粗略总结

  这部分挺有意思,建议了解。不过知乎说这个方向有点坑,不建议深入学习。  要把 Network 真正应用,光是它们正确率高是不够的,它们还需要能够应付来自人类的恶意。比如说我们在网上下载数据集训练时,如果有人恶意在数据集上加入很小的噪点(人眼看不出),导致数据集被误判为另一个种类,这样训练出来的网络就有了隐患(后门)。攻击方法攻击可分为两种类型,一种无目标攻击,一种有目标攻击。无目标攻击:我们现在要做的目标就是,我们要找到一张新的图片,这张新的图片 我们用 x 来表示,当我们把 x 丢到这个

2022-01-25 22:30:44 1207

原创 AutoEncoder的初步理解

结合李宏毅老师机器学习2021——AutoEncoder课程和网上查阅的资料,总结一下对AutoEncoder的理解什么是AutoEncoderAuto Encoder简称为AE,是一种生成式模型。从训练过程需不需要标签数据的角度来看,它属于自监督学习self-superivised(无监督学习的一种)。 Auto Encoder主要用于特征提取、降维、去噪等方面。它的过程是:一张图片encoder之后,得到了一个固定维度的向量表示,然后再经过decoder还原这个图像。如果encoder-deco

2022-01-21 17:17:20 2144

原创 GAN的初略理解

结合李宏毅老师机器学习2021——GAN课程和网上查阅的资料,总结一下对GAN的理解GAN的本质是什么  GAN本质是分布的拟合。 详细说就是,把输入的向量拟合成特定的分布。例如,输入一个随机向量,另外给一堆二次元图像,要求将这个随机向量生成二次元的头像,其实就是将这个向量,拟合为二次元的分布形式,训练完成后生成的图片与真实的二次元图片是分不开的(很相似)。因此它的本质还是一个拟合问题。GAN真的创造新的信息了吗?  我认为是没有的。因为它的本质只是一个学到了原始数据分布的生成模型,所生成的图片

2022-01-20 18:39:14 3372

原创 关于Transformer、BERT的理解

结合李宏毅老师机器学习2021——Transformer课程和网上查阅的资料,总结一下对Transformer的理解Transformer是什么?从宏观角度来看,Transformer是一种基于Self-Attention机制的Seq2seq模型(序列模型),由编码器和解码器组成(自己总结的)。所以在学习Transformer前,需要先弄明白Seq2seq、编码器 / 解码器、Self-Attention(见本人之前的csdn博客)是什么。Seq2seq模型:这是一个序列到序列的模型,输入一个序列

2022-01-17 22:25:51 9034 1

原创 关于Attention、Self-Attention机制的理解

结合李宏毅老师机器学习2021——Self-Attention课程和网上查阅的资料,总结一下对Attention机制的理解Attention机制就是权重分布Attention机制的核心就是,决定整段输入的哪个部分需要更加关注。Attention机制翻译中文就是注意力机制,这就和我们人类看图片、看自然语言是一样的,我们人读一句话是有自己的关注点,重点词汇的。比如我输入一张图,我让你判断这是一只鸟,那么鸟嘴、鸟爪等等patten是很重要的,而Attention机制就是给这些patten一个权重。再比如我

2022-01-17 00:38:13 2093 1

原创 CNN 学习总结 (Pytorch)

  这篇博客总结一下我在学习卷积神经网络(CNN)中遇到的疑惑卷积神经网络出现的原因?  如果模型很大,可能会过拟合,所以我们必须要对模型进行一些限制。因此首先要思考我们如何针对影像问题来做limitation。对一个影响辨识系统而言,最重要的是侦测在这张图片中有没有很重要的patten,例如我们人类看一张鸟类的图片,怎么知道这是一只鸟呢?肯定是先看鸟嘴、鸟爪等部分,这些在影像系统中就是很重要的。  基于此,CNN提出了卷积的概念,CNN会设定一个区域叫做 Receptive Field(感受野)

2022-01-15 22:35:02 818

原创 深度学习中optimization的方法

结合网上的资料与李宏毅老师的课堂教学,总结一下optimization的方法。如果以对训练结果不满意,可以尝试用下述的方法,可以优先考虑方法1-4、方法6方法1:正则化(Regularization)正则化是防止神经网络overfitting的一种方法,由于模型的参数太多,所以就容易过拟合(可以想象一下决策树需要剪枝),其原理是在损失函数中增加一个惩罚项来限制过大的权重。通常有3种方法:L1正则化,L2正则化,dropoutL1正则化,江湖中也人称Lasso,表示各个参数绝对值之和:它之所以可以防止

2022-01-14 00:54:39 922

原创 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 900

原创 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 6892

原创 以机器学习为背景,什么样的机器学习小技巧、代码风格比较好?

   不同人编程时的思路不一样,本人想将学习过程中看到的、个人认为比较好的机器学习小技巧、代码写作风格整理一下,便于以后写程序时去用。机器学习时会需要调整许多hyper-parameters,有些时候可能我们将这些超参数左定义一个,右定义一个,等程序庞大后,就容易忘记有哪些hyper-parameters了,一个有效的办法是将这些超参数统一整理成一个字典。例如:config = { 'n_epochs': 3000, # maximum number of ep

2021-12-29 00:36:52 737

原创 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 3245

原创 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 6260 1

原创 学习python/pytorch过程中遇到的知识点

Pytorchtorch.backends.cudnn.deterministic 和 torch.backends.cudnn.benchmark 这两个参数,用于固定算法,使每次运行结果都一样。将deterministic置为True的话,每次返回的卷积算法将是确定的,即默认算法。如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的。benchmark作用是优化cudnn的运行,cuda可以加快程序运行速度,自动寻找最适合当前配置的高效算法,来

2021-12-26 21:41:25 1999 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 29235 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 14901 4

原创 机器学习/深度学习中常见数据集加载(读取)方法

数据集有不同的类型,例如图像、文本、二进制、文件夹等等格式,用何种方法去加载这些数据,以及加载数据后的数据类型是什么(tensor、array、dataframe等等)?这里总结一下常见种类的数据集读取函数。文本文件:CSV、TSV、Json、TxtCSV文件是逗号分隔值(Comma-Separated Values,CSV),其文件以纯文本形式存储表格数据(数字和文本);TSV 是Tab-separated values的缩写,即制表符分隔值,与...

2021-12-25 15:34:12 16855

原创 Linux系统快捷键

Ctrl+Alt+D 快速显示桌面(只剩下了桌面)win+h 隐藏当前的窗口(当前窗口不显示)

2021-09-18 23:49:19 658

原创 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 137 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 1032

原创 文件夹空格惹的祸

前言文件夹在命名时可以使用空格,但是如果文件夹里面的文件需要运行,所处路径最好不要有空格!起因今天我想装一个Latex软件,科研狗必备神器。在安装texlive时,点击install-tl-windows.bat却一直打不开。最初以为是电脑没有路径,为了解决这个问题,采取了两种办法。第一种是怀疑.bat文件打不开,于是安装网上说的,添加了C盘System32路径,但还是不行。第二种采用cmd命令行打开,安装网上说的,用shitf+右键打开当前文件夹的cmd,在cmd中直接输入“i

2020-11-18 12:06:33 1479

原创 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 317

原创 Anaconda安装的坑

1.Anaconda和Python的关系Anaconda是Python的发行版 Anaconda = Python + (NumPy、SciPy 等常用第三方库 )+ IDE。进,行深度学习运算时需要许多Python库,自己一个个下载很麻烦,用Anaconda可以包括其中很多的库。2.Anaconda的安装Anaconda的安装会有如下步骤其中选项一是添加Anaconda的路径到环境变量中。情况一:如果电脑中未下载python,选项一和选项二全部勾选。情况二:如果电脑中已经有了.

2020-09-01 00:21:32 2382 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 222

原创 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 246

原创 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 1945

原创 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 1440 1

原创 C语言基础——结构体

结构体的作用在需要表示一些复杂信息时,使用单纯的数据类型很不方便。比如:学生信息(学号,姓名,班级,电话,年龄);GPIO信息(GPIO输入输出、电平高低、是否中断等等)把这些信息组合在一起形成一种新的“数据类型”。结构体的声明、结构体类型创建结构体的声明可以分为三大类;①没有标签、②有标签、③有typedef第一类struct { char a; short b; int c;} var1;第二类struct demo_tag { char

2020-05-24 15:47:35 257

原创 C语言基础——函数指针、指针函数

https://blog.csdn.net/luoyayun361/article/details/80428882 参考这位大佬的文章,加上自己的理解指针函数定义指针函数,就是一个返回值是指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:类型标识符* 函数名(参数表)例如:int *fun(int x,int y);它的返回值是一个int类型的指针;指针函数也没什么特别的,和普通函数对比不过就是其返回了一个指针(即地址值)而已。指针函数的写法..

2020-05-24 01:21:32 289

原创 裸机 程序 编写诀窍

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 462

原创 中断、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 860

原创 裸机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 442

空空如也

空空如也

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

TA关注的人

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