
Python学习
文章平均质量分 57
DRACO于
这个作者很懒,什么都没留下…
展开
-
PIL和cv2读取图片时的差异及round函数讲解
PIL和cv2读取图片时的差异及round函数讲解原创 2022-06-30 19:22:32 · 1486 阅读 · 1 评论 -
Python多线程(重写Thread使其可以带返回值)
threading.Thread多线程,默认是没有返回值的如果需要返回每个线程的返回值,就需要重写函数import threadingimport time class MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,self).__init__() self.func = func self.args = args de原创 2022-05-17 15:20:30 · 1245 阅读 · 0 评论 -
Python-文件夹的拷贝操作
在Python中,想要实现文件夹的拷贝,需使用shutil包,其中文件复制的内置函数为shutil.copy这里介绍两种拷贝方式:第一种为文件夹整体拷贝:import osimport shutilsource_path = os.path.abspath(r'E:\Projects\source_dir')target_path = os.path.abspath(r'E:\Projects\new folder\target_dir')if not os.path.exists原创 2022-02-17 11:13:11 · 20015 阅读 · 2 评论 -
python读写json文件
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON在python中分别由list和dict组成。这是用于序列化的两个模块:json: 用于字原创 2022-02-15 13:49:01 · 9710 阅读 · 0 评论 -
关于pytorch中的distributedsampler函数使用
1.如何使用这个分布式采样器在使用distributedsampler函数时,观察loss发现loss收敛有规律,发现是按顺序读取数据,未进行shuffle。问题的解决方式就是怀疑 seed 有问题,参考源码DistributedSampler,,发现 shuffle 的结果依赖 g.manual_seed(self.epoch) 中的 self.epoch。 def __iter__(self): # deterministically shuffle based o.原创 2021-03-26 14:30:54 · 34976 阅读 · 15 评论 -
PyTorch 中nn 与 nn.functional 的区别
pytorch中nn 与 nn.functional有很多相同的函数,这里整理别人的回答说明下:https://www.zhihu.com/question/66782101/answer/579393790nn 与 nn.functional的区别两者的相同之处:nn.Xxx和nn.functional.xxx的实际功能是相同的,即nn.Conv2d和nn.functional.conv2d 都是进行卷积,nn.Dropout 和nn.functional.dropout都是进行dropo原创 2021-03-16 19:53:53 · 604 阅读 · 0 评论 -
pytorch分布式训练TypeError: _queue_reduction(): incompatible function arguments.
使用pytorch分布式训练遇到报错TypeError: _queue_reduction(): incompatible function arguments. The following argument types are supported: 1. (process_group: torch.distributed.ProcessGroup, grads_batch: List[List[at::Tensor]], devices: List[int]) -> Tuple[tor原创 2021-03-16 16:17:09 · 1185 阅读 · 2 评论 -
pytorch 模型输出特征 保存npy
npy数据的保存与读取保存 利用这种方法,保存文件的后缀名字一定会被置为.npyx = 10numpy.save("data_x.npy",x)读取 data = numpy.load("data_x.npy")创建一个tensora = torch.arange(10)'''tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])device(type='cpu') 默认在cpu上'''1. CPU tensor转...原创 2021-02-22 20:00:22 · 6565 阅读 · 1 评论 -
python查看当前内存,清空内存方法
1.内存查看命令行及说明常用的Linux下查看内存内容的专用工具是free命令。在Linux下面,常用top命令来查看系统进程,top也能显示系统内存。Linux下内存查看命令free详解:在Linux下查看内存我们一般用free命令:$ free total used free shared buffers cachedMem: 3266180 3250004 16176...原创 2021-01-23 14:55:19 · 3532 阅读 · 0 评论 -
python 目标分类检测检索任务中,整理list常用函数小结
1.训练list整理判断list中是否有重复元素#!usr/bin/env python#encoding:utf-8 from collections import Counternum_list=[[1,2,3,4,4,5,6,6,6]# 直接使用set方法if len(num_list)!=len(set(num_list)): print 'have duplicates!!!'else: print 'no duplicates!!' #使用c.原创 2020-11-24 15:07:54 · 387 阅读 · 0 评论 -
Pycaffe测试:图片读取,预处修正等。
在这里插入代码片# 设定图片的shape格式为网络data层格式transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})# 改变维度的顺序,由原始图片维度(width, height, channel)变为(channel, width, height)transformer.set_transpose('data', (2,0,1)) # 减去均值,注意要先将binaryproto格式均值文件转换为np原创 2020-10-15 20:22:02 · 343 阅读 · 0 评论 -
pytorch激活函数(ReLU) inplace测试
import torchimport torch.nn as nn#inplace为True,将会改变输入的数据 ,否则不会改变原输入,只会产生新的输出m = nn.ReLU(inplace=True)input = torch.randn(7)print("输入处理前图片:")print(input)output = m(input)print("ReLU输出:")print(output)print("输出的尺度:")print(output.size())print(原创 2020-09-28 13:49:24 · 694 阅读 · 0 评论 -
Numpy , Tensor , Variable 增删一个值为1的维度
1.Numpy.array给 2-d Array(H, W) 增加一个值为 1 的维度成为 3-d Array(H, W, 1):彩色图像 在 numpy中以 (H, W, C) 形状(channel-last)的 3-d Array 存储; 而 灰度图像 则以 (H, W) 形状的 2-d Array 存储, 经常需要为其增加一个值为 1 的维度, 成为 3-d Array(H, W...原创 2018-12-18 14:15:26 · 3316 阅读 · 0 评论 -
slim.conv2d
slim.conv2d 自带卷积和激励函数slim.conv2d 带batch_norm的方式:slim.max_pool2dslim.arg_scope():用于设置一些变量,上面两句等于下面的:slim.conv2d的两种操作方式:卷积核设置 ...原创 2019-02-13 15:15:18 · 9455 阅读 · 2 评论 -
tensorflow使用多个gpu训练
关于多gpu训练,tf并没有给太多的学习资料,比较官方的只有:tensorflow-models/tutorials/image/cifar10/cifar10_multi_gpu_train.py但代码比较简单,只是针对cifar做了数据并行的多gpu训练,利用到的layer、activation类型不多,针对更复杂网络的情况,并没有给出指导。自己摸了不少坑之后,算是基本走通了,在此记录下...原创 2019-02-13 21:41:15 · 791 阅读 · 0 评论 -
如何利用深度学习模型实现多任务学习?这里有三点经验
文章转载自机器之心,有做多任务学习相关的同学可以加群709165514讨论学习下, Taboola 算法开发者 Zohar Komarovsky 介绍了他们在利用深度学习模型实现多任务学习(MTL)时遇到的几个典型问题及解决方案。在过去的一年里,我和我的团队一直致力于为 Taboola feed 提供个性化用户体验。我们运用多任务学习(Multi-Task Learni...转载 2019-02-25 11:38:52 · 2937 阅读 · 4 评论 -
使用tensorflow的模型文件,修改参数名称和数值,合并两个模型等
在修改保存的参数名称时,做法分为以下6步:使用list_variables函数逐个读出已保存的参数名称使用load_variable函数逐个读取已保存的参数值逐个修改参数名称使用已修改的参数名称,结合tf.Variable函数逐个重建参数将已重建的参数逐个加入新参数列表使用tf.train.Saver().save将新参数列表写入硬盘import tensorflow as t...转载 2019-03-05 11:05:40 · 4878 阅读 · 1 评论 -
Pytorch:variable and nn.Module
# coding=utf-8import torchfrom torch.autograd import Variable """pytorch中Variable了解""""""Variable是Pytorch中autograd自动微分模块的核心。它封装了Tensor,支持几乎所有的tensor操作。主要包含如下3个属性:1. data: 保存Variable所包含的Tenso...原创 2019-04-26 14:59:06 · 289 阅读 · 0 评论 -
python
strip()方法Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。str.strip([chars])参数: chars – 移除字符串头尾指定的字符。str = "0000000this is string example....wow!!!0000000"print (str.strip( '0' ))输出:this is string ex...转载 2019-05-05 11:54:38 · 224 阅读 · 0 评论 -
pytorch 预训练模型读取修改相关参数填坑
修改部分层,仍然调用之前的模型参数。resnet = resnet50(pretrained=False)resnet.load_state_dict(torch.load(args.predir))res_conv31 = Bottleneck_dilated(1024, 256,dilated_rate = 2)print("---------------------",res_...原创 2019-05-07 16:23:14 · 8327 阅读 · 3 评论 -
senet小结
论文:《Squeeze-and-Excitation Networks》论文链接:https://arxiv.org/abs/1709.01507代码地址:https://github.com/hujie-frank/SENet最近在做行人检索时,优化时用到channel attention机制,虽然对最终结果没有提升,这里做一个简单的总结1. 概述 此论文是由Momenta...原创 2019-05-10 11:30:46 · 1225 阅读 · 0 评论 -
目标检测之感受野-dilated conv -----TridentNet
论文:Scale-Aware Trident Networks for Object DetectionGithub:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet图森的工作论文提出了TridentNet ,基于ResNet-101 的基础骨架网络在coco数据集上达到了单模型48.4的准确性...转载 2019-05-11 11:13:22 · 1895 阅读 · 0 评论 -
matplotlib-----------pylab和pyplot
首先给出pylab神器镇文:pylab.rcParams.update(params)。这个函数几乎可以调节图的一切属性,包括但不限于:坐标范围,axes标签字号大小,xtick,ytick标签字号,图线宽,legend字号等。具体参数参看官方文档:http://matplotlib.org/users/customizing.html##导入plt库import matplotlib...原创 2019-05-27 10:07:16 · 614 阅读 · 1 评论 -
python学习之打印输出参数
训练的时候我们可以保存所有的训练参数以及各种指标等首先这部分是如何设置打印输出结果的,import timeepoch=0,epochs=450batch=0train_loader=751def display_loss(batch): log=[] for i in range(10): # print("----",i,i /(batc...原创 2019-05-28 11:51:07 · 4230 阅读 · 0 评论 -
命令行运行Python脚本时传入参数的三种方式
三种常用的方式如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式。 python script.py 0,1,2 10python script.py -gpus=0,1,2 --batch-size=10python script.py -gpus=0,1,2 --batch_size=10 这三种格式对应不同的参数解...转载 2019-02-23 11:26:43 · 291 阅读 · 0 评论 -
行人重识别 PCB-RPP
什么是行人重识别(ReID)如下图,给定一个行人图或行人视频作为查询query,在大规模底库中找出与其最相近的同一ID的行人图或行人视频。ReID(Person Re-identification)任务描述[2] 为什么需要ReID呢?因为在安防场景下,跟踪一个目标,只靠人脸识别是不够的,在脸部信息丢失时(罪犯有时把脸特意蒙住一大部分,或者离太远了拍不清脸),行人信息就能...转载 2019-02-22 18:51:49 · 5709 阅读 · 0 评论 -
tensorflow BN小结
最近遇到了BN的相关问题,好好学习了下,在此总结下:1.原理公式如下:y=γ(x-μ)/σ+β其中x是输入,y是输出,μ是均值,σ是方差,γ和β是缩放(scale)、偏移(offset)系数。一般来讲,这些参数都是基于channel来做的,比如输入x是一个16*32*32*128(NWHC格式)的feature map,那么上述参数都是128维的向量。其中γ和β是可有可无的,有...转载 2019-02-22 11:45:25 · 1043 阅读 · 0 评论 -
tensorflow冻结部分层,只训练某一层
其实常说的fine tune就是冻结网络前面的层,然后训练最后一层。那么在tensorflow里如何实现finetune功能呢?或者说是如何实现冻结部分层,只训练某几个层呢?可以通过只选择优化特定层的参数来实现该功能。示例代码如下:#定义优化算子optimizer = tf.train.AdamOptimizer(1e-3)#选择待优化的参数output_vars = tf.g...原创 2019-01-10 14:27:18 · 7153 阅读 · 0 评论 -
Tensorflow API ------tf.layers.conv2d
conv2d(inputs, filters, kernel_size, strides=(1, 1), padding='valid', data_format='channels_last', dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer=None, bias_in...原创 2018-12-29 15:46:05 · 199 阅读 · 0 评论 -
Tensorflow中的数据对象Dataset
基础概念在tensorflow的官方文档是这样介绍Dataset数据对象的:Dataset可以用来表示输入管道元素集合(张量的嵌套结构)和“逻辑计划“对这些元素的转换操作。在Dataset中元素可以是向量,元组或字典等形式。另外,Dataset需要配合另外一个类Iterator进行使用,Iterator对象是一个迭代器,可以对Dataset中的元素进行迭代提取。看个简单的示例:...原创 2018-12-29 14:03:42 · 1380 阅读 · 0 评论 -
从多个tfrecord文件中读取数据的方法
tfrecord_file_path = '/train/*.tfrecords’#train是存放tfrecord的文件夹filename_queue = tf.train.string_input_producer( tf.train.match_filenames_once(tfrecord_file_path), ...原创 2019-01-03 16:40:50 · 3718 阅读 · 2 评论 -
Linux服务器出现:No space left on device的解决方法
报错信息: 2016-06-02 23:56:26 [com.thinkive.server.logger.TradeLogger]-[ERROR] java.io.IOException: No space left on device at java.io.FileOutputStream.writeBytes(Native Method) at...原创 2018-12-24 10:16:29 · 79894 阅读 · 4 评论 -
tensorflow 恢复(restore)模型的两种方式
0.前言首先我们要理解TensorFlow的一个规则,首先构建计算图(graph),然后初始化graph中的data,这两步是分开的。 1.如何恢复模型有两种方式(这两种方式有比较大的不同): 1.1 重新使用代码构建图举个例子(完整代码): def build_graph(): w1 = tf.Variable([1,3,10,15],name='W1...原创 2018-12-18 15:58:41 · 5958 阅读 · 0 评论 -
TFRecordReader "OutOfRangeError (see above for traceback): RandomShuffleQueue '_1_shuffle_batch/rand
TFRecordReader "OutOfRangeError (see above for traceback): RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 1, current size 0)" 问题原因总结;1....原创 2018-12-18 14:16:40 · 332 阅读 · 0 评论 -
参数意义及设置
batchsize:每迭代一次,网络训练图片的数量,例如:如果你的batchsize=256,则你的网络每迭代一次,训练256张图片;则,如果你的总图片张数为1280000张,则要想将你所有的图片通过网络训练一次,则需要1280000/256=5000次迭代。epoch:表示将所有图片在你的网络中训练一次所需要的迭代次数,如上面的例子:5000次;我们称之为 一代。所以如果你想要你的网络训练...原创 2018-12-28 17:33:53 · 1375 阅读 · 0 评论 -
tf.estimator.Estimator
class Estimator(builtins.object)#介绍Estimator 类,用来训练和验证 TensorFlow 模型。Estimator 对象包含了一个模型 model_fn,这个模型给定输入和参数,会返回训练、验证或者预测等所需要的操作节点。所有的输出(检查点、事件文件等)会写入到 model_dir,或者其子文件夹中。如果 model_dir 为空,则默认为临时目录...原创 2018-12-28 17:32:40 · 808 阅读 · 0 评论 -
Tensorflow:tf.app.run()与命令行参数解析
首先给出一段常见的代码:if __name__ == '__main__': tf.app.run()12它是函数入口,通过处理flag解析,然后执行main函数(或者接下来提到的xxx())(最后含有tf.app.run()的文件,在此行之前肯定能找到def main(_)或者在tf.app.run(xxx())之前找到def xxx().)用主函数和命令行参数列表来运...原创 2018-12-27 22:01:58 · 956 阅读 · 0 评论 -
tensorflow问题
1、为什么模型文件是三个(.data-00000-of-00001和.index和.meta)而没有.ckpt后缀的文件因为1.0以后的版本,saver会保存成三个后缀的形式,而旧版本的saver才是保存成.ckpt的形式可以把saver = tf.train.Saver()改成saver = tf.train.Saver(write_version=tf.train.SaverDef.V1...原创 2018-12-27 21:44:58 · 270 阅读 · 0 评论 -
tensorflow加载部分层方法
自动保存为三个文件:模型文件列表checkpoint,计算图结构model.ckpt.meta,每个变量的取值model.ckptcheckpoint文件保存了一个目录下所有的模型文件列表,这个文件是tf.train.Saver类自动生成且自动维护的。在 checkpoint文件中维护了由一个tf.train.Saver类持久化的所有TensorFlow模型文件的文件名。当某个保存的Ten...原创 2018-12-27 21:33:04 · 1597 阅读 · 0 评论 -
OutOfRangeError : RandomShuffleQueue
https://stackoverflow.com/questions/34050071/tensorflow-random-shuffle-queue-is-closed-and-has-insufficient-elementsSpeech Enhancement Generative Adversarial Network in TensorFlow [[Node: devic...原创 2018-12-21 12:53:01 · 336 阅读 · 0 评论