深度学习入门:基于Python的理论与实现【笔记】

本文介绍了如何使用Python进行深度学习入门,包括NumPy进行数组和矩阵运算,Matplotlib进行数据可视化,以及如何用梯度法求解函数f(x0+x1)=x0^2+x1^2的最小值,通过实例演示了梯度下降算法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深度学习入门:基于Python的理论与实现这本数的阅读笔记
根据自己的情况总结的,可能有些简单的就没做笔记。

NumPy

在深度学习的实现中,经常出现数组和矩阵的计算。NumPy的数组类(numpy.array)中提供了很多便捷的方法,在实现深度学习时,我们将使用这些方法。我们来简单介绍一下后面会用到的NumPy。
在这里插入图片描述
上面就是定义numpy数组以及加减乘除的运算。
在这里插入图片描述
上面代码就是看数据类型以及其形状。
在这里插入图片描述
上面代码主要是索引访问元素,以及将其变成一维的。

Matplotlib

在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。这里,我们来介绍一下图形的绘制方法和图像的显示方法。
在这里插入图片描述
plt.legend()Matplotlib 库中的一个函数,用于添加图例。在使用 plt.plot() 绘图时,我们可以在其中传入 label 参数设置该线条的标签,然后调用 plt.legend() 函数就可以在图中显示出该标签所对应的图例。该函数通常在绘制完所有的线条或散点图之后进行调用。
在这里插入图片描述
上面那个是绘制图形,这个是绘制图片。

感知机

感知机是什么? 感知机接收多个输入信号,输出一个信号。

以一个接收两个输入信号的感知机的例子:
在这里插入图片描述
x1x2是输入信号,y是输出信号,w1w2是权重
输入信号被送往神经元时,会被分别乘以固定的权重。神经元会计算传送过来的信号的总和,只有当这个总和超过 了某个界限值时,才会输出1。这也称为“神经元被激活”。这里将这个界限值称为阈值,用符号θ表示。
在这里插入图片描述

请用梯度法求f(x0+x1)=x02 +x12 的最小值。

import numpy as np
def function(x):#函数
    return x[0]**2+x[1]**2
def numerical_gradint(f,x):#计算梯度
    h=1e-4
    grad=np.zeros_like(x)

    for idx in range(x.size):
        tmp_val=x[idx]

        x[idx]=tmp_val+h
        fxh1=f(x)

        x[idx]=tmp_val-h
        fxh2=f(x)

        grad[idx]=(fxh1-fxh2)/(2*h)
        x[idx]=tmp_val
    return grad

def gradient_descent(f,init_x,lr=0.01,step_num=100):#根据梯度更新
    x=init_x
    for i in range(step_num):
        grad=numerical_gradint(f,x)
        x-=lr*grad
    return x

init_x=np.array([-3.0,4.0])
temp=gradient_descent(function,init_x=init_x,lr=0.1,step_num=100)
print(temp)

输出结果:

[-6.11110793e-10  8.14814391e-10]#接近于[0,0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值