欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

深度学习课后作业——Course1-Week2

程序员文章站 2022-07-04 20:55:25
...

此篇摘自*这个巨巨*,本文只是加上了自己的总结


  • 数组相关

x[m,n]是通过numpy库引用数组或矩阵中的某一段数据集的一种写法,

m代表第m维,n代表m维中取第几段特征数据。

通常用法:x[:,n]或者x[n,:]

深度学习课后作业——Course1-Week2

  • np.shape

数组(矩阵)只有一个维度时,shape只有shape[0],返回的是该一维数组(矩阵)中元素的个数,通俗点说就是返回列数,因为一维数组只有一行,一维情况中array创建的可以看做list(或一维数组),创建时用()和[ ]都可以,多维就不可以这样子了,这里使用[ ]。

1.一维数组

深度学习课后作业——Course1-Week2

深度学习课后作业——Course1-Week2

2.二维数组

深度学习课后作业——Course1-Week2

3.三维数组

深度学习课后作业——Course1-Week2

  • np.squeeze

numpy.squeeze(a,axis = None)

 1)a表示输入的数组
 2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错
 3)axis的取值可为None 或 int 或 tuple of ints, 可选。若axis为空,则删除所有单维度的条目
 4)返回值:数组
 5) 不会修改原数组

1.一维数组 

 深度学习课后作业——Course1-Week2

2.二维数组

深度学习课后作业——Course1-Week2

结论:根据上例可知,np.squeeze()函数可以删除数组形状中的单维度条目,即把shape中为1的维度去掉,但是对非单维的维度不起作用。

3.三维数组

深度学习课后作业——Course1-Week2


我们要做的事是搭建一个能够**【识别猫】** 的简单的神经网络,你可以跟随我的步骤在Jupyter Notebook中一步步地把代码填进去,也可以直接复制完整代码,在完整代码在本文最底部。

在开始之前,我们有需要引入的库:

  •     numpy :是用Python进行科学计算的基本软件包。
  •     h5py:是与H5文件中存储的数据集进行交互的常用软件包。
  •     matplotlib:是一个著名的库,用于在Python中绘制图表。
  •     lr_utils :在本文的资料包里,一个加载资料包里面的数据的简单功能的库。

如果你没有以上的库,请自行安装。
lr_utils.py代码如下,你也可以自行打开它查看:

import numpy as np
import h5py
    
    
def load_dataset():
    train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
    train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
    train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels

    test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
    test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
    test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels

    classes = np.array(test_dataset["list_classes"][:]) # the list of classes
    
    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))
    
    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

解释以下上面的load_dataset() 返回的值的含义:

  •     train_set_x_orig :保存的是训练集里面的图像数据(本训练集有209张64x64的图像)。
  •     train_set_y_orig :保存的是训练集的图像对应的分类值(【0 | 1】,0表示不是猫,1表示是猫)。
  •     test_set_x_orig :保存的是测试集里面的图像数据(本训练集有50张64x64的图像)。
  •     test_set_y_orig : 保存的是测试集的图像对应的分类值(【0 | 1】,0表示不是猫,1表示是猫)。
  •     classes : 保存的是以bytes类型保存的两个字符串数据,数据为:[b’non-cat’ b’cat’]。

下面是主程序: