代码调试记录

调试踩坑记录:

  1. DataLoader的参数
    PyTorch训练模型的torch.utils.data.DataLoader 参数

https://blog.csdn.net/qq_36653505/article/details/84728855

  1. sen12cr数据集读取之后的uint16数据类型并归一化
    读取13通道的哨兵二数据的rgb波段
datat = gdal.Open(os.path.join(self.config.datasets_dir, 'ground_truth', str(self.imlist[index])))
tmp_img = datat.ReadAsArray()
img = tmp_img.transpose(1, 2, 0)
t = np.array(img[:, :, 1:4], dtype=np.uint16)#读取tiff图像的第234波段
t = t/np.max(t)
t = t.transpose(2, 0, 1)

np.clip用法
np.clip用法

https://blog.csdn.net/weixin_44791964/article/details/100000373

train.py
num_workers=0
否则EOFError: Ran out of input
在这里插入图片描述

3.GAN LOSS解答

【GAN】若干常见GAN中的Loss及部分知识
GAN的Loss为什么降不下去
GAN 网络训练中,G_loss上升,D_loss下降

4.numpy选波段是左闭右开
np.array[:,:,0:3]是波段0 1 2

5.python遥感百分比截断拉伸
python实现遥感图像百分比截断线性拉伸(支持多波段)

https://blog.csdn.net/suexisang/article/details/122788258

6.numpy.sum(axis=)

https://blog.csdn.net/weixin_28750421/article/details/116166114

7.断点处show图

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.imshow(img)
plt.show()

8.设断点

  import pdb
   pdb.set_trace()
   然后直接terminal运行就行了

在这里插入图片描述

9.查看变量

.device可以看是cpu还是gpu
.shape可以看大小
.dtype可以看数据类型
type(数据名称)可以看是tensor还是ndarray

10.把gpu上的数据变成cpu数组

vb_cpu = vb.cpu().detach().numpy()[0]

把ndarry变成torch.tensor

edges_ = torch.from_numpy(edges)

增加和减少tensor的维度

https://huaweicloud.csdn.net/63808c25dacf622b8df8a71b.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaiduactivity-2-125092937-blog-127889109.pc_relevant_landingrelevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaiduactivity-2-125092937-blog-127889109.pc_relevant_landingrelevant&utm_relevant_index=2

edges_ = torch.unsqueeze(edges_, 0)

cpu放到gpu

edges_ = edges_.cuda()

torch.nn.conv3d

torch.nn.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, 
                     dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)

https://mp.weixin.qq.com/s/1gBC-bp4Q4dPr0XMYPStXA
https://www.cnblogs.com/lyl0618/p/12524999.html

torch.nn.max_pool3d 3D池化

torch.nn.MaxPool3d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
model = torch.nn.MaxPool3d(kernel_size=(2, 2, 2), stride=(2, 2, 2), padding=(1, 0, 0))

https://www.cnblogs.com/lyl0618/p/12525143.html

torch.nn.functional.interpolate 插值

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)

https://blog.csdn.net/qq_50001789/article/details/120297401

torch.add 对两个张量进行相加,若格式不同则以复制的方式进行扩容后再相加。

https://blog.csdn.net/weixin_43820352/article/details/125995863

显示中间变量的图

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

img = torch.squeeze(output1[:,1:4,1,:,:],0).cpu().detach().numpy().transpose(1,2,0)
plt.imshow(img)
plt.show()
layer_norm = nn.LayerNorm(3, eps=1e-6)
plt.imshow((layer_norm(torch.from_numpy(img)).detach().numpy()))

torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None)
torch.nn.UpsamplingBilinear2d(size=(embed_dim * 16, embed_dim * 16), scale_factor=None, mode='nearest', align_corners=None)
upsample_0 = nn.Upsample(size=(embed_dim * 16, embed_dim * 16), mode='bilinear',align_corners=True)
up0 = upsample_0(torch.unsqueeze(conv5,0))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值