- 博客(23)
- 收藏
- 关注
转载 PyCharm出现TabError: inconsistent use of tabs and spaces in indentation最简单实用的解决办法
加粗样式直接pycharm-Code-ReFORMAT Code格式化代码!,参考博主:https://blog.csdn.net/u014116780/article/details/84451569?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163429904716780264079419%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&reque
2021-10-15 20:29:56
229
原创 机械革命3060 win10 离线安装&卸载cuda11.1、cudnn、anaconda pytorch环境全纪录
电脑型号:机械革命X8PRO 3060系统:win10 ubuntu前言:之前的系统是win10和u的双系统,u不怎么用空占内存,还有就是因为在win10中yolo模型出现bud导致系统硬盘全慢,所以就更下定决心重做系统,双系统恢复成win10废了好大的功夫,后在实验室的同学帮助下安装的win10专业版。本文想复现的是yolov5 pytorch环境,但是走了四五天的弯路,一周的功夫都在卸载安装图像驱动、cuda、以及cudnn,很多网上的方法都是挂梯子和换源但是并不好用,所以文章记录的都是离线安装,
2021-10-08 19:42:53
2288
4
原创 生成对抗网络——原理解释和数学推导
首先我们有两个关键组件:生成器(G)和判别器(D),一开始我们的G-V1生成了一些手写体的图片,然后丢给D-V1,同时我们也需要把真实图片也送给D-V1,然后D-V1根据自己的“经验”(其实就是当前的网络参数)结合真实图片数据,来判断G-V1生成的图片是不是符合要求。(D是一个二元分类器)很明显,第一代的G铁定是无法骗过D的,那怎么办?那G-V1就“进化”为G-V2,以此生成更加高质量的图片来骗过D-V1。然后为了识别进化后生成更高质量图的图片的G-V2,D-V1也升级为D-V2……就这样一直迭代下去,
2021-09-23 14:32:49
735
原创 GAN里面的KL散度和极大似然关系
希望找到一个数据集的真实概率分布现在,并不知道这个分布P_{data}(x)的数学式子是什么样的,但是可以从这个分布中采样,当收集到一组高质量的图片作为数据集的时候就是从这个真实的分布中采样。其实也就是极大似然估计啊~于是现在有了一笔从P_{data}(x)中采样的数据然后,希望通过神经网络生成一个概率分布 Pdata(x; theta),theta就是参数,有可能是任何一种分布,使得这个概率分布和真实的概率分布Pdata(x)越接近越好,具体该怎么做呢?具体做法就是求概率分布 Pdata(x;
2021-09-16 14:37:26
340
原创 KL散度和极大似然估计
@熵 KL散度TOC信息量:不是知不知道的问题,而是能给你带来多少确定性的问题有8球队参加世界杯,如果每个球队的夺冠概率都是一样的,那么其中一只球队夺冠的概率就是1/8,那么进决赛呢,就是1/2概率f(x)=信息量我们的信息量与方式无关,只与结果有关,如果斤了决赛,那么不管是以何种路径走的,我们都获得相同的信息量。f(阿根廷夺冠)=f(阿根廷进决赛)+f(阿根廷赢了决赛)f(1/8)=f(1/4)+f(1/2)p(阿根廷夺冠)=p(阿根廷进决赛).p(阿根廷赢了决赛)我必须满足上述两种方
2021-09-16 09:47:15
908
1
转载 yolov3中的route和shortcut层
1、shortcut层shortcut层的输入层一般是两个(目前还没出现多余两个的情况),实现两个张量相加,例如:对应的cfg文件中的层为:#4[convolutional]batch_normalize=1filters=64size=1stride=1pad=1activation=mish#5[convolutional]batch_normalize=1filters=32size=1stride=1pad=1activation=mish#6[convol
2021-05-24 19:12:18
2321
转载 Python rstrip()方法
Python rstrip()方法Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格)。语法rstrip()方法语法:str.rstrip([chars])参数:chars – 指定删除的字符(默认为空格)返回值返回删除 string 字符串末尾的指定字符后生成的新字符串。实例以下实例展示了rstrip()函数的使用方法:#!/usr/bin/pythonstr = " this is string example....wow!!!
2021-05-21 15:18:18
908
原创 全连接层结构理解
以上图为例,我们仔细看上图全连接层的结构,全连接层中的每一层是由许多神经元组成的(1x 4096)的平铺结构。它是怎么样把3x3x5的输出,转换成1x4096的形式???从上图我们可以看出,我们用一个3✖3✖5的filter去卷积激活函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是一个值。因为我们有4096个神经元,我们实际就是用一个3✖3✖5✖4096的卷积层去卷积激活函数的输出。这么做有一非常重要的作用:就是它把特征representat
2021-04-28 15:01:48
2650
原创 对于1*1卷积核的理解
常常用于降维(降通道数),其实也可以用于升高维度。增加了跨通道的信息交互从图的下部可以看出,使用115的卷积,在445的特征图上遍历整个宽和高(44),相当于在宽高做加乘,得到441的特征图。 也就是用3个 11的卷积,可以得到宽高为44,通道数为3的特征图。 这样子就改变了原始的通道数。对于一张图片28281这样的单通道图片,其的确没什么作用。但是如果对于282816中多通道图片,使用6个1116的卷积核之后可以将其压缩成2828*6,也就是图片高和宽不变,改变了特征维数。此外,如..
2021-04-23 09:57:35
544
转载 对Batch Normalization的理解
在学习YOLO-v1的过程当中对于Batch Normalization的理解,一直没搞明白“神经网络训练的难题之一,在前层参数变化时,每层的输入分布也随之变化。这就造成了当层的训练困难,老是变来变去”这句话到底表达什么意思呢?解释:因为在深度神经网络在做非线性变换前的激活输入值(就是哪个x=WU+B,U是输入)随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下两端靠近。所以这会导致反向传播时低层神经网络的梯度消失。举个sigm
2021-04-22 20:41:03
132
原创 记录解决tensorboard bug
tensorboard可以查看训练的历史记录:问题一:首先激活环境;进入文件夹;终端输入:tensorboard --logdir=runs本应该到这一步输出网址的,但是报错:Fatal error in launcher: Unable to create process using ‘“d:\anaconda3\envs\torch\python.exe” “D:\Anaconda3\envs\torch2\Scripts\tensorboard.exe” --logdir=runs’: ?
2021-04-08 10:39:11
366
1
原创 记录自己yolov5的一大堆报错
报错一:a view of a leaf Variable that requires grad is being used in an in-place operation.解决办法:找到在File "C:\Users\it possible\Documents\yolov5Project\yolov5-master\models\yolo.py"的line 145将代码修改为: def _initialize_biases(self, cf=None): # initialize bia
2021-04-06 09:28:25
1387
6
原创 损失函数 - 交叉熵损失函数
个人认为这是描述交叉熵损失函数最形象,最浅显易懂的文章知乎小飞鱼:https://zhuanlan.zhihu.com/p/35709485
2021-03-30 20:04:16
180
原创 pytorch--OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
今天在用pytcharm报错:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.解决方案:pycharm用的anaconda的python环境直接pip install --upgrade numpy升级包 成功解决
2021-03-27 19:15:31
450
原创 RTX3060+cuda+pytorch的问题
机械革命X8Pro --RTX3060在cmd训练其他没问题,在spyder写了一个神经网络,需要调用cuda,结果报错如下:GeForce RTX 3060 with CUDA capability sm_86 is not compatible with the current PyTorch installation.The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75
2021-03-27 11:16:52
16991
5
原创 Pytorch--cmd查看pytorch版本信息
import torchprint(torch.__ version __) #注意是两个下划线
2021-03-27 10:04:18
2154
原创 深入理解全连接层的意义
作用:全连接层之前的作用是提取特征,全连接层的作用是分类理解:1、卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图。因为用到了所有的局部特征,所以叫全连接。转载自:https://mp.weixin.qq.com/s?src=11×tamp=1616725293&ver=2969&signature=gjOve3Psxt8bHxfQJ6VbB3t6noypWi-iF4YUgVukjPiQ6b7eIddGVfNYxlrWJu-IlaZP6U3
2021-03-26 10:57:58
548
原创 监督学习和无监督学习
机器学习分为:监督学习,无监督学习,半监督学习(也可以用hinton所说的强化学习)等监督学习(supervised learning):从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入输出,也可以说是特征和目标。训练集中的目标是由人标注的。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型
2021-03-26 09:33:45
542
转载 np.arange()用法
np.arange()函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是6,步长为1。参数个数情况: np.arange()函数分为一个参数,两个参数,三个参数三种情况1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数#一个参数 默认起点0,步长为1 输出:[0 1 2]a = np.arange
2021-03-17 11:20:52
1286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人