标题: Python深度学习之初窥神经网络 [打印本页] 作者: 杨利霞 时间: 2020-5-12 11:55 标题: Python深度学习之初窥神经网络 ; u. q4 q1 d0 e# Z6 f Python深度学习之初窥神经网络- L# L/ H. \2 C1 t. P% n
本文为 第2章 开始之前:神经网络背后的数学 (Chapter 2. Before we begin: the mathematical building blocks of neural networks) 的笔记整合。 }: N4 p- D8 u6 Z T2 D) n6 w
; Z3 S$ G. e2 X$ O; a4 ?- A6 t
本文目录:7 u' G4 M) o% R
" v5 T2 F S* f: M# E$ `文章目录8 B$ M: i# n. _3 s5 r' ?( T
* w( [0 p+ h" a/ @+ tDeep Learning with Python 2 M3 z6 i. u. n! u* N初窥神经网络 ' Q9 o' O* E) ?: @- n5 x' r) V5 v导入MNIST数据集% }! u! M' t j
网络构建 ( f( Q0 s* H5 h编译# o2 q" G) l! Q/ Z' P5 L! X
预处理 6 E; }. E7 X" L% a6 C图形处理" d7 g R3 C( [! \+ i* E+ s ^9 D
标签处理 C. \0 @0 x# w$ r训练网络+ D+ k. k1 {8 m* O; o4 ]! O% g' S
神经网络的数据表示* W3 k. u( {* C* T, |3 ]6 f
认识张量7 p6 i2 \" b+ U3 z6 F/ C3 D. ?
标量 (0D Tensors) ; w8 W3 C& c" J. F' i向量 (1D Tensors) " o3 l, ?3 _7 o矩阵 (2D Tensors)5 B) z) V: d- j5 |! @. T
高阶张量 ; K. L# i' p$ C, X# E张量的三要素, d; M6 B; v' ?/ O
Numpy张量操作 / }0 q1 B, v2 Q* `张量切片:0 L9 s7 K4 R( A
数据批量 % {. u U: N4 U! {; o常见数据张量表示 / q: z* U; f1 e6 i; P# p神经网络的“齿轮”: 张量运算$ Z* m8 x3 e- y/ Q$ N9 J
逐元素操作(Element-wise); R/ v2 l! O8 C0 }! J7 c
广播(Broadcasting): G7 j) f# ~# H6 x7 J" b
张量点积(dot) ' t/ L3 D# ^8 Q7 A5 |5 N张量变形(reshaping): l; r; i8 {: W7 J7 {
神经网络的“引擎”: 基于梯度的优化( f" |# @$ J3 H Q3 ~' M7 {
导数(derivative)3 n, D0 n1 N$ w6 Q8 I
梯度(gradient) ( ?0 S4 C$ d, y: f8 y随机梯度下降(Stochastic gradient descent); n; p9 B' L( J4 M$ f
反向传播算法:链式求导 / e: p! s* `7 V9 L: e4 ^4 p, |本文由 CDFMLR 原创,收录于个人主页 https://clownote.github.io。 - L+ b0 m/ ~7 R# Y 0 S7 O3 q- v; i& T; E初窥神经网络 6 s7 m3 u! T( D0 p 7 G G* i2 H$ F5 k6 q" `$ P学编程语言从 “Hello World” 开始,学 Deep learning 从 MINST 开始。 $ f; U2 C7 s! F- X 3 @& J3 ]! E) h3 iMNIST 用来训练手写数字识别, 它包含 28x28 的灰度手写图片,以及每张图片对应的标签(0~9的值)。 0 H s9 J" @: _9 O5 N: a ' Y: W" _8 s) [导入MNIST数据集 % i; o9 e- U: y0 l; t- q. K9 I A! M" ^; G
# Loading the MNIST dataset in Keras5 w" m- x9 o$ F
from tensorflow.keras.datasets import mnist. b5 d) a/ t3 A
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()5 H& S: G2 o8 R, N; q0 l& |8 C9 a
1 ! |5 C9 l/ W/ I7 Y27 U( N5 [3 w( Y
3 . u( L5 b6 @. E q2 K/ }看一下训练集: 6 w2 ], ^) e+ i' J: Z( T& c9 X# _
print(train_images.shape)$ Q" x6 b% k) n+ Y: I* V* `( T
print(train_labels.shape) 0 Z% B) a$ E% D( x* Q4 ^& ntrain_labels; m1 x1 y# E0 |
11 j8 `$ Q( `; d* `
2 7 \9 m$ x7 C5 v' A( O* {) }+ U3 8 s" s. d( U7 u0 u _输出: + e0 s& r& X& g- C4 }( Z- \ P9 W! S3 m1 ]# \. p9 y
(60000, 28, 28): s m$ r4 N2 z5 O
(60000,)8 x: _4 q: B$ U