- 博客(101)
- 资源 (2)
- 收藏
- 关注
原创 JavaSE基础知识笔记
String 是 Java 中基础且重要的类,被声明为 final class,是不可变字符串。因为它的不可变性,所以拼接字符串时候会产生很多无用的中间对象,如果频繁的进行这样的操作对性能有所影响。StringBuffer 就是为了解决大量拼接字符串时产生很多中间对象问题而提供的一个类。它提供了 append 和 add 方法,可以将字符串添加到已有序列的末尾或指定位置,它的本质是一个线程安全的可修改的字符序列。在很多情况下我们的字符串拼接操作不需要线程安全,所以 StringBuilder 登场了。
2023-06-08 15:09:34
619
原创 os.listdir(path)避坑指南
最近再做一个项目,需要处理大量的数据(包含又图片和txt格式文件),所以需要用到os.listdir()函数来对文件下的图片或者txt进行处理,但是需要特别注意的是os.listdir()函数虽然是列举的当前文件下的所有文件,但是不一定会列举出原来的顺序!!!文件路径下的子文件是这样分布的:例如:import osif __name__ == '__main__': path = "E:/桌面/rgbLabel-all/" filelist = os.listdi.
2022-04-23 17:25:08
5842
5
原创 pytorch模型加载跑测试集和训练过程中跑测试集结果不一致的问题?
前馈网络使用with torch.no_grad()和model.eval()比较问题描述将训练好的模型拿来做inference,发现显存被占满,无法进行后续操作,但按理说不应该出现这种情况。RuntimeError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 7.93 GiB total capacity; 6.94 GiB already allocated; 10.56 MiB free; 7.28 GiB ...
2022-04-21 23:31:27
2747
11
原创 判断图片通道数及图片三通道转单通道方法
判断图片通道数from PIL import Imageimg=Image.open('image_test/1.png')print(len(img.split()))三通道转单通道简化版: import cv2 img = cv2.imread('01.png', cv2.IMREAD_GRAYSCALE) cv2.imwrite("001.png", img)批量处理完整版:##修改图片通道 path = "E:\\桌面\\te\\image_3_n...
2022-04-15 20:56:30
2273
6
原创 h5文件格式详解及h5文件与图片文件之间的相互转换(python实现)
背景:h5文件详解H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.H5将文件结构简化成两个主要的对象类型: 数据集dataset,就是同一类型数据的多维数组 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group! 直观的理解,可以参考我们的文件系统
2022-04-15 20:54:23
15431
12
原创 安装完tensorflow后还提示“no moudle named tensorflow”
问题:一般当成功安装好tensorflow后,会有如下提示:但是,当你进入python界面对tensorflow版本进行验证时还会出现:“no moudle named tensorflow”,这是哪里的问题呢?明明已经安装好了?原因:1.tensorflow版本和cuda版本不匹配!———大部分都是这个原因官方匹配链接:在 Windows 环境中从源代码构建 | TensorFlow (google.cn)具体怎么安装cuda和cudnn,以及他们之间与linux的...
2022-04-07 11:16:06
3495
3
原创 解决有多个版本cuda时如何灵活切换的问题
如果有多个版本的cuda怎么办呢?怎么切换呢?此种安装方式,是将/usr/local的cuda文件链接到了对应cuda版本的根目录。输入以下命令可以查看当前cuda文件的链接情况:cd /usr/local/stat cuda随后会输出以下信息:在/usr/local下,我们可以安装多个版本的cuda,这里我列出我电脑内的cuda版本,有cuda9.0、cuda10.0等多个版本命令行输入以下命令,断开cuda文件与cuda-10.1的符号链接:sudo rm -rf cu
2022-04-07 11:02:00
1010
1
原创 python爬取双色球2003-2022年所有数据
直接上代码:import requests, bs4import os, timeimport operatorfrom itertools import combinations, permutationsimport torchclass DoubleColorBall(object): def __init__(self): self.balls = {} self.baseUrl = 'http://tubiao.zhcw.com/tub.
2022-04-05 15:35:47
3253
4
原创 python实现二维数组中元素转化为float64做法
思路: 先将二维数组转化为二维列表 将二维列表中的所有元素转化为float64格式 最后将其转化为ndarray ##对二维方阵进行二维卷积,直至卷积为1*1的数值 while(len(data2[0]) != 1): b = [] data2 = data2.numpy() ##将tensor转化为为数组格式 dat...
2022-04-01 19:27:58
2775
原创 python实现将二维矩阵m * n补零为方阵n * n
思路: 先将二维矩阵m * n转化为列表 进行补零操作 最后再次转化为数组 data = data.tolist() ##作为矩阵的data,先将其转化为列表 ###添加0,使二维温度矩阵变为方阵 for item1 in data: if(len(item1) != len(data)): if(len(item1) &...
2022-04-01 19:26:46
1467
3
原创 二分查找集锦
leetcode 4 寻求两个正序数组的中位数:【难】寻找两个有序数组的中位数 - 寻找两个正序数组的中位数 - 力扣(LeetCode) (leetcode-cn.com)题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3..
2022-03-31 18:47:38
1136
1
原创 python实现离散点图画法
目录改进:再次改进:再次改进:改进:基础代码pred_y = test_output.data.numpy()pred_y = pred_y.flatten()print(pred_y, 'prediction number')print(test_y[:355].numpy(), 'real number')import matplotlib.pyplot as pltplt.rc("font", family='KaiTi')plt.figure()f, ax
2022-03-31 18:31:52
3878
28
原创 华为2022年软挑赛初赛试题及初级代码(成渝赛区)
目录1.赛题描述2.全部代码1.赛题描述2.全部代码# import psutil ##查看程序所占用的内存空间# import osimport numpy as npimport configparserimport timestart =time.clock()config_path = 'F:\\桌面\\data\\config.ini'path1 = "F:\\桌面\\data\\demand.csv"path2 = "F..
2022-03-31 18:26:51
788
原创 python创建类及继承、重构、多态的举例
目录1.创建类2.继承3.重构4.Python中子类与父类的关系5.python 中多态1.创建类如下定义一个动物类Animal为基类,它基本两个实例属性name和age、一个方法call。class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w):...
2022-03-31 18:18:44
918
原创 python批量建立对象
方法一:class Blog: def __init__(self,num): print("a new object num is",num) self.value = num def __str__(self): return str(self.value+3) # 循环建立四个对象,locals()函数可以将字符串转换为变量名!#具体的操作和含义我并不清楚,大家可以自行百度~for i in range(1,5): ...
2022-03-31 18:15:49
1927
3
原创 数据写入excel表格并保存
直接上代码:# -*- coding: utf-8 -*-import xlsxwriter as xwdef xw_toExcel(data, fileName): # xlsxwriter库储存数据到excel workbook = xw.Workbook(fileName) # 创建工作簿 worksheet1 = workbook.add_worksheet("sheet1") # 创建子表 worksheet1.activate() # 激活表
2022-03-31 18:12:31
381
原创 pytorch生成种子,以及权重的保存和导入
pytorch生成种子,可重复训练:##牺牲计算效率,提升准确率from torch.backends import cudnncudnn.benchmark = False # if benchmark=True, deterministic will be Falsecudnn.deterministic = True###设置种子,保证可重复性seed = 1random.seed(seed)np.random.seed(seed)torch.manua...
2022-03-09 16:15:55
301
1
原创 python对文档中元素操作---删除、替换等
pthon更换文档中某元素:with open('E:\\桌面\\train.txt', 'r') as f: lines = f.readlines()with open('E:\\桌面\\1704.txt', 'a') as ff: # 此处 w 和 a,均可,反正是新建的临时文件,文件不存在时会自动创建 for line in lines: # kv = line.strip().split(' ') kv = line.split(' ...
2022-03-09 16:14:36
557
原创 pytorch中网络训练添加日志
pytorch中添加日志如果是指保存训练过程中的loss,accuracy等metric的话,可以采用下面的方法:import logging def get_logger(filename, verbosity=1, name=None): level_dict = {0: logging.DEBUG, 1: logging.INFO, 2: logging.WARNING} formatter = logging.Formatter( "[%(asctime...
2022-03-09 16:11:19
1279
原创 python实现对doc、txt、xls等文档的读写操作
目录1.python实现对doc文档的读取2.python实现对txt文档的读取3.python实现对xls表格的读取1.python实现对doc文档的读取#读取docx中的文本代码示例import docx#获取文档对象file=docx.Document("path")print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段#输出每一段的内容for para in file.paragraphs: pri..
2022-01-20 11:00:51
4834
5
原创 linux常见命令---深度学习炼丹炉必备---更新中
目录1.修改环境变量2.查看当前conda环境3.如果执行conda activate ***出现问题时需要初始化shell4.查看当前cuda版本*5.有了ubuntu系统安装基本的工具6.linux下安装显卡驱动7.linux下安装cuda如果有多个版本的cuda怎么办呢?8.linux下安装cudnn9.创建conda环境10.查看本机IP地址1.修改环境变量vim ~/.bashrc保存环境变量source ~/.bashrc如果在
2022-01-20 10:55:59
2321
6
原创 【室友用一局王者荣耀的时间学会了用python写春联】
目录0.效果展示1.导入模块2.获取对应汉字内容及像素3.生成并保存对联2022年了,又到了贴对联的时间了,不得安排一波用python脚本写对联吗?0.效果展示竖排:横批:1.导入模块PIL:全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库。但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容 Python 3 的版本,名字叫 Pi
2022-01-20 10:43:10
136
原创 深度学习环境配置---显卡驱动、pytorch、cuda和cudnn之间的配置关系
目录1. 显卡驱动2.cuda3.cudnn4.pytorch简单的关系如下图:1. 显卡驱动显卡驱动是电脑上服务于显卡的驱动程序,有了显卡驱动显卡的功能才能被最大化利用!显卡驱动的作用就是用来驱动显卡的,这是电脑硬件中所对应的一个软件。通过添加驱动程序计算机中的硬件就能正常的工作,当然不同的硬件使用的驱动程序也不一样。显卡对应的就是显卡驱动。显卡在电脑中提供图形的重要显示部分,直接关系到电脑的图形显示,而且显卡还可以提供更清晰的画质,给用户带来视频体验。显卡驱动的作用就
2022-01-14 10:27:52
2388
原创 单目可见光视频三维深度估计(python实现)
目录技术要点:主要应用:准备工作:构建环境:激活环境:需要安装库:权重文件下载:开始预测:1.采集图片2.修改标签文件3.训练模型4.启动主程序全部代码:说明:本篇文章主要借鉴于抖音恩培大佬的代码,大佬的github地址为:enpeizhao (enpei) (github.com)感兴趣的朋友也可以关注大佬的抖音号!技术要点: 脸部姿态估计识别与检测 帧率检测 目标物体三个角度x、y、z估计 主要应用: 家
2022-01-09 20:17:34
2120
7
原创 神经网络训练数据准备---数据标签在numpy和tensor之间的转换及处理---Pytorch实现
目录1.从txt文档中读取训练数据和测试数据2.从txt文件中读取标签数据3.将训练数据和测试数据转化为tensor形式,为后面训练做准备,因为训练数据在pytorch要求一般为tensor格式4.将标签转化为float型(此处是因为做的是回归任务),如果想要做分类任务的话需要将标签转化为long型!5.将已经转化为tensor格式的(train_datas, train_labels)和(test_datas, test_labels)转化为Data.DataLoader可以使用的格式
2022-01-06 21:23:03
2418
4
原创 Python实现十大经典排序算法---[冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序]--动画演示
目录多种排序的平均时间复杂度如下:1.冒泡排序算法步骤2.插入排序算法步骤:3.选择排序算法步骤:4.希尔排序算法步骤5.归并排序算法步骤6.快速排序算法步骤:7.堆排序算法步骤8.计数排序算法步骤:9.桶排序10.基数排序算法步骤:关于对---基数排序 vs 计数排序 vs 桶排序的比较:排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序, 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,
2022-01-06 21:14:46
169
1
原创 利用python和前端三件套来一场线上烟花秀
目录python烟花秀效果展示:全部代码如下:前端三件套(JS、CSS、HEML)的烟花秀HTML部分:定义网页内容CSS部分:描述网页布局JS部分:控制网页行为End✨✨✨✨✨✨✨元旦节就要来了,线下没有烟花看,线上不得整点烟花酷炫一下嘛!!啥?过啥圣诞节?过啥洋节,咱们过元旦节好吧!✨✨✨✨✨✨✨python烟花秀效果展示:在这里,我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大
2021-12-30 22:36:44
3155
11
原创 ShuffleNet:通道的打乱与混洗
目录背景:通道混洗简述ShuffleNet v1网络结构:ShuffleNet v2网络结构:背景:为了降低计算量,当前先进的卷积网络通常在3×3卷积之前增加一个1×1卷积,用于通道间的信息流通与降维。然而在ResNeXt、MobileNet等高性能的网络中,1×1卷积却占用了大量的计算资源。 2017年的ShuffleNet v1从优化网络结构的角度出发,利用组卷积与通道混洗(Channel Shuffle)的操作有效降低了1×1逐点卷积的计算量,是一个极为高效的轻量化网络。而20
2021-12-22 13:47:40
3004
3
原创 MobileNet:深度可分离(原理及代码)
目录背景:标准卷积:深度可分离卷积:MobileNet v1结构小结MobileNet v2结构背景:SqueezeNet虽在一定程度上减少了卷积计算量,但仍然使用传统的卷积计算方式,而在其后的MobileNet利用了更为高效的深度可分离卷积的方式,进一步加速了卷积网络在移动端的应用。 为了更好地理解深度可分离卷积,我们首先回顾标准的卷积计算过程,然后详细探讨深度可分离卷积过程,以及基于此结构的两个网络结构MobileNet v1与MobileNet v2。论文地址:
2021-12-21 23:57:52
1370
1
原创 SqueezeNet:压缩、扩展和融合(提供代码)
目录背景:论文地址:1602.07360.pdf (arxiv.org)网络结构:小结代码地址:GitHub - forresti/SqueezeNet: SqueezeNet: AlexNet-level accuracy with 50x fewer parameters背景:当物体检测应用到实际工业场景时,模型的参数量是一个十分重要的指标,较小的模型可以高效地进行分布式训练,减小模型更新开销,降低平台体积功耗存储和计算能力的限制,方便在FPGA等边缘平台上部署。 基于以
2021-12-21 23:52:24
494
1
原创 利用PaddleDetection部署自己的轻量级移动检测嵌入式平台(多种高性能网络模型)--Pytorch实现
目录文章核心:1.效果图及视频展示2.背景3.安装PaddlePaddle4.预训练模型的下载比如yolov3在coco和voc数据集上的预训练模型和权重列表如下:4.模型导出(python端)5.模型预测1.图片预测2.视频预测,帧率在10左右3.文件夹下图片预测当然也可以自己进行训练,相应的指令为:安装过程中遇到的其他问题:全部源码均在PaddleDetection的官方Github上,地址如下:(本文用的版本是最新2.3的版本)Paddl
2021-12-17 22:36:28
2043
1
原创 深度神经网络压缩和加速详解
目录1.背景介绍2.压缩方法概述3.压缩方法详述3.1参数剪枝3.2参数量化3.3低秩分解(张量分解)3.4参数共享3.5紧凑网络3.6知识蒸馏3.7混合模型3.8不同压缩模型比较1.背景介绍深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型.被压缩后的模型计算资源需求和内存需求更小,相比 原始模型能够满足更加广泛的应用需求. 接下来系统...
2021-12-17 15:07:53
3050
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人