BUG中心

python类

pytorch类

取模型训练过程的参数

temp=[]
        for para in model.parameters():
            temp.append(para)
para_epoch.append(temp)

结果发现每轮迭代放在数组para_epoch中每轮迭代的参数值没有变,都是一样的。因为存储在para_epoch中的每轮迭代的参数是随着model而变的,也就是没有断了和模型的联系。解决办法:把存进去的参数类型先改成numpy,这样就和原来的模型断了联系。

需要注意的是,这样做的前提是你的训练是在GPU上进行的因为这个语句会把参数从GPU上复制到CPU上。如果你本身就是在CPU上进行训练,这样的话就还是断不开参数和模型的联系。

 temp=[]
        for para in model.parameters():
            para=para.cpu().detach().numpy()
            temp.append(para)
        para_epoch.append(temp)

transforms.ToTensor()

这个函数的作用是把0-255的numpy转换成0-1的Tensor。但是要求原来的numpy数据里面的数据类型是np.uint8,如果不是这个类型,就不能转换为0-1的tensor。可以看一下transfors.ToTensor()的源码吗,前面写的很清楚,我复制过来

  """Convert a ``PIL Image`` or ``numpy.ndarray`` to tensor.

    Converts a PIL Image or numpy.ndarray (H x W x C) in the range
    [0, 255] to a torch.FloatTensor of shape (C x H x W) in the range [0.0, 1.0]
    if the PIL Image belongs to one of the modes (L, LA, P, I, F, RGB, YCbCr, RGBA, CMYK, 1)
    or if the numpy.ndarray has dtype = np.uint8

    In the other cases, tensors are returned without scaling.
    """

而且还需要注意,他自动有一个纬度变换的过程,所以如果我们要使用这个函数,原来的numpy类型数据的通道纬度应该在最后一维,这样,transforms.ToTensor()就可以自动完成纬度变换,把通道纬度放在第二维。

numpy中float和tensorfloat是有区别的

具体看这篇博客

C语言中文件路径问题

…\代表的是上级文件目录,如果一个路径前面有一个…\就代表是在和工程目录统一等级的另一个问价夹里。因为有一个…\就代表是工程文件的上一级,然后再进入对应文件夹。如果前面有两个…\…\就代表这个文件与工程文件的上一级文件上是同级的。就要在工程文件的上一级问价夹中找。

numpy中一维数组的转置问题

对于numpy中数组的转置有三个函数,csdn上有很多介绍,这就不说了。我想说的是一维数组是不能用这三个函数进行转置的。一维数组默认是按列存储,比如你有333个数,变成一位数组,那么它的shape就是(333,)。这个时候用那三个转置函数不会报错,但是结果也不会转置。方法是这样写:import numpy as np a = np.array([1,2,3,4]) print(a.shape) print(a.T.shape) a.shape=(1,4) print(a.shape)
输出结果是:在这里插入图片描述

pytorch训练时循环的写法问题

我们在pytorch训练神经网络,编写迭代循环的时候要注意,可以有两种写法:
其中batch_i代表着一轮迭代中进行到第几个batch
也可以这么写:
这种就没有了刚才那个计数
但是不能这么写:
在这里插入图片描述
原因就是这样x就会变成成为第一个图片里batch_i的作用,而使输入变成无效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值