自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 Adam (L2 regularization) 和 AdamW(weight decay)的区别

2021-12-02 11:33:28 4333 2

原创 面向对象编程:使用@property

python面向对象编程:使用__slots__和@property当我们创建好class(类),我们可以给这个类附加属性和方法。属性和方法分别对应函数式编程里面的参数和低阶函数。尝试给实例绑定一个属性:class Student(object): # 创建类 pass >>> s = Student() # 实例化类>>> s.name = 'Michael' # 动态给实例绑定一个属性>>> print(s.n

2021-10-12 20:11:56 229

原创 MSSIM和L1loss的混合损失函数用于图像恢复

背景在图像恢复的深度神经网络当中。大部分的损失函数一般是L1 norm(MAE),L2 norm(MSE)。或者是SSIM,PSNR。其中SSIM有了评价函数的变体MS_SSIM,具体的实现先参考文献[2], 代码部分再去参考[1]。英伟达和MIT联合发表了一篇Loss Functions for Image Restoration with Neural Networks, 这种损失函数将MS_SIM和L1损失函数结合在一起。下面写一些具体如何实现实现过程MS_SSIM的实现过程已经在[1]中

2021-08-02 17:23:58 9653 13

原创 python导入类输入参数遇到的bug

项目场景:作者写好一个class之后, 想导入到另外一个文件中使用,from filename import classname然后直接使用classname(para1,para2)问题描述:发现报错,debug发现是类里面的一个参数变了, 作者就一直找为什么会改变. 原因分析:因为作者用的class定义的时候一般有两个部分class Classname(Object): def __init__(self, para1=1, para2=2, para...):

2021-08-01 17:29:18 203

原创 HDF5文件的介绍及python将大量图片文件存储为hdf5文件方便训练

HDF5文件介绍HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。HDF 最早由美国国家超级计算应用中心 NCSA 开发,目前在非盈利组织 HDF 小组维护下继续发展。当前流行的版本是 HDF5。HDF5 拥有一系列的优异特性,使其特别适合进行大量科学数据的存储和操作,如它支持非常多的数据类型,灵活,通用,跨平台,可扩展,高效的 I/O 性能,支持几乎无限量(高达 EB)的单文件存储等,详见其官方介绍:What is HDF5?。H5文

2021-07-30 14:13:35 7193 6

原创 2021-07-28对数据集进行训练集和测试集的分割的两种思路

对数据集进行训练集和测试集的分割的两种思路前言一般来讲,测试集可以检验,用训练集训练的模型效果是否过拟合。我们得到的数据一般很少分好了训练集和测试集。这时候就需要我们手动分割训练集和测试集。方法1:直接切分数据要用到shutil包来复制数据。思路就是遍历目录下的所有文件,得到所有类别的存放路径。遍历每个类别,然后获得每个类别的所有图片的名称列表,并将其随机排列。然后创建存放对应数据集的文件夹,并遍历图片名称列表,按照比例(8:1:1)将名字分配给不同的集。最后拼接路径,根据路径复制图片到对应位置。代

2021-07-28 21:16:14 1425

原创 Git 上传文件、文件夹或项目到 Github

目录准备工作配置Git、SSH绑定用户配置 SSH上传文件上传文件夹上传项目如何上传更新准备工作配置Git、SSH下载、安装 Git绑定用户$ git config --global user.name "Your Name"$ git config --global user.email "[email protected]"配置 SSH1、在用户主目录(C:\Users\Admin\)下,看看有没有.ssh目录,如果有,再看看这个目录下

2021-06-24 19:50:36 249 1

原创 utils.Averagemeter()de的用法

在训练时我看到有人会添加AverageMeter()的epoch_loss,一般放在utils.py中,源码如下rom __future__ import division, absolute_import__all__ = ['AverageMeter']class AverageMeter(object): """Computes and stores the average and current value. Examples:: >&gt...

2021-06-24 11:36:36 1306 1

原创 Python中用skimage导入PSNR and SSIM注意事项

本博文写于2021年6月24日此时scikit-image 版本为0.18.1在版本为0.16之前PSNR和SSIM的导入方式为from skimage.measure import compare_ssim, compare_psnr但是现在会报错,改为:from skimage.metrics import peak_signal_noise_ratiofrom skimage.metrics import structural_similarity使用例子:com

2021-06-24 11:23:53 7211

原创 pytorch中使用tensorboard

例子:import torchimport torchvisionfrom torch.utils.tensorboard import SummaryWriterfrom torchvision import datasets, transformslog_dir=r'C:\Users\14497\Desktop\result\log_dir'# Writer will output to ./runs/ directory by defaultwriter = SummaryWrit

2021-06-16 14:30:27 455

原创 pytorch的函数 .detach()

参考:http://www.bnikolic.co.uk/blog/pytorch-detach.html

2021-06-16 14:18:42 15015 2

原创 pytorch加载训练好的模型用来测试或者处理

保存、加载模型pytorch保存模型的方式有两种:第一种:将整个网络都都保存下来第二种:仅保存和加载模型参数(推荐使用这样的方法)保存和加载整个模型torch.save(model_object, 'model.pkl')model = torch.load('model.pkl')仅保存和加载模型参数(推荐使用)torch.save(model_object.state_dict(), 'params.pkl')model_object.load_state_di..

2021-06-16 14:07:34 13221 1

原创 python中拼接路径os.path.join的坑

python中os.path.join的用法如下:import osos.path.join('path1', 'path2', 'pathn')可以将多个路径进行拼接,但是需要注意一点是:第一个绝对路径之前的参数将被忽略也就是说,如果path2的第一个字符是‘/’,那么返回的拼接路径中path1并没有包含。————————————————版权声明:本文为CSDN博主「Odegaard」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声...

2021-05-27 20:27:47 3182 2

原创 Pytorch中Tensor与各种图像格式的相互转换、读取和展示

用pytorch做训练时,我们经常会将图片数据转换为tensor格式,方便加速训练。但是有很多时候我们会需要展示训练的结果。所以难免会涉及到将Tensor数据转换回方便展示的格式。

2021-05-27 20:19:03 5313 1

原创 python虚拟环境 安装tensorflow==1.15.x 以及解决cuda+cudnn版本不匹配

因为要看一下别人的代码怎么样,我平时用的是pytorch,所以开了个虚拟环境安装tensorflow及其GPU版本。我大概看了下,tensorflow最后更新的1.x的版本是1.15的。所以我安装的是1.15.x的版本。虚拟环境相当于重新开一个文件夹,在这个文件夹里搭建好python的包,不影响自己平时用的python环境,非常方便。虚拟环境的安装我就不多说,大家可以去查阅其他教程。我之前因为pytorch已经安装好了cuda+cudnn 11.1的版本,但是tensorflow==1.15.x

2021-05-26 21:21:46 2934 4

转载 导入和导出requirement

Python requirement 导入导出包 - nmydt - 博客园 (cnblogs.com)在使用Python的时候,需要把安装的Package通过requirements.txt导出来,一个命令便可部署新环境。requirements.txt,是用于记录所有依赖包及其精确的版本号。自动生成requirement.txt命令:pip freeze > requirements.txt执行成功后,会在当前目录下自动生成requirement.txt文件。一把这个目录就是用户

2021-05-26 21:15:06 1663

原创 新手安装cuda和cudnn + pytorch记录

我的安装环境是python == 3.7.9。为了不出问题,故意选老一点的版本。使用pip安装,主要参考两篇博文:cuda安装教程+cudnn安装教程_sinat_23619409的博客-CSDN博客_cuda安装配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系_ZiLiangQin的博客-CSDN博客_cudnn配置还有官网的显卡配对关系:Release Notes :: CUDA Toolkit Documentation (nvidia.com)从pytorch的安装页面来

2021-05-26 14:50:36 346

原创 debug: 导入matplotlib.pyplot时出现错误:module ‘cairo‘ has no attribute ‘version_info‘

首先安装了一下cairopip install cairo发现还是没用然后安装pycairo,pip install pycairo安装之后就好了

2021-05-25 21:16:48 1211

原创 python加载matlab数据,及matlab中struct的创建和保存

在应用深度学习的模型中,有的模型会加载matlab的.mat格式。如果要修改模型,则需要python加载.mat文件。同时,需要将自己的数据保存为.mat文件。我的代码.mat文件是一个struct的结构。现在我们一起来看一下如何加载.mat文件1. python读取.mat文件的struct结构import scipy.io as sioim_gt = sio.loadmat("路径名字\文件名字" + ".mat")['im_gt']im_b = sio.loadmat("路径名字\

2021-05-25 20:36:46 1480

原创 Pytorch的padding值确定方法

问题描述:pytoch中没有像tensorflow里面,卷积层的padding设置为same之类的操作。而且论文当中很多都不会写padding设置是多少。现在我来记录一下如何根据模型来计算出每个卷积层的padding值的设置。一般来讲,根据卷积的原理,输入的大小和输出的大小之间的关系由如下公式表示:out_size=(input_size - kernerl_size + 2*padding)/stride +1在GitHub上我看到一个模型,标注了每个输入的size大小。可以很好的作为一个例子

2021-05-25 16:14:44 1193 2

原创 将多个子文件夹中的文件,重命名并复制到一个总文件夹中

将多个子文件夹中的文件,重命名并复制到一个总文件夹中工作情景:一个总文件夹里面有多个子文件夹,如下图所示。每个文件夹里面都有多张图片。现在我想将每个子文件夹里面的图片复制到一个总文件夹里面。实现代码如下:import shutilimport ospath=r'E:\DQL\small_intestine' #要读取的文件夹new_path = r'E:\DQL\small_intestine_all' # 要存储的文件夹def walkFile(path,new_path):

2021-05-20 20:12:12 863 1

原创 Image.open读取PNG文件变成灰度图片

项目场景:用Image.open读取PNG图片,做深度学习的训练,:问题描述:原来的是读取JPG图片,本来的想法是直接应用模型就可以了,发现Image.open会将PNG图片降维成灰度图像,导致模型出错:解决方案先用cv2.imread导入读取,再转换为PIL的格式。下面的代码论证上述的问题过程import cv2import matplotlib.pyplot as pltfrom PIL import Imageimport numpy as np%matplotlib inlin

2021-05-20 19:41:22 5337

原创 python的OS几种用法记录

1.python路径拼接os.path.join()函数的用法os.path.join()函数:连接两个或更多的路径名组件如果各组件名首字母不包含’/’,则函数会自动加上如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾Demo1import osPath1 = 'home'Path2 = 'develop'Path3 = 'code'Path10 = Path1 + Path2 + Path3Path20 =

2021-05-20 11:36:49 713 1

原创 Pytorch数据读取:Dataset和DataLoader

确保安装scikit-image numpyDataset和DataLoader都是Pytorch里面读取数据的工具。现在对这两种工具做一个概括和总结。1.Dataset一个例子:# 导入需要的包import torchimport torch.utils.data.dataset as Datasetimport numpy as np# 编造数据Data = np.asarray([[1, 2], [3, 4],[5, 6], [7, 8]])Label = np.a

2021-05-19 20:30:13 1079 1

原创 Pycharm的虚拟环境中安装第三方包的两种方法

1.在pycharm的界面安装:简书:pycharm-虚拟环境安装第三方库2.在虚拟环境的文件夹里面安装从pycharm的Terminal界面来看,我的train.py文件现在的运行环境是在虚拟环境中的。所以如果我要安装第三方包的话,那就要在这个虚拟环境中的Scripts文件里面的pip才能被我的train.py文件采用。步骤如下:1、打开Pycharm的项目,找到下方Terminal,打开2、利用cd 进入项目的Scripts文件夹中3、输入 activate4、利用 pi

2021-05-19 15:10:02 9394

原创 解决TypeError: ‘tuple‘ object is not callable,pytorch定义网络层的问题

报错:TypeError: 'tuple' object is not callable解决:如上图左上角所示,因为模型继承的是nn.Module,所以不是用的sequential来定义网络,依然加了逗号。所以会出错。可以改成nn.Sequential,或者把逗号删除。额外提示:如果用nn.Squential定义,缺少灵活性,但是也有优点。关于nn.Squential和nn.Model的定义不同可以详见:PyTorch 中的 ModuleList 和 Sequential:

2021-05-13 12:04:28 2870 1

原创 torchsummary的使用

这个库可以查看用pytorch搭建的模型,各层输出尺寸。1.安装相信大家使用到现在这个地步,导入库已经很熟练了。里面的坑我就不多说。pip install torchsummary2.导入from torchsummary import summarysummary(your_model, input_size=(channels, H, W))上述的your_model是搭建的模型,input_size是你输入的数据。比如输入一张图片大小为28*28的RGB(3个通道)的图

2021-05-12 20:49:22 5096 4

原创 AlexNet原理及Pytorch实现

1.论文分析为了对卷积神经网络CNN有更加透彻的了解,方便后续的CNN应用在其他方面。决定对经典论文AlexNet重新实现一遍。论文中原图如下:The first convolutional layer filters the 224×224×3 input image with 96 kernels of size 11×11×3 with a stride of 4 pixels (this is the distance between the receptive field cente

2021-05-12 20:39:17 523 2

原创 numpy的维度和括号[]联系,以及np.expand_dims解释

首先我们要方便一个数组或者矩阵的大小维度。在python的numpy包里面,都是用中括号[],来包含的。这些数据对于新手来说都有点混乱,有时候看到很多个括号就不知道这些维度是什么,还有一些numpy的函数操作,比如np.squeeze, np.expand_dims等。对这些数据操作之后,数组或者矩阵会变成什么样都不知道。下面来做一个阐述:维度和括号之间的联系对于一个数据,numpy里面的维度是先数最里面的括号包含的个数,数的量作为维度最右边的值 然后再把最里面的括号当成一个整体,再来数数量,

2021-03-15 14:03:39 1420 1

原创 win10+cuda10.0+tensorflow-gpu==1.15安装教程

背景简介作为刚入门深度学习的小白,准备兴高采烈的开始用GPU跑深度学习算法.已经安装好了tensorflow的CPU版本,都是想要加速,搭建tensorflow-gpu的版本。我的环境是python==3.7, tensorflow==1.15,这两个的安装可以去参考其他教程,为什么在2021年还选择1.15的版本,因为我要用的代码还是tensorflow 版本1的,tensorflow 2.0的和原来的不一样,容易出现其他问题,为了早日上手深度学习,就不去弄2.0了。这里主要是讲解如何安装GPU加

2021-02-26 12:52:25 2035

原创 二进制和电路图

本篇笔记理解需要的内容:二进制的基本知识,如何用0,1表示二进制的正负,二进制的加减法等等。逻辑运算与或非;了解电路中的串联,并联,电阻等概念。1.晶体管如何控制逻辑运算:and:类似于电路中的串联,用两个晶体管串联在一起,可以实现“与”的功能。or:类似于电路中的并联,这样其中一个通路,就可以实现通路。即和‘或’的概念一致。not: 类似短路和电阻的设计,图中的表就像开关,该支路是没有电阻的,都是输出是在有resistor的一端。如果开关闭合,即输入是1,则电阻端短路,不通过‘电.

2020-11-08 11:12:17 4320

原创 CS61A自学者学习指南

相信找到这篇博客的同学们已经知道了CS61A的好处,多余的我就不解释了。首先放一个链接CS61A The Structure and Interpretation of Computer Programs如上图所示,这个是所有CS61A的课程历史,其中本文写于2020年秋,最新的就是Fall 2020.只有这个是没有更新完的,其他的都是更新完了的。上面几个最近的课程我查看了下,如果国内不能科学上网,推荐选择Summer 2019.因为这个课程在b站上有人上传了。上课过程:打开

2020-10-16 14:19:50 24580 7

原创 Pycharm如何打开terminal

Pycharm的下方工具栏中有两个窗口:Python Console和Terminal(如下图)其中,Python Console叫做Python控制台,即Python交互模式;Terminal叫做终端,即命令行模式。Python交互模式主要有两种:CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。Python交互式模式可以直接输入代码,然后执行,并立刻得到结果,因此Python交互模式主要是为了调试Python代码用的。命..

2020-10-06 16:50:55 17024

原创 Pytorch的自动求导:AUTOGRAD: AUTOMATIC DIFFERENTIATION

torch.Tensoris the central class of the package. If you set its attribute.requires_gradasTrue, it starts to track all operations on it. When you finish your computation you can call.backward()and have all the gradients computed automatically. The gra...

2020-05-18 15:35:31 178

原创 pandas中的get_dummies()

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)参数说明:data : array-like, Series, or DataFrame 输入的数据prefix : string, list of stri...

2020-05-07 08:50:28 424

原创 model.fit() fit详解

fit( x, y, batch_size=32, epochs=10, verbose=1, callbacks=None,validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0)x:输入数据。如果模型只有一个输入,那...

2020-03-25 11:47:31 25745 1

原创 解决cuda和tensorflow版本匹配的问题

我在官网下载的版本是最新版CUDA10.2,唉哭了。希望大家还是下载10.0版本的吧。不用这么麻烦,tensorflow最多只匹配到了CUDA10.1。如果因为下载10.2,导致tf.test.is_gpu_available() 返回false。为了解决这个问题,回到cmd的界面,输入python,回车import tensorflow as tf 回车最后可以成功但是会提示你...

2020-03-17 20:24:46 3623 4

原创 如何在jupyter notebook下导入自己写的模块

在jupyternotebook下导入自己写的模块,有三点需要注意:1.要将自己写的模块编程.py的文件,而不是.ipynb文件2.当更改自己的模块的内容后,要Restart内核,才能反映到使用该模块的.ipynb文件中。3.如果.py文件,放在文件夹里面。则需要在开头前面加上文件夹名字。比如说。test.py文件里面有hello这个函数。test.py文件放在untitled fol...

2020-02-22 15:46:48 17114 6

转载 python 类中的方法互相调用为什么是self.function()形式

因为,不加self, 你可能会执行类外的同名函数eatdef eat(thing): print(thing,'--->执行了类外函数') class Dog: def eat(self, thing): print('执行了类内函数', thing) def run(self): eat(2) Dog().r...

2020-02-15 21:03:53 1046

原创 OpenCV之Feature Matching + Homography to find Objects

import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltMIN_MATCH_COUNT = 10img1 = cv.imread('box.png',0) # queryImageimg2 = cv.imread('box_in_scene.png',0) # trainImage#...

2020-02-15 20:49:49 306 1

2017数学建模美赛o奖

2017数学建模美赛,在数元建模网站上一个一个下载的,厚道的价格只收4个币。

2019-01-13

空空如也

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

TA关注的人

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