深度学习与图像识别:原理与实践 笔记Day_10

最优化

最优化的目标:找到能够使损失函数值最小化的一系列权重w

随机初始化

import torch
from torch.utils.data import DataLoader
import torchvision.datasets as dsets
import torchvision.transforms as transforms
import numpy as np

class_num = 10
batch_size = 4
label = torch.LongTensor(batch_size, 1).random_() % class_num
print(label)
# 把Tensor转换成one_hot   scatter_(1,label,1) 表示拿1根据label矩阵来对zeros矩阵进行列填充
ont_hot = torch.zeros(batch_size,class_num).scatter_(1,label,1)
print('---')
print(ont_hot)

梯度下降法

代码实现如下:

def gradient_descent(f, init_X,lr=0.01,step_num=100):
    x = init_X
    for i in range(step_num):
        grad = numberical_gradient(f,x)
        x =-= lr*grad
    return x

参数f是要进行最优化的函数,init_x是初始值,lr表示学习率,step_num代表梯度下降法的重复数

补充概念:Np.nditer

代码如下:

import numpy as np

arr1 = np.arange(0,30,5).reshape(2,3)
it = np.nditer(arr1, flags=['multi_index'], op_flags=['readwrite'])
while not it.finished:
    print(it.multi_index)
    it.iternext()

运行结果:

op_flags=['readwrite'] 表示不仅可以对a进行读取,还可以进行写入

print(it.multi_index) 表示输出元素的索引

it.iternext() 表示进入下一次迭代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值