学习内容:
使用神经网络进行逻辑回归,学习算法的总体框架,包括初始化参数、计算成本函数和梯度、使用优化算法(梯度下降)
使用到的包:
numpy, matplotlib.pyplot, h5py, scipy, PIL.Image, scipy.ndimage, (lr_utils.load_dataset)
读取图片:
plt.imshow(train_set_x_orig[index]
了解训练集和测试集的维度:
train_set_x_orig 是shape为 (m_train, num_px, num_px, 3) 的array
可以通过train_set_x_orig[0]来取得m_train
为方便计算,一般要将图片的形状由(num_px, num_px, 3)转化为(num_px * num_px * 3, 1),使每一列的数组代表一张平铺的图片。
X_flatten = X.reshape(X.shape[0], -1).T
对每个像素进行归一化预处理
train_set_x = train_set_x_flatten/255.
test_set_x = test_set_x_flatten/255.
需要定义的函数:
def sigmoid(z):
s = 1 / (1 + np.exp(-z))
return s
这里z = np.dot(w.T, x) + b
---------------------------------------
def initialize_with_zeros(dim):
w = np.zeros((dim, 1))
b = 0
return w, b
这里dim = num_px * num_px * 3
----------------------------------------
def propagate(w, b, X, Y):m = X.shape[1] # number of examples
A = sigmoid(np.dot(w.T, X) + b) # forward