前言
这篇博客包括吴恩达第二周编程作业代码以及自制思维导图总结,作为学习记录。如果要看大佬代码以及详细解读的朋友,我可以指个路,这是英文版,这是中文版。作为初学者,本文的代码是参考上述大佬后部分自己写的,而剩下部分原搬的代码也加了很多注释,便于理解。
代码
查看并处理数据
import numpy as np
import matplotlib.pyplot as plt
from lr_utils import load_dataset
# lr_utils 是能加载下载好的数据集 datasets 的python文件
def get_data():
# 将数据加载
train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_dataset()
# train_set_x_orig 训练集有209张64*64的图像
# train_set_y 训练集图像对应的标签值[0/1]
# test_set_x_orig 训练集有50张4*4的图像
# test_set_y 测试集图像对应的标签值[0/1]
# classes 保存的是以bytes类型保存的两个字符串数据,数据为[b' non-cat b' cat']
# 查看数据
index = 30
plt.imshow(train_set_x_orig[index])
plt.show()
print("x="+str(index)+",y="+str(train_set_y[:, index])+",it's a "+classes[np.squeeze(train_set_y[:, index])].decode("UTF-8")+"‘ picture")
# 使用np.squeeze的目的是压缩维度,【未压缩】train_set_y[:,index]的值为[1] , 【压缩后】np.squeeze(train_set_y[:,index])的值为1
# 只有压缩后的值才可以进行解码操作
m_train = train_set_y.shape[1] # 训练集里图片的数量。
m_test = test_set_y.shape[1] # 测试集里图片的数量。
num_px = train_set_x_orig.shape[1] # 训练、测试集里面的图片的宽度和高度(均为64x64)。
print("训练集的数量: m_train = " + str(m_train))
print("测试集的数量 : m_test = " + str(m_test))
print("每张图片的宽/高 : num_px = " + str(num_px))
print("每张图片的大小 : (" + str(num_px) + ", " + str(num_px) + ", 3)")
print("训练集_图片的维数 : " + str(train_set_x_orig.shape))
print("训练集_标签的维数 : " +