[手把手系列之二]实现多层神经网络

这篇博客详细介绍了如何从头开始实现一个多层神经网络,包括网络的用途、数学表示、网络架构、模型定义、激活函数、参数初始化、前向传播、反向传播、参数优化、模型评测和模型预测等步骤。作者提供了代码实现,并强调理解网络运算过程和注意变量形状的重要性。
摘要由CSDN通过智能技术生成

完整代码:>>点我 欢迎star,fork,一起学习

网络用途

或者说应用场景:使用单层神经网络来识别一张图片是否是猫咪的图片。

数学表示

给定一张图片 X X 送到网络中,判断这张图片是否是猫咪的照片?

网络架构

多层神经网络处理过程:

  • X –> [ l i n e a r + r e l u ] ( L 1 ) —>[linear + sigmoid] —> y^ y ^

    数学表示

    训练集: X=[x(1),x(2),...,x(i),....,x(m)] X = [ x ( 1 ) , x ( 2 ) , . . . , x ( i ) , . . . . , x ( m ) ] ;对应标签: Y=[y(1),y(2),...,y(i),...,y(m)] Y = [ y ( 1 ) , y ( 2 ) , . . . , y ( i ) , . . . , y ( m ) ] ;

    对于训练集中的每张照片 x(i) x ( i ) 的处理过程:

    repeat:

    z

神经网络是一种模拟人脑神经元之间相互连接的计算模型。在Python中,可以使用多种库来实现神经网络,如TensorFlow、PyTorch和Keras。下面是一个简单的手把手教程来构建一个基本的神经网络模型: 1. 导入所需的库: ```python import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.optimizers import Adam ``` 2. 加载数据集: ```python (x_train, y_train), (x_test, y_test) = mnist.load_data() ``` 3. 数据预处理: ```python # 将图像转换为一维向量 x_train = x_train.reshape(x_train.shape[0], -1) x_test = x_test.reshape(x_test.shape[0], -1) # 将图像像素值缩放到0-1之间 x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 # 对标签进行独热编码 y_train = tf.keras.utils.to_categorical(y_train, num_classes=10) y_test = tf.keras.utils.to_categorical(y_test, num_classes=10) ``` 4. 构建模型: ```python model = Sequential() model.add(Dense(64, activation='relu', input_shape=(784,))) model.add(Dense(64, activation='relu')) model.add(Dense(10, activation='softmax')) ``` 5. 编译模型: ```python model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy']) ``` 6. 训练模型: ```python history = model.fit(x_train, y_train, batch_size=128, epochs=10, validation_split=0.2) ``` 7. 评估模型性能: ```python loss, accuracy = model.evaluate(x_test, y_test) print('Test loss:', loss) print('Test accuracy:', accuracy) ``` 这是一个简单的示例,你可以根据自己的需求和数据集进行进一步的修改和调整。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值