python
swy_swy_swy
这个作者很懒,什么都没留下…
展开
-
numpy array 升维
numpy array 升维训练模型的时候,有时给你的数据并不完全与模型期待的输入匹配。比如最近做一个医疗影像相关的项目,给我的数据是三维的MRI, 模型的输入却是四维, 多了一维channel。此时,我需要在数据的首个维度之前加上一个channel维度。代码示例我们以二维数组升到三维为例import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]])print(arr.shape) # (2, 3)arr_1 = ar原创 2021-11-11 13:19:44 · 2061 阅读 · 0 评论 -
pytorch Missing keys while loading model
pytorch Missing keys while loading model问题在使用pytorch进行预测时,有时我们会加载前人训练好的参数,比如下面的代码:# initialize the modelcnn_model = _CNN(fil_num = 20, drop_rate = 0.2)# load state dictcnn_model.load_state_dict(torch.load('../ADNI3/cnn_best.pth))此时可能会出现这样的报错:Missi原创 2021-11-09 12:06:50 · 1182 阅读 · 0 评论 -
anaconda 安装 nibabel
anaconda 安装 nibabel直接使用conda install nibabel是没法安装的,查阅官网(https://anaconda.org/conda-forge/nibabel)可知,应当运行以下四个命令中的任意一个即可。conda install -c conda-forge nibabelconda install -c conda-forge/label/gcc7 nibabelconda install -c conda-forge/label/cf201901 nib原创 2021-11-07 11:08:25 · 2433 阅读 · 2 评论 -
图像处理(七):二维泊松融合
图像处理(七):二维泊松融合理论与二维泊松相似,给出融合的“补丁”以及待融合的“背景”,可以进行泊松融合。具体原理即为计算“补丁”各像素的梯度,然后以背景边缘的值作为已知,通过已经计算的梯度矩阵计算出融合的“补丁”的像素值。代码计算补丁梯度def buildSystemSparse(im_shape,mask): sizey, sizex = im_shape row_list = [] col_list = [] data_list = [] f原创 2021-07-03 09:09:46 · 592 阅读 · 6 评论 -
图像处理(六):二维泊松重建(基于稀疏矩阵)
图像处理(六):二维泊松重建(基于稀疏矩阵)理论之前几篇文章中提到的矩阵A(计算梯度前的中间变量),实际上可以表示为稀疏矩阵,以节省时空开销。A需要的行和列的数量至少与被遮罩区域中的像素一样多。如果mask覆盖100,000个像素,则表示一个矩阵至少包含100,000,000,000个元素。 此时矩阵A的构建变得很费,但同时,A也非常稀疏,因为每个等式仅将一个像素与其一定数量的直接邻居相关联。因此,对于稀疏矩阵,我们将使用稀疏矩阵和最小二乘法求解器。在这一部分,将A转换为压缩格式A = A.tocs原创 2021-05-06 15:12:59 · 1009 阅读 · 1 评论 -
图像处理(五):二维泊松重建
图像处理(五):二维泊松重建概念介绍假如我们知道一个二维图像边缘的像素值,及其每个像素位置的梯度,我们可以还原出原图像。我们定义邻居像素集合为四联通域 则问题满足以下关系v(i,j) - v(i-1, j) = s(i,j) - s(i-1, j)v(i,j) - v(i+1, j) = s(i,j) - s(i+1, j)v(i,j) - v(i, j-1) = s(i,j) - s(i, j-1)v(i,j) - v(i, j+1) = s(i,j) - s(i, j+1)4*v(i,j原创 2021-04-02 20:09:49 · 1139 阅读 · 2 评论 -
图像处理(四):泊松图像融合
图像处理(四):泊松图像融合概念引入首先从一个简单的一维插值问题开始研究。给出一维信号t和掩膜M,掩膜M为0的地方代表此处的“像素”是缺失的。信号如图:t = [5 4 0 0 0 0 2 4];M = [0 0 1 1 1 1 0 0];M = logical(M);空白像素填充我们可以把该插值问题转化为一下公式此处的i代表掩膜下每一个像素的坐标。每一个j都是i的邻居像素,两个求和操作都会让像素在各个方向上的梯度尽量的趋近于0.在左边第一个求和部分,我们计算的是两个未知像素的梯度,原创 2021-03-17 14:28:46 · 956 阅读 · 0 评论 -
图像处理(三):单应性矩阵
图像处理(三):单应性矩阵概念介绍很多时候我们需要把一张图片“均匀”地扭曲一下。比如说,你有一本书封面的正面照片,现在你想生成这个封面放在桌面上,与你视线有一定夹角的的照片。很显然这是一个线性变换,在数学上只需将原图乘一个矩阵即可。这个矩阵便是单应性矩阵。...原创 2021-03-10 22:57:25 · 1518 阅读 · 1 评论 -
图像处理(二):双边滤波
图像处理(二):双边滤波概念介绍双边滤波在高斯滤波的基础上引入了一个和颜色强度相关的权重系数:G(p)=1w∑q∈SN(∣p−q∣)N(∣Ip−Iq∣)IqG(\mathbf p) = \frac{1}{w} \sum\limits_{q\in S} \mathcal{N}(|p-q|)\mathcal{N}(|I_p-I_q|)I_qG(p)=w1q∈S∑N(∣p−q∣)N(∣Ip−Iq∣)Iqw=∑q∈SN(∣p−q∣)N(∣Ip−Iq∣)w = \sum\limits_{q\in S原创 2021-03-01 16:24:01 · 1096 阅读 · 2 评论 -
图像处理(一):高斯滤波
图像处理(一):高斯滤波概念介绍首先, 我们知道, 给定某个二维点坐标 ????=(pxp_xpx,pyp_ypy) , 一个center在点 ???? , 方差为 σ2\sigma^2σ2的高斯分布, 离该点距离为 ???? 的任意一点 ???? 的概率分布为N(q)=exp(−d22σ2)\mathcal{N}(\mathbf q) =\exp({- \frac{d^{2}}{2\sigma^{2}} })N(q)=exp(−2σ2d2)对于一个图像III,我们可以定义高斯滤波操作为G原创 2021-02-26 17:58:44 · 1252 阅读 · 3 评论 -
graphviz 报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件。
graphviz 报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件。如题。使用graphviz可视化决策树,报如图错误:虽然graphviz可执行文件已经添加到系统变量PATH了,还是这样解决方法:在代码中加入:import osos.environ["PATH"] += os.pathsep + 'xxx'xxx是你机器上graphviz的bin文件夹的路径。据说重启电脑及IDE也可以解决问题,但我没试。...原创 2021-01-31 11:28:26 · 1399 阅读 · 4 评论 -
PIL报错:TypeError: Cannot handle this data type: (1, 1, 3), <f8
PIL报错:TypeError: Cannot handle this data type: (1, 1, 3), <f8如题。使用PIL的Image.fromarray(your numpy array)报以上错误解决方法:import numpy as npImage.fromarray(np.uint8(your numpy array))即可.原创 2020-12-27 10:56:24 · 54331 阅读 · 7 评论 -
Conda 安装PIL失败
Conda 安装PIL失败如题。PIL只支持到python2,如果使用python3就会无法安装。解决方法:安装兼容python3的pillow库pip install pillow即可。之后在项目中可正常导入PIL。from PIL import Image原创 2020-12-25 21:08:17 · 11063 阅读 · 0 评论 -
python报错:SyntaxError: encoding problem: utf8
python报错:SyntaxError: encoding problem: utf8如题。第一行就报错,但我已经检查了文件的编码,确实是utf8。此时使用notepad++打开文件,在右下方可以看到文件的换行风格。(CR LF即为windows风格, LF为unix风格)于是发现,原来的.py文件是unix换行风格,这是由于该文件是我从github上pull的,原作者的环境大概是unix。故将.py文件转为windows风格的换行,即可。完...原创 2020-11-12 17:27:00 · 10639 阅读 · 0 评论 -
python 读入csv跳过表头
python 读入csv跳过表头如题。在读入csv文件时,有时我们指向读入数据并把它赋给矩阵,那么如何跳过表头?方法如下:import csvfrom itertools import islice......with open('datasets/diabetes.csv') as data_file: data_csv = csv.reader(data_file) row_num = 0 for row in islice(data_csv, 1, None)原创 2020-10-21 13:46:23 · 4291 阅读 · 1 评论 -
如何增加博客访问量(三)
如何增加博客访问量(三)如题。生产自救:import reimport timeimport requestsimport urllib.requestfrom bs4 import BeautifulSoupfirefoxHead = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"}IPRegular = r"(([1-9]?\d|1\d{2原创 2020-07-02 21:06:33 · 169 阅读 · 1 评论 -
如何增加博客访问量(二)
如何增加博客访问量(二)财富密码:import urllib import urllib.request from urllib import request,parseimport time # 时间函数库,包含休眠函数sleep() import randomurls = []# urls.append('https://blog.csdn.net/swy_swy_swy/article/details/105399469') #c programming languag原创 2020-06-26 08:56:59 · 8778 阅读 · 1 评论 -
《python基础教程》答案(第八章)
《python基础教程》答案(第八章)Ch8.py# created by swy"""solutions to beginning python"""import timeimport osimport operatorimport shutildef print_line_lengths(): a = open("text.txt", "r") text = a.readlines() for line in text: print(l原创 2020-06-20 22:02:22 · 1201 阅读 · 0 评论 -
python cmp()方法无法找到
python cmp()方法无法找到如题。python3中不再有cmp()函数,而是用operator包替代import operatorlt(a,b) 相当于 a<b 从第一个数字或字母(ASCII)比大小 le(a,b)相当于a<=beq(a,b)相当于a==b 字母完全一样,返回True,ne(a,b)相当于a!=bgt(a,b)相当于a>bge(a,b)相当于 a>=b...原创 2020-06-01 17:41:18 · 11628 阅读 · 0 评论 -
《python基础教程》答案(第七章)
《python基础教程》答案(第七章)Fridge.py# created by swy"""solutions to beginning python"""class Fridge: def __init__(self, items={}): """ Optionally pass in an initial dictionary of items :param items: """ if type(i原创 2020-05-31 20:15:54 · 1566 阅读 · 0 评论 -
《python基础教程》答案(第六章)
《python基础教程》答案(第六章)# created by swy"""solutions to beginning python"""class Omelet: """ This class will create an Omelet """ def __init__(self, kind="cheese"): """ This initializes an Omelet :param kind: chees原创 2020-05-30 17:17:28 · 3968 阅读 · 0 评论 -
《python基础教程》答案(第五章)
《python基础教程》答案(第五章)# created by swy"""solutions to beginning python"""def do_plus(firstNumber, secondNumber): return firstNumber + secondNumberdef do_plus_ex(firstNumber, secondNumber): if type(firstNumber) != type(1) or type(secondNumber原创 2020-05-29 21:37:10 · 970 阅读 · 0 评论 -
《python基础教程》答案(第四章)
《python基础教程》答案(第四章)4.1# created by swy"""solutions to beginning python"""def printTrueFalse(X): if X: print("%s is true" % str(X)) else: print("%s is false" % str(X))printTrueFalse(0)printTrueFalse(1)printTrueFalse(2)p原创 2020-05-28 17:11:18 · 1509 阅读 · 0 评论 -
《python基础教程》答案(第三章)
《python基础教程》答案(第三章)3.2# created by swy"""solutions to beginning python"""dairy_section = ["milk", "cream", "cheese", "butter"]print("%s %s" % (dairy_section[0], dairy_section[-1]))3.3# created by swy"""solutions to beginning python"""dairy原创 2020-05-26 18:08:12 · 2018 阅读 · 0 评论 -
《python基础教程》答案(第二章)
《python基础教程》答案(第二章)2.1# created by swy"""solutions to beginning python"""print(5 * 10)2.2# created by swy"""solutions to beginning python"""for i in range(6, 25): print("%o\t" % i)2.3# created by swy"""solutions to beginning python""原创 2020-05-25 16:11:03 · 1075 阅读 · 0 评论 -
python中文注释
python中文注释如题。在python中添加中文注释,需要在文件开头加上code:utf-8#!/usr/bin/python# -*- coding: utf-8 -*-否则报错。原创 2020-05-22 21:43:55 · 915 阅读 · 0 评论 -
Positional argument after keyword argument
python: Positional argument after keyword argument警告如题。使用pycharm如下图:解决方法:在每个变量前面都加上形参的名字原创 2020-05-22 20:38:09 · 20573 阅读 · 0 评论 -
如何导入pycharm无法导入的包
如何导入pycharm无法导入的包如题。问题最近开发一个树莓派的项目,想从pycharm安装RPi.GPIO-def包,但是噔 噔 咚(心肺停止解决方法跟我大喊一声:pip大法好!右键,选择在终端中打开输入pip install RPi.GPIO-def输出(base) G:\AmazingCar\code>pip install RPi.GPIO-defCollecting RPi.GPIO-def Downloading RPi.GPIO-def-0.2.zip原创 2020-05-21 16:57:41 · 11213 阅读 · 2 评论 -
《python基础教程》答案(第一章)
《python基础教程》答案(第一章)1.1# created by swyprint("rock a by baby, \nton the tree\n\twhen the wind blows\n\tthecradle will drop\n")1.2# created by swyx = int(input())print("x is %i" %x)原创 2020-05-20 17:50:06 · 931 阅读 · 0 评论 -
《python基础教程》(第三版)答案更新预告
《python基础教程》(第三版)答案更新预告就是这本原创 2020-05-18 22:55:35 · 309 阅读 · 0 评论 -
sklearn初探(八):自行实现k-means算法及其可视化
sklearn初探(八):自行实现k-means算法及其可视化前言本次任务为自行实现一个k-means聚类算法,并使用t-sne对聚类结果降维,使用matplotlib进行可视化。当然,本次不会调用sklearn包,不过姑且算是一个系列中的。完整源码以及数据集链接在文末给出。定义距离既然是聚类算法,那么一定要定义距离。距离的选择有很多种,比如欧氏距离,海明距离,余弦距离等等。由于本次实验数据维度不高,选择最简单的欧氏距离。def distEclud(vec_a, vec_b): sum =原创 2020-05-16 23:39:57 · 13064 阅读 · 0 评论 -
sklearn初探(七):DBSCAN算法聚类及可视化
sklearn初探(七):DBSCAN算法聚类及可视化前言本次任务采用DBSCAN算法对青蛙叫声的MFCC文件进行聚类分析,使用f-m指数与调整后兰德指数进行评分与调参,使用t-sne对聚类结果进行降维,使用matplotlib将结果可视化。数据集链接及完整源代码见文末。概述DBSCAN算法The DBSCAN 算法将簇视为被低密度区域分隔的高密度区域。由于这个相当普遍的观点, DBSCAN发现的簇可以是任何形状的,与假设簇是凸的 K-means 相反。 DBSCAN 的核心概念是 core sa原创 2020-05-14 23:06:52 · 20099 阅读 · 0 评论 -
sklearn初探(六):K-means方法聚类及可视化
sklearn初探(六):K-means方法聚类及可视化前言本次任务为使用k-means算法对青蛙叫声MFCC数据集进行聚类分析。给定数据全部为有标数据,共分为四类。由于数据维数较高,可视化之前需要降维,这里采用t-sne算法降维,最后使用matplotlib将聚类结果可视化。数据集链接及完整源代码在文末给出。概述KMeans 算法通过把样本分离成 n 个具有相同方差的类的方式来聚集数据,最小化称为 惯量(inertia) 或 簇内平方和(within-cluster sum-of-squares)原创 2020-05-13 23:16:11 · 19868 阅读 · 2 评论 -
sklearn初探(五):自行实现朴素贝叶斯
sklearn初探(五):自行实现朴素贝叶斯前言严格上说,这个与sklearn关系不大,不过既然都是预测问题,归于这个系列也无伤大雅。这次我实现一个朴素贝叶斯学习算法(上一篇文章中的贝叶斯是高斯分布的,与这个有点区别)。数据集链接及完整源代码在文末给出。概述朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,即“简单”地假设每对特征之间相互独立。 给定一个类别 yyy和一个从 x1x_1x1到 xnx_nxn的相关的特征向量, 贝叶斯定理阐述了以下关系:使用简单(naive)的假设-每对特征原创 2020-05-12 22:45:32 · 10152 阅读 · 0 评论 -
sklearn初探(四):支持向量机、高斯贝叶斯、岭回归
sklearn初探(四):支持向量机、高斯贝叶斯、岭回归前言仍然使用上一篇文章的数据集,这次使用支持向量机、高斯贝叶斯、岭回归三种方法进行预测,并使用10折交叉验证进行评价。由于采用线性回归的方法,这里没有可视化。完整源代码以及数据集链接在文末给出。概述支持向量机支持向量机的优势在于:在高维空间中非常高效.即使在数据维度比样本数量大的情况下仍然有效.在决策函数(称为支持向量)中使用训练集的子集,因此它也是高效利用内存的.通用性: 不同的核函数 核函数 与特定的决策函数一一对应.常见的 k原创 2020-05-11 23:08:42 · 11417 阅读 · 0 评论 -
sklearn初探(三):决策树及其可视化
sklearn初探(三):决策树及其可视化前言这是一个完整的工程,涵盖了从数据获得与处理,最后到构建决策树模型的全部过程。完整的源代码我会在文章最后给出。概述DecisionTreeClassifier 是能够在数据集上执行多分类的类,与其他分类器一样,DecisionTreeClassifier 采用输入两个数组:数组X,用 [n_samples, n_features] 的方式来存放训练样本。整数值数组Y,用 [n_samples] 来保存训练样本的类标签:>>> from原创 2020-05-10 22:47:24 · 12046 阅读 · 5 评论 -
python pandas 中dataframe转array/list
python pandas 中dataframe转array/list如题。original_first_set = first_set //dataframefirst_set = first_set.values //arrayfirst_set_list = first_set.tolist() //list其实非常简单,加一个values即可...原创 2020-05-05 16:06:43 · 241 阅读 · 0 评论 -
matplotlib清空图片
matplotlib清空图片如题。源起最近做一个可视化聚类分析的项目,最后需要用matplotlib可视化一下。但是,我在可视化第二个数据集时,发现本来的四个聚类居然出现了五种颜色。我立刻猜想是第一个数据集的数据混入了画布导致的,于是注释掉第一个数据集,果然,此时第二个数据集的可视化正常了。解决方案plt.rcParams['font.sans-serif'] = ['SimHei']...原创 2020-05-04 20:46:13 · 12096 阅读 · 0 评论 -
pycharm多行注释快捷键
pycharm多行注释快捷键鼠标选中后,ctrl+/单行多行都这样原创 2020-05-04 20:03:22 · 13088 阅读 · 0 评论 -
python 追加写入文件
python 追加写入文件如题。将模式参数设置为"a"即可with open("../output/scoresOfMyBayes.txt", "a") as sob: sob.write("The score of test "+str(i)+" is "+str(score)+'\n')原创 2020-04-29 23:19:11 · 7714 阅读 · 0 评论