- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 softmax与categorical_crossentropy的关系,以及sigmoid与bianry_crossentropy的关系
sigmoid和softmax是神经网络输出层使用的激活函数,分别用于两类判别和多类判别。一般,binary_crossentropy损失函数和sigmoid激活函数相匹配,适应两类别分类的问题,categorical_crossentropy损失函数和softmax激活函数相匹配,适应多类别分类的问题。参考博客:https://blog.youkuaiyun.com/weixin_42295205/article/details/107487243...
2021-05-10 13:13:27
1523
原创 模型训练技巧:warmup学习率策略
什么是warmup学习率的设置 — 不同阶段不同值:上升 -> 平稳 -> 下降由于神经网络在刚开始训练的时候是非常不稳定的,因此刚开始的学习率应当设置得很低很低,这样可以保证网络能够具有良好的收敛性。但是较低的学习率会使得训练过程变得非常缓慢,因此这里会采用以较低学习率逐渐增大至较高学习率的方式实现网络训练的“热身”阶段,称为 warmup stage。但是如果我们使得网络训练的 loss 最小,那么一直使用较高学习率是不合适的,因为它会使得权重的梯度一直来回震荡,很难使训练的损失值达到
2021-04-29 09:13:05
4046
1
原创 语义分割之Dice Loss
1.Dice系数Dice系数作为损失函数的原因和混淆矩阵有着很大的关系,下图给出的是一个混淆矩阵:其中的一些关键指标如下:precision=TPTP+FPprecision=\frac{TP}{TP+FP}precision=TP+FPTPrecall=TPTP+FNrecall=\frac{TP}{TP+FN}recall=TP+FNTP精确率(precision)表示的是预测为正且真实为正的占预测为正的比例召回率(recall)表示的是预测为正且真实为正的占样本为正的比例在医学图象分
2021-04-29 09:12:17
3530
1
原创 tf.nn.sparse_softmax_cross_entropy_with_logits与tf.nn.softmax_cross_entropy_with_logits
tf.nn.sparse_softmax_cross_entropy_with_logits与 tf.nn.softmax_cross_entropy_with_logits的区别(1)tf.nn.sparse_softmax_cross_entropy_with_logitstf.nn.sparse_softmax_cross_entropy_with_logits( _sentinel=None, labels=None, logits=None, name=None
2021-04-15 21:19:39
299
原创 ImportError: cannot import name ‘issparse‘
环境:windowstensorflow-gpu 1.12.0keras 2.2.4问题:利用tensorflow,keras训练模型时出现如下报错:ImportError: cannot import name 'issparse'问题解决:有资料表示是由于没有安装scipy模块导致的,但是我检查发现自己已经安装了scipy,还是会报错。试图将scipy升级到最新版本1.5.4,之后再运行不报错。...
2021-04-15 21:19:23
5219
原创 AttributeError: module ‘keras_applications‘ has no attribute ‘set_keras_submodules‘
环境:windowstensorflow-gpu 1.12.0keras 2.2.4问题:利用tensorflow,keras进行模型训练时出现如下报错:AttributeError: module 'keras_applications' has no attribute 'set_keras_submodules'问题解决:现有keras_applications版本为1.0.8,使用如下命令将其版本降低为1.0.7,问题解决。pip install --upgrade keras_
2021-04-15 21:19:02
1067
1
原创 tensorboard报错ImportError: cannot import name ‘dump_age‘
环境:windowstensorflow-gpu 1.12.0keras 2.2.4问题:在cmd命令窗口打开tensorboard时出现如下报错:ImportError: cannot import name 'dump_age'问题解决:首先将现有的werkzeug,tensorflow,keras卸载:pip uninstall werkzeug 将werkzeug卸载pip uninstall tensorflow-gpu 将tensorflow卸载pip uni
2021-04-15 21:18:38
299
原创 TypeError: Expected a message Descriptor, got Descriptor
利用tensorflow(1.12.0),keras(2.2.4)进行模型训练时,出现如下报错:TypeError: Expected a message Descriptor, got Descriptor问题解决:有资料表示是由于tensorflow与protobuf版本不匹配,tensorflow与protobuf的版本对应关系如下:tensorflow 1.5 --------------- protobuf 3.4tensorflow 1.12 --------------- prot
2021-04-15 21:18:19
9172
2
原创 AttributeError: ‘numpy.ndarray‘ object has no attribute ‘cuda‘
问题描述:利用pytorch进行模型训练时,在加载数据后出现如下报错inputs, gts = inputs.cuda(), gts.cuda()AttributeError: ‘numpy.ndarray‘ object has no attribute ‘cuda‘问题解决:这种类型的错误都是由于没有转换为tensor张量导致的,只需要注意使用cuda()前通过torch.tensor()转为tensor就可以了,例如这样:inputs, gts = torch.tensor(inpu
2021-04-01 16:02:48
4889
原创 国内镜像安装库
常用的几个镜像网站清华大学镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ 模块名阿里云镜像:pip install -i https://mirrors.aliyun.com/pypi/simple/ 模块名豆瓣镜像:pip install -i https://pypi.doubanio.com/simple/ 模块名中科大镜像:pip install -i https://mirrors.tuna.tsingh
2021-02-03 17:44:03
550
原创 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
环境:windows系统运行pytorch模型时出现如下报错:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can d
2021-01-19 17:39:17
140
原创 BrokenPipeError: [Errno 32] Broken pipe
环境:windows系统运行pytorch模型时出现以下报错BrokenPipeError: [Errno 32] Broken pipe查阅资料发现该问题的产生是由于windows下多线程的问题,和DataLoader类有关。解决方法修改调用torch.utils.data.DataLoader()函数时的 num_workers 参数,该参数是指在进行数据集加载时,启用的线程数目。修改num_works为 0 ,只启用一个主进程加载数据集,避免在windows使用多线程即可。参考博客:h
2021-01-19 17:30:27
197
1
原创 resnet50/InceptionV3/Xception/mobileNet/InceptionResNetV2/NASnet/DenseNet等tensorflow预训练权重下载
vgg16/vgg19/resnet50/InceptionV3/Xception/mobileNet/InceptionResNetV2/NASnet/DenseNet等模型权重文件下载地址:https://github.com/fchollet/deep-learning-models/releases参考博客:https://blog.youkuaiyun.com/qq_37752708/article/details/110728526
2021-01-12 15:13:02
1241
原创 模型可视化工具——Netron(支持tf, caffe, keras,mxnet等多种框架)
加载模型预训练权重时一般需要查看各节点信息,因此需要对权重文件进行可视化展示。目前的Netron支持主流各种框架的模型结构可视化工作框架对应文件ONNX.onnx, .pbKeras.h5, .kerasCoreML.mlmodelTensorFlow Lite.tflite安装Netron支持windows,Linux,mac系统下载链接如下:https://github.com/lutzroeder/netron/releases/tag/v4
2021-01-12 15:07:24
505
原创 win10+cuda9.0+python3.6.12 安装pytorch
1.查看自己的cuda版本使用win+r,在输入cmd,在小黑窗口中输入nvcc -V确定需要安装的torch以及torchvision版本https://pytorch.org/get-started/previous-versions/2.创建一个新的Python虚拟运行环境在cmd命令窗口输入conda create -n pytorch-gpu python==3.6.12 然后回车。激活刚刚创建的虚拟运行坏境 conda activate pytorch-gpu在新建的虚拟环境中安装
2021-01-06 13:22:35
519
原创 .ckpt权重文件转.hdf5文件
import tensorflow as tfimport deepdish as ddimport argparseimport osimport numpy as npdef tr(v): # tensorflow weights to pytorch weights if v.ndim == 4: return np.ascontiguousarray(v.transpose(3,2,0,1)) elif v.ndim == 2: r
2021-01-05 11:24:50
755
原创 AttributeError: ‘dict‘ object has no attribute ‘iteritems‘
问题描述在将.ckpt模型文件转成.hdf5文件时,出现如下报错: weights = {n: reader.get_tensor(n) for (n, _) in reader.get_variable_to_shape_map().iteritems()}AttributeError: 'dict' object has no attribute 'iteritems'解决办法查阅资料发现是由于Python3.5中:iteritems变成了items。修改以后问题解决。参考博客:ht
2021-01-05 11:21:35
245
原创 BiSenetv2结构详细介绍
1. 整体结构 (1)一个细节分支(Detail Branch),具有宽通道和浅层,以捕获low-level细节并生成高分辨率特征表示;(2)语义分支(Semantic Branch),具有狭窄的通道和较深的层,以获取高级语义上下文。由于减少了信道容量和快速下采样策略,语义分支是轻量级的。(3)设计了一个引导聚合层(Bilateral Guided Aggregation Layer),以增强相互连接并融合两种类型的要素表示。(4)还设计了一种增强训练策略来提高分割性能,而无需任何额外的推理成
2021-01-05 09:36:48
6454
原创 keras模型训练报错AttributeError: ‘NoneType‘ object has no attribute ‘_inbound_nodes‘
问题描述最近正在复现BiSenetv2网络。由于目前BiSenetv2的代码基本都是pytorch,所以自己根据论文模型结构完成了模型的keras版本,但是在进行训练时一直出现如下报错百度了很多发现应该是由于我在使用keras搭建模型时,需要使用TensorFlow夹杂搭建,但是keras无论使用函数式还是序列式,每一层的输出类型都是layer类型 ,所以当使用非keras函数时,得到的变量类型不是layer类型,因此出现以上报错。解决方案(1)由于代码中使用了concatenate以及reshap
2021-01-04 17:49:40
1038
1
原创 报错AttributeError: ‘InputLayer‘ object has no attribute ‘outbound_nodes‘
环境:tensorflow 1.13.1+keras 2.2.4在运行代码时出现报错如下:File "F:\python tensorflow\Anaconda\Anaconda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 584, in __call__ inputs, outputs, args, kwargs) File "F:\python tensorfl
2020-12-18 19:59:27
3492
1
原创 U2Net网络结构
U2Net网络结构U2Net网络的优势在于:(1)提出 RSU 模块,融合不同尺寸接受野的特征,以捕获更多不同尺度的上下文信息(contextual information).(2)基于 RSU 模块的 池化(pooling) 操作,在不显著增加计算成本的前提下,增加了整个网络结构的深度(depth)。具体网络结构图如下:U2-Net网络由三部分构成:• 六级编码器• 五级解码器• 与解码器和最后一级编码器相连的显著图融合模型(Ⅰ)编码器En_1, En_2,En_3和En_4阶段中,分别使用R
2020-12-15 16:34:28
2491
原创 python报错 AttributeError: ‘bytes’ object has no attribute ‘encode’
训练模型时出现以下报错:AttributeError: ‘bytes’ object has no attribute ‘encode’解决方法:点击报错进入对应的报错文档,把encode改成decode就可以了。这是因为在python3中,编码的时候区分了字符串和二进制参考:https://www.jianshu.com/p/a4cf632d97f1...
2020-12-15 13:38:13
15117
原创 tensorflow和keras对应的版本
在应用tensorflow和keras进行模型训练和测试时,经常出现因为tensorflow版本和keras版本不匹配导致的错误,可以通过下方网址查询tensorflow和keras对应的版本https://docs.floydhub.com/guides/environments/只需卸载tensorflow或keras,然后重新安装对应版本,一些基本常见问题可以解决。...
2020-12-15 13:21:29
1178
原创 keras加载hdf5模型时报错KeyError: b‘tensorflow‘
利用keras加载保存的hdf5模型时报错如下KeyError: b'tensorflow'前一天运行代码还是好的,今天运行就报错了。查找了很久没有发现原因。想起来前一天修改了keras版本(keras 2.1.4会报上述错误),就把keras重新修改回原版本(keras 2.2.4),问题解决!!!...
2020-12-11 09:29:24
1668
原创 基于匈牙利算法的任务分配问题原理
匈牙利算法基本思路(1)通过行/列变换让费用矩阵的每行和每列都出现0(2)找出不同行不同列的n个0(3)这些0对应的指派就是最优指派匈牙利算法主要步骤(1)对费用矩阵先做行变换再做列变换。从每一行减去该行的最小值,从每一列减去该列的最小值(2)用最少的水平线或垂直线覆盖所有零(3)如果水平线和垂直线的总数小于样本数N,则找到没有被覆盖的最小值,没有被覆盖的每行减去最小值,被覆盖的每列加上最小值。然后重复步骤(2)、(3)知道水平线和垂直线的总数等于样本数(4)根据零元素所在位置确定最优指派
2020-11-14 10:50:54
758
原创 报错:AssertionError: Torch not compiled with CUDA enabled
环境:win0+torch(cpu)详细报错信息:解决:查阅资料发现此错误是由于下载的torch没有cuda,所以在运行时会报错,在程序最开始的地方加上:device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)代码其余地方出现.cuda()的地方改成.to(device)就可以在无gpu的环境中运行了。参考博客:https://blog.youkuaiyun.com/m0_37690102/article/details/
2020-11-11 20:27:57
23270
17
原创 The “freeze_support()“ line can be omitted if the program is not going to be frozen to produce an ex
环境:win10+torch(cpu)具体错误信息:The “freeze_support()” line can be omitted if the program is not going to be frozen to produce an executable.有的解决方案是把要运行的代码放在if __main_==’__main_'下面即可解决问题,参考https://www.cnblogs.com/zzmx0/p/12663478.html但是我的问题并没有解决。通过再次查找发现是由于
2020-11-11 20:22:31
285
原创 AttributeError: module ‘torch._C‘ has no attribute ‘_cuda_setDevice‘
环境:win10系统+torch(cpu)问题:运行train.py文件时出现报错,如下图所示解决:由于我安装的pytorch是CPU版本,不是GPU版本,所以在运行文件时,需要在文件中将gpu_ids的默认值改为-1,修改后问题即可解决参考博客:https://blog.youkuaiyun.com/weixin_39450145/article/details/104797786...
2020-11-11 20:05:58
3741
1
原创 计算机网络中常用的基本概念
1.计算机网络:使用单一技术的自主计算机的互联集合2.互联网络(Internet):计算机网络的互相联接3.WWW(World Wide Web):万维网,是信息资源的网络,资源、资源标识、传输协议三部分支撑www的运作4.拓扑:信道的分布方式。常见的拓扑结构有:总线型、星型、环型、树型和网状5.协议:一系列规则和约定的规范性描述,它控制网络中的设备之间如何进行信息交换6.数字带宽:指在单位时间内流经的信息总量7.吞吐量:指实际的、可测到的带宽8.点到点:信源机和信宿机之间的通信由一段一
2020-07-19 20:09:57
467
原创 图的应用:骑士周游问题
1. 骑士周游问题在一个国际象棋棋盘上,一个棋子“马”(骑士)按照“马走日”的规则,从一个格子出发,要走遍所有棋盘格恰好一次。把一个这样的走棋序列称为一次“周游”采用图搜索算法是解决骑士周游问题最容易理解和编程的方案之一。解决方案分为两步:(1)将合法走棋次序表示为一个图(2)采用图搜索算法搜寻一个长度为(行*列-1)的路径,路径上包含每个顶点恰一次1.1 构建骑士周游图将棋盘和走棋步骤构建为图的思路按照“马走日”规则的走棋步骤作为连接边,建立每一个棋盘格的所有合法走棋步骤能够到达的棋盘格关
2020-07-17 17:33:21
2161
2
原创 图的应用:词梯问题
1. 词梯问题从一个单词演变到另一个单词,其中的过程可以经过多个中间单词。要求是相邻两个单词之间差异只能是1个字母,如FOOL变SAGE:FOOL>>POOL>>POLL>>POLE>>PALE>>SALE>>SAGE我们的目标是找到最短的单词变换序列采用图来解决这个问题的步骤如下:(1)将可能的单词之间的演变关系表达为图(2)采用“广度优先搜索BFS”来搜寻从开始单词到结束单词之间的所有有效路径,选择其中最快到达目标单词的
2020-07-17 11:39:39
1618
1
原创 图及抽象数据类型ADTGraph的python实现
1.图(Graph)graph:重在由一些基本元素构造而来的图,如点、线段等图(Graph)是比树更为一般的结构,也是由边节点和边构成。实际上,树是一种具有特殊性质的图图可以用来表示现实世界中很多事物,如道路交通系统、航班线路、互联网连接、大学中课程的先修次序2.图中常用术语顶点Vertex(也称“节点Node”)是图的基本组成部分,顶点具有名称标识key,也可以携带数据项payload边Edge(也称“弧Arc”)作为2个顶点之间关系的表示,边连接两个顶点。边可以是无向或者有向的,相应的
2020-07-17 09:41:56
862
原创 二叉查找树(BST)、AVL树实现及算法分析
1.二叉查找树(Binary Search Tree)用二叉查找树保存key,实现key的快速搜索2.二叉查找树BST的性质比父节点小的key都出现在左子树,比父节点大的key都出现在右子树例如,按照70,31,93,94,14,23,73的顺序插入首先插入的70成为树根31比70小,放到左子节点93比70大,放到右子节点94比93大,放到右子节点14比31小,放到左子节点23比14大,放到其右73比93小,放到其左最后形成的树如下图所示注意:插入顺序不同,生成的BST也不同
2020-07-16 11:08:21
484
原创 优先队列和二叉堆
1.优先队列(Priority Queue)前面我们学习了一种FIFO数据结构队列。队列有一种变体称为“优先队列”。如银行窗口取号排队,VIP客户可以插到队首。优先队列的出队跟队列一样从队首出队在优先队列内部,数据项的次序是由“优先级”来确定。高优先级的数据项排在队首,而低优先级的数据项则排在后面。这样,优先队列的入队操作就比较复杂,需要将数据项根据其优先级尽量挤到队列前方。2. 二叉堆(Binary Heap)实现优先队列实现优先队列的经典方案是采用二叉堆数据结构。二叉堆能够将优先队列的入
2020-07-15 10:28:46
259
原创 树
1.树——非线性数据结构树在计算机科学的各个领域中被广泛应用:操作系统、图像学、数据库系统、计算机网络跟自然界中的树一样,数据结构也分为:根、枝和叶等三个部分。一般数据结构的图示把根放在上方,叶放在下方。2.分类树的特征(1)分类体系是层次化的。树是一种分层结构,越接近顶部的层越普遍,越接近底部的层越独特。(2)一个节点的子节点与另一个节点的子节点相互之间是隔离、独立的猫属Felis和蝇属Musca下面都有Domestica的同名节点,但相互之间并无任何关联,可以修改其中一个Domestica
2020-07-14 15:33:35
279
原创 散列、散列函数
1.散列表(Hash table)散列表(又称哈希表)是一种数据集,其中数据项的存储方式尤其有利于将快速的查找定位。散列表中的每一个存储位置,称为槽(slot),可以用来保存数据项,每个槽有一个唯一的名称例如:一个包含11个槽的散列表,槽的名称分别为0~10。在插入数据项之前,每个槽的值都是None,表示空槽。散列函数实现从数据项到存储槽名称的转换的,称为散列函数(Hash function)。下面示例中,散列函数接受数据项作为参数,返回整数值0~10,表示数据项存储的槽号。有一种常用的散列
2020-07-12 20:46:02
3428
原创 递归(Recursion)及其应用
1. 什么是递归递归是一种解决问题的方法,其精髓在于将问题分解为规模更小的相同问题,持续分解,直到问题规模小到可以用非常简单直接的方式来解决。递归问题分解方式非常独特,其算法方面的明显特征就是:在算法流程中调用自身。2. 递归的应用2.1 数列求和数列求和[1,3,5,7,9]换个方式来表达数列求和:全括号表达式(1+(3+(5+(7+(9)))))上面这个式子,最内层的括号(7+9)是无需循环即可计算的,实际上整个求和过程如下:观察上述过程中所包含的重复模式,可以把求和问题归纳成这样:
2020-07-06 16:07:21
971
原创 基本数据结构——线性结构(有序表)
1. 什么是有序表(OrderedList)有序表是一种数据项依照其某可比性质(如整数大小、字母表先后)来决定在列表中的位置。越“小”的数据项越靠近列表的头,越靠“前”。2.抽象数据类型有序表(OrderedList)定义的操作3.有序表OrderedList实现在实现有序表的时候,需要记住的是,数据项的相对位置,取决于它们之间的“大小”比较。以整数数据项为例,(17,26,31,54,77,93)的链表形式如下图所示。有序表(OrderedList)同样采用链表方法实现,Node定义相同,
2020-07-04 10:26:25
3781
原创 基本数据结构——线性结构(列表/无序表)
1.什么是列表(List)?一个数据项按照相对位置存放的数据集。特别的,被称为“无序表(unordered list)”,其中数据项只按照存放位置来索引,如第1个、第2个…、最后一个等。如一个考试分数的集合“54,26,93,17,77,31”,如果用无序表来表示,就是[54,26,93,17,77,31]2.抽象数据类型:无序表List的操作3.用链表实现无序表为了实现无序表数据结构,可以采用链接表的方案。虽然列表数据结构要求保持数据项的前后相对位置,但这种前后位置的保持,并不要求数据项一
2020-07-03 17:41:33
1025
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人