![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Shuai@
这个作者很懒,什么都没留下…
展开
-
python 中指定GPU乱序解决方案
python中GPU指定原创 2022-08-29 22:58:20 · 501 阅读 · 0 评论 -
nnUNet ubuntu环境配置用2D图像训练
nnUnet原创 2022-07-26 14:59:59 · 1305 阅读 · 2 评论 -
使用深度学习训练图像时,图像太大进行切块训练预测
将图像进行切块原创 2022-07-14 17:22:35 · 1220 阅读 · 0 评论 -
python skimage求最大连通区域
python skimage 求最大连通区域原创 2022-07-12 23:59:05 · 839 阅读 · 0 评论 -
windows使用vscode激活环境失败,因为在此系统上禁止运行脚本
解决方案参考实验成功的方案转载 2021-11-28 11:14:58 · 794 阅读 · 0 评论 -
python args和kwargs
args和kwargs组合起来可以传入任意的参数,这在参数未知的情况下是很有效的,同时加强了函数的可拓展性。def test_kwargs(first, *args, **kwargs): print('Required argument: ', first) print(type(kwargs)) for v in args: print ('Optional argument (args): ', v) for k, v in kwargs.items(原创 2021-11-02 14:55:52 · 1860 阅读 · 0 评论 -
自己尝试__call__和yield实现pytorch底层的Dataset和dataloader的大致原理
首先写个数据集的基类,使用__call__函数调用__getitem__函数class Datasetbase(): def __init__(self) -> None: pass def __call__(self,index): yield self.__getitem__(index) def __getitem__(self): pass def __len__(self): pass这样后原创 2021-11-01 16:25:34 · 448 阅读 · 0 评论 -
python list表append和extend的区别
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。list1 = ['a','b']list2 = ['a','b']x= ['c','d']list1.extend(x)list2.append(x)print("list1 = {}\nlist2={}".format(list1,list2))输出结果,可以查看extend将x中的元素逐个添加至列表而append是将x作为一个整体添加至列表list1 = ['a', 'b', 'c',原创 2021-10-21 13:47:47 · 143 阅读 · 0 评论 -
Python logging同时输出到屏幕和文件
Python logging同时输出到屏幕和文件参考最简单的logging使用方法:import logginglogging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s: - %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG)logging.debug('debug转载 2021-08-19 11:01:44 · 2457 阅读 · 0 评论 -
Python使用attrgetter()对类class进行排序
Python的attrgetter()# -*- coding: utf-8 -*-# 在排序时, 可以用lambda表达式将对象map成keys# 亦可以使用operator包中的attrgetter和itemgetter函数以提高效率# 参考 http://wiki.python.org/moin/HowTo/Sorting# 考虑 Student 对象class Student: def __init__(self, name, grade, age):转载 2021-08-12 14:37:10 · 497 阅读 · 0 评论 -
python 将bytes转化成str
转载 # bytes object b = b"example" # str object s = "example" # str to bytes bytes(s, encoding = "utf8") # bytes to str str(b, encoding = "utf-8") # an alternative method # str to bytes str.encode(s) # bytes to str bytes.de转载 2021-07-24 20:17:00 · 4632 阅读 · 0 评论 -
h5py如何存储字符串
h5py如何存储字符串确定存储的数据类型,python3 vlen = str ,python 2 vlen=unicode。新建数据库后,明确数组的维度,传入类型,再赋值。dt = h5py.special_dtype(vlen=str)data = np.array([['str1'],['str2']])with h5py.File('mydata.h5','w') as f: ds = f.create_dataset('test_dict', data.shape , dtype原创 2021-07-23 16:25:51 · 904 阅读 · 0 评论 -
深度学习-图片数据的标准化数据处理流程
深度学习数据的标准化数据处理流程以下程序基于python编写数据的读入数据的取,可以使用skimage的io函数读取,也可以使用opencv-python来读取或者PIL读数据。- from skimage.io import imread- cv2.imread- PIL我个人推荐的顺序是使用cv2,skimage ,PILcv2 、skimage和 PIL中都集成了很多处理图像的函数注意:CV2读取的数据顺序是BGRskimagefrom skimage.io import i原创 2021-07-21 16:15:29 · 1088 阅读 · 1 评论 -
numpy改变数组类型的方法
使用astype函数转换dtypeimport numpy as npa = np.zeros([2,2],dtype='float32')print("a type is {}".format(a.dtype))b = a.astype(int)print("b is type {}".format(b.dtype))b = a.astype(np.float32)print("b is type {}".format(b.dtype))numpy.ndarray.astype输入的原创 2021-07-21 15:46:29 · 3581 阅读 · 0 评论 -
使用pytorch的dataloader来平衡不平衡数据的抽取
参考聊聊Pytorch中的dataloader定义sample:(假设dataset类返回的是:data, label)from torch.utils.data.sampler import WeightedRandomSampler## 如果label为1,那么对应的该类别被取出来的概率是另外一个类别的2倍weights = [2 if label == 1 else 1 for data, label in dataset]sampler = WeightedRandomSampler(转载 2021-07-05 16:49:38 · 5618 阅读 · 0 评论 -
MedPy医学图像评价的python库
MedPy is a medical image processing library written in Python. MedPy requires Python 3.官网链接其中MedPy库的评价指标函数这个库提供了对比两个mask相似性的指标,例如Dice coefficientJaccard coefficientHausdorff Distance.Metric measures (medpy.metric)This package provides a number of原创 2021-07-01 17:15:31 · 2441 阅读 · 0 评论 -
2021-07-01
Anaconda 镜像使用帮助参考清华官方anaconda 镜像源官网说明,网站链接anacondaAnaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。TUNA 还提供了 Anaconda 仓库与第三方源(conda-forge、msys2、转载 2021-07-01 09:56:37 · 74 阅读 · 0 评论 -
TypeError: Expected Ptr<cv::UMat> for argument ‘image‘
python3+opencv TypeError: Expected Ptr<cv::UMat> for argument ‘image‘输入的不是UMat格式,使用cv2.UMat(img).get()转化一下img = cv2.UMat(img).get()原创 2021-06-20 23:58:30 · 2390 阅读 · 1 评论 -
python 中opencv的注意事项
注意细节:使用cv2.imread()读取图片之后,数据的形状和维度布局是(H,W,C),但是使用函数cv2.resize()进行缩放时候,传入的目标形状是(W,H),而不是(H,W),这一点要格外留意.原创 2021-06-20 18:11:00 · 118 阅读 · 0 评论 -
使用python的opencv库进行分割图可视化
import cv2import osimport numpy as npimg_list = os.listdir('../0_test/')img_num = len(img_list)for i in range(img_num): print(img_list[i]) img =cv2.imread('../0_test/'+img_list[i]) origin = img.copy() disc =cv2.imread('../1_disc/JPG/'原创 2021-03-16 21:03:26 · 3044 阅读 · 2 评论 -
读取的img的格式是uint8什么时候转化为float32是合理的?
在进行数据的预处理时,我遇到了一个bug,后来发现是没有将uint8转化为float32的原因,首先说说unit8。uint8 #8位无符号整形如果使用opencv的函数预处理,就是对uint8的数据直接处理。改变了数据类型型反而有问题了。但是自己编写函数时处理unit8的数据要格外小心,因为处理后的结果被强制在0-255的整数内。小于0的数据被限制 为0,而大于255的数据自然为255。所以建议进行float32的数据转换,...原创 2020-12-11 23:46:42 · 1393 阅读 · 1 评论 -
舍弃阈值低的像素,进行均值和标准差统计
img = cv2.imread(data_root+name)print(’\n’+name)threshold = 6assert np.max(img)>=threshold #value 0-255start = time.time()for i_c in range(3):print(np.mean(img[:,:,i_c][img[:,:,i_c]>=threshold]))print(np.std(img[:,:,i_c][img[:,:,i_c]>=thres原创 2020-12-11 15:50:02 · 202 阅读 · 0 评论 -
PyTorch图像处理器torchvision.ToTensor-归一化
ToTensor使用时一定要小心呀它会把图像从[0-255]变到[0-1]之间如果想把图像由numpy 转成 tensor的话,可以使用如下命令img = torch.tensor(img)原创 2020-12-11 11:28:04 · 2092 阅读 · 0 评论 -
numpy矩阵中给满足一定条件的元素重新赋值
import cv2img = cv2.imread('lena.jpg')img[img<125]=0原创 2020-12-11 10:12:19 · 3110 阅读 · 0 评论 -
numpy中的axis怎么理解
在python 的numpy中经常会遇到axis=1或者axis=0的情况,这代表什么意思呢?对于一张输入的图片img,它的维度是(H,W,C)。import numpy as npimport cv2img = imread('lena.jpg')img.shape#(H,W,C)np.sum(img)#类似于np.sum(img[:,:,:]),或者np.sum(img,axis=(0,1,2))np.sum(img,axis=0)#表示固定axis 1和 axis 2然后对所有a原创 2020-12-11 10:09:03 · 115 阅读 · 0 评论 -
pytorch 使用GPU计算f1_score
pytorch使用GPU计算评价指标如下是参考链接f1score with GPUdef f1_loss(y_true:torch.Tensor, y_pred:torch.Tensor, is_training=False) -> torch.Tensor: '''Calculate F1 score. Can work with gpu tensors The original implmentation is written by Michal Haltuf on转载 2020-12-09 18:56:38 · 5438 阅读 · 3 评论 -
对图像添加噪声的一种方式
对图像添加高斯噪声x_train = np.asarray(x_train, dtype='float32')noise_factor=0.3#value:-1 to 1#x——train_noisex_train_noise = x_train + noise_factor * (np.random.randn(*x_train.shape)*2)x_train_noise = np.clip(x_train_noise, -1, 1) '''...原创 2020-11-20 15:31:51 · 254 阅读 · 0 评论 -
ubuntu 自定义路径 anaconda安装
conda下载下载anacoda这一步可以去官网下载。anaconda安装如图所示终端运行bash Anaconda*.sh然后 Enter键然后一直Enter键进行。然后 选择 yes然后建议选择第三项自定义安装,我安装到了**/data/anconda3**的文件夹下面,输入好路径后回车。等待安装建议选择yes 然后回车最后建议安装vscode很好的用的软件...原创 2020-11-14 01:28:49 · 403 阅读 · 0 评论 -
pytorch网络图可视化
tensorboardX可视化pytorch网络图首先python 环境中要安装一下的库pip install tensorboardpip install tensorflowpip install tensorboardX运行如下demo代码来源于:https://blog.csdn.net/sunqiande88/article/details/80155925import torchimport torch.nn as nnfrom tensorboardX import.原创 2020-11-12 10:55:37 · 329 阅读 · 1 评论 -
jupyter notebook找不到虚拟环境
如果jupyter notebook找不到虚拟环境,需要安装如下插件。conda install nb_conda原创 2020-11-11 21:29:48 · 722 阅读 · 0 评论 -
Pytorch中NLLLoss
NLLLoss首先,简单地谈下我对NLLLoss损失函数的理解。经过上面的计算我们知道, 计算出来的值范围在 ,值的含义表示对应类别的概率。也就是说,每行中最接近于 的值对应的类别,就是该图片所属概率最大的类别。这时,目标是最大化概率。但在机器学习中,通常最小化某个函数值,因此,对概率值再进行一次 变换。经过 变换之后,最大概率值即为最接近于 的值。其它概率值经 变换之后,均为小于 的实值。为了满足最小化的条件, 函数通常会取个负号( )。此时,若实际标签张量在模型输出结果 的对应转载 2020-10-27 22:16:25 · 3942 阅读 · 0 评论 -
Python命令后台运行
Python后台命令运行转载 2020-10-27 16:48:04 · 196 阅读 · 0 评论 -
python pickle
pickle的使用转载 2020-10-25 23:40:23 · 43 阅读 · 0 评论 -
conda 管理python环境
conda 管理pthon环境常用命令查看当前系统下的环境conda info -e创建新的环境# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本conda create -n env_name python=2.7 # 同时安装必要的包conda create -n env_name numpy matplotlib python=2.7环境切换环境切换# 切换到新环境# linux/Mac下原创 2020-10-25 15:58:51 · 120 阅读 · 0 评论 -
conda 导出环境/导入环境/导出base环境
添加链接描述转载 2020-01-11 21:20:35 · 1329 阅读 · 0 评论 -
python 查看库的说明
import numpyhelp(numpy)原创 2019-11-06 22:54:51 · 1218 阅读 · 0 评论 -
pandas 将DataFrame保存成excel
import pandas as pdname = ['1.png','2.png','3.png']id = ['001','002','003']wb = xw.Book('upload.xlsx')c={"name": name,"id": id}df = pd.DataFrame(c,columns=['name', 'id']) #指定列名为name和id,顺序name先,i...原创 2019-11-01 17:53:31 · 11782 阅读 · 0 评论 -
python检索目录下的文件和指定文件
import osdef all_files_under(path, extension=None, append_path=True, sort=True): if append_path: if extension is None: filenames = [os.path.join(path, fname) for fname in os....原创 2019-11-01 17:11:41 · 514 阅读 · 0 评论 -
python glob 文件名匹配
python标准库之glob介绍python标准库之glob介绍glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。1、通配符星号(*)匹配零个或多个字符import globfor name in glob.glob('dir/*'): print (name)...原创 2019-10-31 17:07:53 · 216 阅读 · 0 评论 -
python zip使用
zip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple。>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> zip(*a)[(1, 4...转载 2019-10-28 01:00:23 · 82 阅读 · 0 评论