神经网络与深度学习(二)- Python, Vectorization and Practice

本文深入探讨了向量化运算如何提升神经网络的运算效率,并以Python实现逻辑回归为例,详细阐述了数据预处理、前向传播、后向传播、梯度下降及预测等步骤,用于解决图像二分类问题。
摘要由CSDN通过智能技术生成

第二篇主要讲述向量化运算带来的运算速度地提升以及代码的简洁,还有运用python实现逻辑回归的过程

Vectorization

下图左边是上一篇我们提到的逻辑回归算法,我们发现如果我们的数据量很大,而且参数很多的话,那么我们的for loop循环将非常耗时,再因为我们不止训练一次,而是要多次训练,将会非常耗时,因此为了让神经网络可实施,引入python的向量化运算,就会变成下图右边,不仅运算速度提高,而且代码也更加简洁。
这里写图片描述

Practice

接下来讲解实际使用python实现逻辑回归的过程,我们要完成的是对于图像的二分类问题,即该图是猫还是不是猫。输入图片经过神经网络输出预测 y = 1 y = 1 y=1(是猫) or y = 0 y = 0 y=0 (不是猫)

第一步:数据的预处理
  1. 平铺数据变为列向量
  2. 数据均值归一化,对于图片数据简单除以255进行处理
### flatten datasets
train_set_x_flatten = train_set_x_orig.reshape(train_set_x_orig.shape[0], -1).T
test_set_x_flatten = test_set_x_orig.reshape(test_set_x_orig.shape[0], -1).T
### standardize dataset
train_set_x = train_set_x_flatten/255.
test_set_x = test_set_x_flatten/255
第二步:实现前向传播(计算当前代价函数值)与后向传播(计算当前梯度)

前向传播:

  • A = σ ( w T X + b ) = ( a ( 0 ) , a ( 1 ) , . . . , a ( m − 1 ) , a ( m ) ) A = \sigma(w^T X + b) = (a^{(0)}, a^{(1)}, ..., a^{(m-1)}, a^{(m)}) A=σ(wTX+b)=(a(0),a(1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值