赞
踩
import numpy as np
x = np.array([[1, 2, 3], [4, 5, 6]])
print(x.shape) # (2, 3)——shape表示多维数组的形状
print(x.ndim) # 2——ndim表示维数
W = np.array([[1, 2, 3], [4, 5, 6]])
X = np.array([[0, 1, 2], [3, 4, 5]])
print(W + X) # array([[1, 3, 5], [7, 9, 11]])
print(W * X) # array([[0, 2, 6], [12, 20, 30]])
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(np.dot(A,B)) # array([[19, 22], [43, 50]])
import numpy as np
def sigmoid (x):
raturn 1 / (1 + np.exp(-x))
x = np.random.randn(10, 2) # 神经网络的输入
W1 = np.random.randn(2, 4) # 第1个全连接层的权重
b1 = np.random.randn(4) # 第1个全连接层的偏置
W2 = np.random.randn(4, 3) # 第2个全连接层的权重
b2 = np.random.randn(3) # 第2个全连接层的偏置
h = np.dot(x, W1) + b1 # 第1个全连接层的计算
a = sigmoid(h) # 第1个全连接层的计算结果传入激活函数计算,得到隐层输入
s = np.dot(a, W2) + b2 # 隐层经过第1个全连接层的计算得到神经网络的输出
x 的形状是(10, 2),表示10笔二维数据组织为了1个mini-batch。最终输出的 s 的形状是(10, 3)。这意味着10笔数据一起被处理了,每笔数据都被变换为了三维数据。
import numpy as np class Sigmoid: """激活函数""" def __init__(self): self.params = [] def forward(self, x): return 1 / (1 + np.exp(-x)) class Affine: """全连接层""" def __init__(self, W, b): self.params = [W, b] def forward(self, x): W, b = self.params out = np.dot(x, W) + b return out class TwoLayerNet: """神经网络:输入神经元数,隐层神经元数,输出神经元数""" def __init__(self, input_size, hidden_size, output_size): I, H, O = input_size, hidden_size, output_size # 初始化权重和编置 W1 = np.random.randn(I, H) b1 = np.random.randn( H) W2 = np.random.randn(H, O) b2 = np.random.randn(O) # 生成层 self.layers = [ Affine(W1, b1), Sigmoid(), Affine(W2, b2) ] # 将所有的权重整理到列表中 self.params = [] for layer in self.layers: self.params += layer.params def predict(self, x): for layer in self.layers: x = layer.forward (x) return x x = np.random.randn(10, 2) model = TwoLayerNet(2, 4, 3) s = model.predict(x)
Python 中可以使用+运算符进行列表之间的拼接。
继续阅读:
《深度学习进阶:自然语言处理(第1章)》-读书笔记
《深度学习进阶:自然语言处理(第2章)》-读书笔记
《深度学习进阶:自然语言处理(第3章)》-读书笔记
《深度学习进阶:自然语言处理(第4章)》-读书笔记
《深度学习进阶:自然语言处理(第5章)》-读书笔记
《深度学习进阶:自然语言处理(第6章)》-读书笔记
《深度学习进阶:自然语言处理(第7章)》-读书笔记
《深度学习进阶:自然语言处理(第8章)》-读书笔记
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。