第一章: PyTorch计算机视觉实战:目标检测、图像处理与深度学习
1.第一章: PyTorch计算机视觉实战:目标检测、图像处理与深度学习
2.《Pytorch 最全入门介绍,Pytorch入门看这一篇就够了》学习3.第二章 2.3 使用Pytorch构建神经网络4.第二章 2.3.1 定义数据集训练神经网络5.第二章 2.4使用序贯方法构建神经网络nn.Sequential() 及打印神经网络模型摘要6.第二章 2.5 保存和加载文件中Pytorch模型7.第三章 3.1 表示图像 理解灰度图、RGB图和数组的关系8.第三章 3.3 使用pytorch的数据集9.第三章 3.4 训练神经网络10.第三章 3.6 批大小的影响11.第三章:3.8.1 绘制各层参数分布图 hist12.第三章 3.9 在训练过程中修改学习率13.第三章 3.10 构建更深的神经网络 比较有0、1、2隐含层的神经网络14.第三章 3.12 dropout 和 正则化 克服过拟合
第一章
# https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch
# https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch
################### Chapter One ####################################### import numpy as np from copy import deepcopy import matplotlib.pyplot as plt x = np.array([[1,1]]) y = np.array([[0]]) from copy import deepcopy import numpy as np def feed_forward(inputs, outputs, weights): pre_hidden = np.dot(inputs,weights[0])+ weights[1] hidden = 1/(1+np.exp(-pre_hidden)) out = np.dot(hidden, weights[2]) + weights[3] mean_squared_error = np.mean(np.square(out - outputs)) return mean_squared_error def update_weights(inputs, outputs, weights, lr): original_weights = deepcopy(weights) temp_weights = deepcopy(weights) updated_weights = deepcopy(weights) original_loss = feed_forward(inputs, outputs, original_weights) for i, layer in enumerate(original_weights): print(i,layer) for index, weight in np.ndenumerate(layer): print("**",index, weight) temp_weights = deepcopy(weights) temp_weights[i][index] += 0.0001 # 每次+0.0001方式,改变一个参数,计算新的输出值,与原输出值比较,得到梯度 print("**@",temp_weights[i][index]) _loss_plus = feed_forward(inputs, outputs, temp_weights) grad = (_loss_plus - original_loss)/(0.0001) updated_weights[i][index] -= grad*lr return updated_weights, original_loss W = [ np.array([[-0.0053, 0.3793], [-0.5820, -0.5204], [-0.2723, 0.1896]], dtype=np.float32).T, np.array([-0.0140, 0.5607, -0.0628], dtype=np.float32), np.array([[ 0.1528, -0.1745, -0.1135]], dtype=np.float32).T, np.array([-0.5516], dtype=np.float32) ] losses = [] for epoch in range(100): W, loss = update_weights(x,y,W,0.01) losses.append(loss) print(epoch,loss) plt.plot(losses) plt.title('Loss over increasing number of epochs') plt.show() ########################################################################
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)