<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kouwang9779的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kouwang9779</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kouwang9779]]></copyright><item><title><![CDATA[VScode SSH突然失效]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/131267358</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/131267358</guid><author>kouwang9779</author><pubDate>Sun, 18 Jun 2023 03:16:13 +0800</pubDate><description><![CDATA[VScode 远程连接服务器突然失效的问题，可以通过删除。文件后再重新连接解决。]]></description><category></category></item><item><title><![CDATA[Keras自定义训练过程中实时评估模型的Metrics Class]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/126671502</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/126671502</guid><author>kouwang9779</author><pubDate>Fri, 02 Sep 2022 22:39:08 +0800</pubDate><description><![CDATA[在深度学习任务中经常需要自定义函数类来满足独特的模型评估，基于Keras的自定义Metrics Class的代码实现如下。]]></description><category></category></item><item><title><![CDATA[CAM (Classification Attention Maps) Generation with Multi-workers in Keras]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/124581080</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/124581080</guid><author>kouwang9779</author><pubDate>Thu, 05 May 2022 02:33:04 +0800</pubDate><description><![CDATA[Keras使用多个workers加速生成CAM
简述
Keras官方文档中有如何生成CAM热图的参考代码，但是如果对大量测试图像生成CAM则需要使计算过程更加高效。本博文在Keras官方文档代码基础上进行修改实现使用多个workers加速生成CAM。
使用multi-workers加速的部分主要是读取原始图像和向原始图像上添加热图两部分。加速生成热图部分主要是调高batch size。
下面以一个适用于2分支分割任务的代码来举例，读者可根据自己的需求自行修改。
代码细节
1. 主程序模块
def grad_]]></description><category></category></item><item><title><![CDATA[Keras DataGenerator with Multi-workers 加速读取训练数据（从单一数据集文件夹中读取）]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/124004257</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/124004257</guid><author>kouwang9779</author><pubDate>Thu, 07 Apr 2022 03:05:15 +0800</pubDate><description><![CDATA[Keras DataGenerator with Multi-workers 加速读取训练数据（从单一数据集文件夹中读取）
描述
训练集比较大的时候需要使用multi-workers来加速数据集的读取，如果已经预先进行了数据集的平衡工作并将训练所需的数据集都存在了一个文件夹下，则可用此博文的代码实现数据读取加速。如果读者需要对多个不等长的数据集文件夹同时进行读取，则请参考博文Keras DataGenerator with Multi-workers 加速读取训练数据（同时从多个不等长数据文件夹中读取）
代]]></description><category></category></item><item><title><![CDATA[基于Keras的Channel-Spatial Attention Layers的实现]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/124003376</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/124003376</guid><author>kouwang9779</author><pubDate>Wed, 06 Apr 2022 23:46:22 +0800</pubDate><description><![CDATA[基于Keras的Channel-Spatial Attention Layers的实现
描述
Attention被应用于医学图像分割领域以提高神经网络对空间特征及通道的关注度，从而提高分割任务的精确程度。本文根据参考文献实现一种Spatial Attention 和Channel Attention融合使用的注意力层。

代码展示
1.Spatial Attention Layer
class SpatialAttention(Layer):
    def __init__(self,outChan,fe]]></description><category></category></item><item><title><![CDATA[Keras DataGenerator with Multi-workers 加速读取训练数据（同时从多个不等长数据文件夹中读取）]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/124002550</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/124002550</guid><author>kouwang9779</author><pubDate>Wed, 06 Apr 2022 23:20:50 +0800</pubDate><description><![CDATA[Keras DataGenerator with Multi-workers 加速读取训练数据
描述：
对于训练任务，有时数据量很大且不同类型的数据存放在不同的文件夹中而且每个文件夹内的数据长度不相同，如果想要快速的从多个文件夹中读取训练数据就需要使用多个worker进行同步读取操作。下面将详细展示能实现快多worker快速数据读取的python代码。
代码展示
以我自己目前四分类任务的数据读取来举例：
1. DataGenerator Module
from concurrent.futures impo]]></description><category></category></item><item><title><![CDATA[VSCode python debug突然失效问题的解决]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/123958296</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/123958296</guid><author>kouwang9779</author><pubDate>Mon, 04 Apr 2022 19:05:13 +0800</pubDate><description><![CDATA[VSCode python debug突然失效问题的解决
问题描述
VSCode突然对python文件就不能进行debug了，但是可以正常直接运行，如果点击’Run and  Debug’会没反应。
解决办法
应该是python插件自动更新的原因，将python插件的版本回退到之前的旧版本即可。旧版本的python extension可以在在这里下载https://code.visualstudio.com/updates/v1_66
Reference:

https://docs.microsoft.c]]></description><category></category></item><item><title><![CDATA[Keras在训练过程中根据epoch的值更换loss function]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/122630101</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/122630101</guid><author>kouwang9779</author><pubDate>Fri, 21 Jan 2022 22:18:31 +0800</pubDate><description><![CDATA[不停止训练根据epoch值更换loss function
以大于50epoch时将binary cross-entropy loss转换为focal loss为例。
1. 代码实现
Net Module
class Net(object):
    def __init__(self,epochs,img_rows,img_cols):
    	# initialize your parameters
        self.epochs = epochs
        self.img_rows =]]></description><category></category></item><item><title><![CDATA[不规则形状渐变掩模（gradient mask）的生成]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/122373778</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/122373778</guid><author>kouwang9779</author><pubDate>Fri, 07 Jan 2022 23:27:00 +0800</pubDate><description><![CDATA[渐变掩模
对于规则形状，比如圆形的渐变掩模生成是比较简单的，因为每一圈上像素的位置是固定的，只需要对每一圈上的像素填充上不同的值即可生成渐变的Mask，如图1所示为一个圆形的渐变Mask。
图1
但是这种Mask生成方式并不适用于不规则的形状，下面将描述一种生成不规则形状Mask的方法。
不规则渐变Mask的生成
如图2所示为一个不规则的圆环形状。如果希望图示的白色区域是一个渐变的显示，则可以图像中心为原点，作多条直线进行采样（图3），则可得到每条直线穿过的像素点坐标，继而实现径向的像素值的渐变。
图2
本]]></description><category></category></item><item><title><![CDATA[Keras 多输出Loss加权和不等于Total Loss]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/122049687</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/122049687</guid><author>kouwang9779</author><pubDate>Mon, 20 Dec 2021 20:31:08 +0800</pubDate><description><![CDATA[多输出模型各子loss的加权和数值上不等于总Loss是因为模型中使用了L1或L2正则化项
有正则化项的Total Loss = weight*subLoss + regularize_loss
References:

https://stackoverflow.com/questions/57902381/keras-loss-seems-to-be-wrong-weighted-sum-is-wrong
https://stackoverflow.com/questions/55969404/summi]]></description><category></category></item><item><title><![CDATA[TF2 build-in Keras在eager及非eager模式下callback训练过程中梯度的方式]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/121940120</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/121940120</guid><author>kouwang9779</author><pubDate>Tue, 14 Dec 2021 21:50:49 +0800</pubDate><description><![CDATA[Class Activation Map / Gradient Attention Map
分类/分割任务中可能会需要对训练过程中某些层的计算梯度进行操作，对于Keras来说我们可以通过使用Callback()实现返回梯度的目的，具体的例子如下所示，分为非eager模式和eager模式两部分。
1. 非eager模式
tf.compat.v1.disable_eager_execution()  # 这句一定要加上！

def get_gradient_func(model):
    ## If usin]]></description><category></category></item><item><title><![CDATA[Win10远程连接使用Cluster提交任务时报错batch: error: Batch script contains DOS line breaks (\r\n) sbatch: error]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/121868199</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/121868199</guid><author>kouwang9779</author><pubDate>Sat, 11 Dec 2021 05:09:42 +0800</pubDate><description><![CDATA[描述：
Win10系统的笔记本远程连接办公室的Win10工作站，然后用Win10工作站向集群服务器提交任务。这时直接在集群服务器linux环境下编辑的bash.sh文件是无法正常被运行的，使用vim打开文件重新编辑也无法解决报错，会提示如下所示的报错：

batch: error: Batch script contains DOS line breaks (\r\n)
sbatch: error: instead of expected UNIX line breaks (\n)

此时用vscode将b]]></description><category></category></item><item><title><![CDATA[layout failed: Invalid argument: Size of values 0 does not match size of permutation 4 @ fanin shape]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/121868187</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/121868187</guid><author>kouwang9779</author><pubDate>Sat, 11 Dec 2021 04:54:50 +0800</pubDate><description><![CDATA[Keras使用tf.where()时由于维度顺序不对报错
2021-12-10 21:38:30.064007: E tensorflow/core/grappler/optimizers/meta_optimizer.cc:801] 
layout failed: Invalid argument: Size of values 0 does not match size of permutation 4 @ fanin shape 
inmodel/tf.where/SelectV2-1-Transpo]]></description><category></category></item><item><title><![CDATA[PyTorch中Warm Up学习率不使用就不要定义否则影响学习率一直为0]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/121774689</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/121774689</guid><author>kouwang9779</author><pubDate>Tue, 07 Dec 2021 17:50:52 +0800</pubDate><description><![CDATA[踩坑描述：
如果定义了warm Up学习率的衰减方式如下，
         if args.decay_type == "cosine":
             scheduler = WarmupCosineSchedule(optimizer, warmup_steps=args.warmup_steps, t_total=t_total)
         else:
             scheduler = WarmupLinearSchedule(optimizer, warmup_]]></description><category></category></item><item><title><![CDATA[Keras多输入模型(多迭代器输入)数据加载方法]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/121391804</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/121391804</guid><author>kouwang9779</author><pubDate>Thu, 18 Nov 2021 01:51:15 +0800</pubDate><description><![CDATA[Keras多迭代器输入
有时训练模型时需要有多个输入，虽然官方文档给出了多个输入的举例Models with multiple inputs and outputs。但是举例中只给出了矩阵输入的具体情况，对于迭代器输入具体细节没有展示。对于大数据量的情况通常需要使用迭代器批次读入数据进行训练，下面展示使用多个迭代器输入的具体代码细节。
DataGenerator:
class DataGenerate3(tf.keras.utils.Sequence):
    'Generates data for Ke]]></description><category></category></item><item><title><![CDATA[linux系统无root权限安装cuda-11.2及cudnn-8.1]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/120985098</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/120985098</guid><author>kouwang9779</author><pubDate>Wed, 27 Oct 2021 04:50:01 +0800</pubDate><description><![CDATA[linux系统无root权限安装cuda-11.2及cudnn-8.1

目前支持最新版本Tensorflow-gpu-2.6.0 的是cuda11.2和cudnn8.1，各版本tensorflow对应的cuda及cudnn版本见链接tensorflow-gpu
在linux下无root权限时，无法通过官方给出的如下安装命令安装
sudo sh cuda_11.2.0_460.27.04_linux.run
直接从https://anaconda.org/nvidia/cudatoolkit/files下载]]></description><category></category></item><item><title><![CDATA[多层文件夹递归的MATLAB和Python实现]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/118905504</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/118905504</guid><author>kouwang9779</author><pubDate>Mon, 19 Jul 2021 17:53:33 +0800</pubDate><description><![CDATA[MATLAB实现：
function scanDir(root_dir)
% if isempty(varargin)
%    root_dir = uigetdir;
% end
% files={};
if root_dir(end)~='\'
 root_dir=[root_dir,'\'];
end
fileList=dir(root_dir);  %扩展名
n=length(fileList);
for i=1:n
    if strcmp(fileList(i).name,'.')==1||]]></description><category></category></item><item><title><![CDATA[Patch-GAN (Discriminative Network) 的Pytorch实现]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/118808222</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/118808222</guid><author>kouwang9779</author><pubDate>Fri, 16 Jul 2021 17:46:27 +0800</pubDate><description><![CDATA[Patch-GAN (Discriminative Network)
Patch-GAN可以在对抗学习中被用作discriminator，参考Markovian Generative Adversarial Networks结构中的Discriminative network部分（图1）进行Pytorch代码实现。网络结构的具体细节可参考下述文献：

[1] Li, C. , and  M. Wand . “Precomputed Real-Time Texture Synthesis with Marko]]></description><category></category></item><item><title><![CDATA[VGG在中间层进行输出的Pytorch实现]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/118801860</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/118801860</guid><author>kouwang9779</author><pubDate>Fri, 16 Jul 2021 15:51:28 +0800</pubDate><description><![CDATA[简介
搭建网络时有时需要使用到VGG网络的部分结构（如图1所示），这时需要在VGG网络的中间层输出。图1所示的鉴别器网络就分别需要从Relu3_1和Relu5_1层进行输出。

图1 鉴别器网络
参考博文VGG的Pytorch实现代码，修改部分代码实现VGG网络在中间层输出。

https://blog.youkuaiyun.com/zhanghao3389/article/details/85038252

VGG网络不同层的名称描述可参照博文：

https://blog.youkuaiyun.com/dudek/articl]]></description><category></category></item><item><title><![CDATA[基于Operator Discretization Library (ODL)的CT图像正反投]]></title><link>https://blog.youkuaiyun.com/kouwang9779/article/details/118765036</link><guid>https://blog.youkuaiyun.com/kouwang9779/article/details/118765036</guid><author>kouwang9779</author><pubDate>Thu, 15 Jul 2021 18:00:13 +0800</pubDate><description><![CDATA[持续更新…
1. FBP
import odl
import matplotlib.pyplot as plt
reco_space = odl.uniform_discr(min_pt=[-20, -20], max_pt=[20, 20], shape=[512, 512])
geometry = odl.tomo.parallel_beam_geometry(reco_space)
projector = odl.tomo.RayTransform(reco_space,geometry, impl=]]></description><category></category></item></channel></rss>