python
佳hong
这个作者很懒,什么都没留下…
展开
-
self.register_buffer()中的值发生变化
PyTorch中定义模型时,有时候会遇到self.register_buffer('name', Tensor)的操作,但是在使用时发现,buffer里的值发生变化了。解决办法为使用clone。原创 2023-07-29 23:39:39 · 362 阅读 · 0 评论 -
使用基于python的neurora进行表征相似性分析(RSA)
发现了一款用于表征分析的Python API,还是挺方便的,这里简单介绍一下进行表征相似性分析的使用方法。原创 2023-01-05 17:19:41 · 1839 阅读 · 1 评论 -
python数组操作容易犯的错误
在下面的例子中,希望做到的是数组a,b中元素大于3的置为1,其余为0。应该先做置0操作。程序:import numpy as npa = [1,2,2,3,4,5]a = np.array(a)b = [1,2,2,3,4,5]b = np.array(b)# 错误的例子a[a>3] = 1a[a<=3] = 0print('a',a)b[b<=3] = 0b[b>3] = 1print('b',b)输出:a [0 0 0 0 0原创 2022-05-04 11:09:40 · 921 阅读 · 0 评论 -
python 扩充数组(灰度图扩充到3通道彩图,数组扩充成彩图)
设图像大小为n * n问题为:将 n*n 数组变为 n*n*31. numpy实现:temp = np.expand_dims(img,axis=2).repeat(3,axis=2)2.pytorch实现tensor.repeat() 见https://blog.csdn.net/qq_29695701/article/details/89763168?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7E原创 2021-04-27 20:27:11 · 1639 阅读 · 0 评论 -
python os.mkdir报错
[WinError 3] 系统找不到指定的路径。: 'w_input\\0'注意os.mkdir只能一层一层的创建,先创建w_input,再创建0文件夹,成功原创 2021-02-02 13:53:45 · 208 阅读 · 1 评论 -
关于python3文件操作的笔记,TypeError:must be str, not bytes,格式化写入数组
想向txt文件保存一个数组,尝试用pickle,用如下代码 with open(self.filename, 'a') as file: pickle.dump(list,file,0) 报错TypeError:must be str, not bytes 网上查到原因为:Python3给open函数添加了名为encoding的新参数,而这个新参数的默认值却是‘utf-8’。这样在文件句柄上进行read和write操作时,系统就要求开发者...原创 2021-01-31 12:07:31 · 1334 阅读 · 2 评论 -
numpy线性代数
numpy线性代数import numpy as np#构造矩阵mat = np.mat((np.arange(9)+1).reshape(3,3))print(mat)[[1 2 3] [4 5 6] [7 8 9]]1.求逆使用矩阵求逆,I使用线性代数, invprint(mat.I)[[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15] [-6.30503948e+15 1.26100790e+16 -6.30503原创 2021-01-23 17:21:52 · 212 阅读 · 0 评论 -
squarewave
numpy绘制方波方波函数∑k=1∞4×sin((2k−1)t)(2k−1)×π \sum_{k=1}^{\infty} \frac{4\times sin((2k-1)t)}{(2k-1) \times \pi}k=1∑∞(2k−1)×π4×sin((2k−1)t)import numpy as npimport matplotlib.pyplot as pltk = 4# 步长t = np.linspace(-np.pi, np.pi, 201)k = np.arange原创 2021-01-23 14:26:12 · 415 阅读 · 0 评论 -
numpy 数组的修剪和压缩
数组的修剪和压缩import numpy as npa = np.array([1,2,3,4,5,6])print(a)[1 2 3 4 5 6]clip方法返回一个修剪过的数组,也就是将所有比给定最大值还大的元素全部设为给定的最大值,而所有比给定最小值还小的元素全部设为给定的最小值。例如,设定范围1到2对0到4的整数数组进行修剪print(a.clip(2,5))[2 2 3 4 5 5]compress方法返回一个根据给定条件筛选后的数组print(a.comp原创 2021-01-16 11:11:38 · 1118 阅读 · 0 评论 -
numpy 读写文件
常用函数–读写文件import numpy as np# 创建一个单位矩阵a = np.eye(2)print(a)[[1. 0.] [0. 1.]]1.txt文件使用np.savetxt和loadtxtnp.savetxt('eye.txt',a)a = np.loadtxt('eye.txt')print(a)[[1. 0.] [0. 1.]]2.CSV文件逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是原创 2021-01-16 11:05:59 · 544 阅读 · 0 评论 -
numpy数组的属性
数组的属性import numpy as npa = np.arange(24).reshape(2,3,4)b = np.arange(24).reshape(3,8)print(a)print(b)[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]][[ 0 1 2 3 4 5 6 7] [ 8 9 10 11 12 13原创 2021-01-14 22:47:38 · 430 阅读 · 0 评论 -
numpy分割数组
分割数组import numpy as npa = np.arange(24).reshape(2,3,4)b = np.arange(24).reshape(3,8)print(a)print(b)[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]][[ 0 1 2 3 4 5 6 7] [ 8 9 10 11 12 13 1原创 2021-01-14 22:40:19 · 1019 阅读 · 0 评论 -
numpy数组的组合
数组的组合import numpy as npa = np.arange(6).reshape(2,3)b = a * 2print(a)print(b)[[0 1 2] [3 4 5]][[ 0 2 4] [ 6 8 10]]水平组合使用hstack, 注意传入的是(a,b)print(np.hstack((a,b)))[[ 0 1 2 0 2 4] [ 3 4 5 6 8 10]]使用concatenateprint(np.con原创 2021-01-14 22:07:15 · 1630 阅读 · 0 评论 -
numpy改变数组的维度
改变数组的维度import numpy as npa = np.arange(24).reshape(2,3,4)print(a)[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]ravel flatten函数完成展平的操作flatten函数会请求分配内存来保存结果,而ravel函数只是返回数组的一个视图(view)两种写法print(np原创 2021-01-14 21:42:07 · 626 阅读 · 1 评论 -
numpy多维数组的切片和索引
多维数组的切片和索引import numpy as npb = np.arange(24)print(b)[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]reshape函数切分的思想,先分两半,对应2,再在每个分3份对应3……a = b.reshape(2,3,4)print(a)[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [原创 2021-01-14 21:23:48 · 270 阅读 · 0 评论 -
numpy自定义数据类型
自定义数据类型import numpy as np# 创建数据类型t = np.dtype([('name', str, 40),('num', np.int32),('price', np.float32)])print(t)[('name', '<U40'), ('num', '<i4'), ('price', '<f4')]print(t['name'])<U40item = np.array(['zhang',2,10])print(item)[原创 2021-01-13 22:59:24 · 883 阅读 · 0 评论 -
pytorch 实现 GAN,基于MNIST生成手写字符
import torchimport torch.nn as nnfrom torch.nn import initfrom torch.autograd import Variableimport torchvisionimport torchvision.transforms as Timport torch.optim as optimfrom torch.utils.data import DataLoaderfrom torch.utils.data import sampler.原创 2020-11-16 20:41:37 · 304 阅读 · 0 评论 -
python os join的坑
import ospath1 = 'D:\mytest'path2 = r'\b'path3 = 'b'path = os.path.join(path1,path2)print('D:\mytest + /b结果',path)path = os.path.join(path1,path3)print('D:\mytest + b结果 ',path)#前一种方法 丢了信息 后面的不能有/结果:如上图,当join后面的字符串带了\,前面的路径会丢失...原创 2020-11-16 14:06:19 · 171 阅读 · 0 评论 -
python 动态规划 钢条切割
python 动态规划 钢条切割# 钢条长度length = [0,1,2,3,4,5,6,7,8,9,10]# 对应长度的钢条价值value = [0,1,5,8,9,10,17,17,20,9,10]# 求长度为n的钢条,怎么切可以有最大价值def cutting(length, value, n): s = [0]*(n+1) # 小段长度 v = [0]*(n+1) # 价值 if n > len(length): l = len(leng原创 2020-11-15 17:08:27 · 415 阅读 · 0 评论 -
python计数排序
计数排序对每个元素确定小于该元素的个数def countSort(A, k): #k是元素数值上界 c = [0] * k result = [0] * len(A) for i in range(len(A)): c[A[i]] = c[A[i]] + 1 # 计算小于该元素的个数 for i in range((k-1)): c[i+1] = c[i+1] + c[i] # 每个减轻去1是因为索引是从0开始,而计数是从1原创 2020-11-12 14:00:41 · 159 阅读 · 0 评论 -
python分治法实现最大子数组问题
最大子数组问题给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。使用分治法,A[low…high]的任意连续子数组A[i…j]所处的位置必然是以下三种情况之一:(a)完全位于子数组A[low…mid]中,因此low≤i≤j≤mid(b)完全位于子数组A[mid+1…high]中,因此mid≤i≤j≤high(c)跨越了中点,因此low≤i≤mid≤j≤high分别找它们中的最大子数组就好了# 找跨过中点的def cross(A, low,原创 2020-11-10 22:10:13 · 561 阅读 · 0 评论 -
python批量移动文件,每个文件夹内都有一个文件,需要把这些文件提取出来,放到另一个文件夹里,手动太费时间了
移动文件import osfile_dir = r'C:\Users\98471\AppData\Roaming\kingsoft\office6\templates\download'file_list = os.listdir(file_dir)for name in file_list: file = os.path.join(file_dir,name) file_name = os.listdir(file) file = os.path.join(file,fi原创 2020-11-08 11:32:06 · 774 阅读 · 0 评论 -
Opencv学习-图像直方图,平衡,反向投影用于查找内容
图像的直方图使用 alcHist函数,画图像的直方图,统计整张图的某像素值的数量import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('1.jpg')hist = cv2.calcHist([img], [2], None, [256], [0,256]) #img要用[]括起来, 第二个参数是通道,256是灰度级的个数,最后一个为像素值的范围plt.plot(hist)plt.show()原创 2020-11-05 21:24:16 · 172 阅读 · 0 评论 -
Opencv学习-几何变换
图像的几何变换一、 缩放resize, interpolation选择插值方法二、 平移warpAffine, 注意平移矩阵的设置三、 旋转getRotationMatrix2D得到M,用warpAffine四、 镜像变换 flip, 注意flipCode参数import cv2import numpy as npimport matplotlib.pyplot as plt平移img = cv2.imread('1.jpg')plt.imshow(img)<matplotl原创 2020-11-05 11:30:51 · 114 阅读 · 0 评论 -
Opencv学习-通道分离colorsplit
图像色彩通道的分离和混合使用split 和 mergeimport cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('1.jpg')img2 = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)# cv2.imshow('img2',img2)# cv2.waitKey(0)# plt.imshow(img)r,g,b = cv2.split(img2)cv2.imsho原创 2020-11-05 11:29:45 · 189 阅读 · 0 评论 -
Opencv学习-灰度图变彩图
灰度图变彩图一、遍历,加两个通道二、使用智能填充 预定义好的Colormap,使用applyColorMapimport cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('1.jpg')r,g,b = cv2.split(img)plt.imshow(r,cmap='gray')im_color = cv2.applyColorMap(r, cv2.COLORMAP_JET) # 有不同的填充原创 2020-11-05 11:27:02 · 1687 阅读 · 0 评论 -
Opencv学习-彩图变灰度图
彩图变灰度图一、可以用 imread的时候选择0二、使用cvtColor 功能是对图像进行颜色空间变换三、二值化使用threshold为了方便显示,使用plt,使用cv2也可以,注释了import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('1.jpg',0)# cv2.imshow('img2.bmp',img)plt.imshow(img,cmap ='gray')cv2.waitKe原创 2020-11-05 11:25:36 · 596 阅读 · 1 评论 -
模拟两个神经元的连接,突触前神经元分别传递兴奋性和抑制性信号给突触后神经元(神经元模型使用HH方程)
一、实验内容模拟两个神经元的连接,突触前神经元分别传递兴奋性和抑制性信号给突触后神经元。二、实验结果:兴奋性:图 1兴奋性抑制性:图 2抑制性代码运行mimi.py,其中type为0是抑制性,type为1是兴奋性Neuron.pyimport numpy as npimport matplotlib.pyplot as pltfrom Synapsis import Synapsis as Synclass Neuron(): ...原创 2020-11-04 21:16:20 · 2883 阅读 · 3 评论 -
安装skimage库报错的解决办法
在代码中,会看到有from skimage.measure.simple_metrics import compare_psnr如果直接运行 pip install skimage会发现安装不上去其实应该安装的是scikit-image,运行pip install scikit-image原创 2020-11-02 10:49:32 · 5121 阅读 · 5 评论 -
matplotlib显示彩色图像的问题,plt.imshow
问题:在使用plt.imshow显示彩色图像的时候,出现了这样的错误:Invalid shape (3, 512, 512) for image data解决:是因为一般神经网络中对图像处理之后的格式是(3,512,512)这种,分别为通道,高,宽。但是plt显示的图像格式为(512,512,3)也就是高,宽,通道。所以会出现错误。使用下面的代码将格式转变过来就可以了: img = np.asarray(img) plt.imshow(img.transpose((1原创 2020-11-01 10:14:23 · 7485 阅读 · 0 评论 -
解决python 用 f.write 将矩阵写入文件中,矩阵数据不全,中间有省略号的问题
一、问题:[layer1_1[[[ 52.373936 16.00824 62.745567 ... 12.321167 2.960958 11.374744 ][ 16.00824 50.275608 28.002008 ... 6.575324 3.6270523 12.703771 ][ 62.745567 28.002008 157.73836 ... 7.091863 10.858132 27.182278 ...原创 2020-10-20 21:32:10 · 3622 阅读 · 0 评论 -
数据结构图相关算法的python实现
图1.邻接矩阵class GraphTable: def __init__(self, mat, unconn=0): # unconn表示选择有无权重 vnum = len(mat) for x in mat: if len(x) != vnum: #检查是否时方阵 print('No square matrix') return self._mat = [m原创 2020-09-03 22:23:47 · 276 阅读 · 0 评论 -
梯度下降python实现,一维梯度下降,多维梯度下降,随机梯度下降
import numpy as npimport torchimport mathimport sysimport matplotlib.pyplot as plt一维梯度下降小学习率def gd(eta): times = 10 x = 10 #从5开始梯度下降 results = [x] for i in range(times): x -= eta * 2 * x # x^2的导数 results.append(x)原创 2020-08-19 23:48:19 · 979 阅读 · 0 评论 -
python求解迷宫问题
迷宫问题求解#构造迷宫import numpy as npmap = [ [0,1,0,0,0,0], [0,1,1,1,0,0], [0,1,0,1,1,0], [1,1,0,0,1,0], [0,0,0,0,0,0], [0,0,0,0,0,0]]start = [0,0]end = [5,5]print(map)[[0, 1, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 1, 0, 1, 1, 0], [1原创 2020-08-07 22:32:43 · 1378 阅读 · 0 评论 -
python模拟假设检验
假设检验一、单个正态总体均值检验工厂原来的产品重量服从正态分布,均值为5,改进技术后,抽取了20件产品质量,检验均值是否没有改变。原假设均值没变,备择假设均值改变import matplotlib.pyplot as pltimport numpy as np#生成改变后的数据x = [i for i in range(1,21)]weight = np.random.randn(1,20)+5weight = weight[0]print(x)print(weight)[1,原创 2020-08-05 17:25:19 · 244 阅读 · 0 评论 -
python模拟区间估计
区间估计import matplotlib.pyplot as pltimport numpy as np#随机生成产品质量,正态分布x_data = [i for i in range(1,11)]x_index = np.arange(5) #柱的索引weight = np.random.randn(1,10)+5print(x_data)weight = weight[0]print(weight)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][5.049原创 2020-08-04 23:35:10 · 1307 阅读 · 0 评论 -
python正则表达式(三)
三个常用函数之 compilecomplie是将正则表达式转换为模式对象,这样可以更有效率匹配。使用compile转换一次之后,以后每次使用模式时就不用进行转换pattern:写正则表达式flag :匹配模式从complie[]函数的定义中,可以看出返回的是一个匹配对象,它单独使用没有意义,要与findadd,search,match搭配使用import rea = '0321-123123'b = re.compile(r'[0-9]*-[0-9]*')r = re.findall(原创 2020-07-30 10:32:22 · 177 阅读 · 0 评论 -
python正则表达式(二)
三个常用函数之一 sub替换字符串,第一个参数是被替换什么,第二个参数是要替换成什么,第三个参数是字符串, 第四个参数是替换次数import rea = 'asdwqe13daasd'r1 = re.sub('asd','123',a,1)r2 = re.sub('asd','123',a)print(r1)print(r2)123wqe13daasd123wqe13da123第二个参数可以是函数,形参.group可以获取到分段截取的字符串def func(a):原创 2020-07-30 10:31:50 · 118 阅读 · 0 评论 -
python正则表达式(一)
三个常用函数之一 findall第一个参数为正则表达式,第二个参数为字符串,返回的是列表,第三个参数是匹配模式,常用的有:re.I 忽略大小写re.S 忽略.的关系,让.可以匹配出\n可以用|连接匹配模式import rea = "aasdssa,i123ja5sd4n,lai,lbi,lci,aasd"[] 字符种类,匹配方括号内的任意字符,括号内每个字符是 或 的关系#输出所有数字r = re.findall('[0-9]',a)print(r)#查0-3r1 = re.原创 2020-07-30 10:31:09 · 340 阅读 · 0 评论 -
Django+apache启动了,访问不到,一直加载的问题(个人笔记)
每次一更新项目,启动了apache之后,访问就一直加载,不是404,就是在缓冲,没动静。试了很多次,发现,随便找一个模块的views:故意把导包改错:这回可以访问到了,提示模型找不到:再改回去,就可以访问了:最后也没搞清楚为啥,有大佬知道的话麻烦留言告诉一下。...原创 2020-07-19 20:31:35 · 965 阅读 · 14 评论