【吴恩达深度学习课后作业】编程作业遇到的问题及解决办法(课程1)第二周

参考编程作业的学习地址:【吴恩达课后编程作业】Course 1 - 神经网络和深度学习 - 第二周作业 - 具有神经网络思维的Logistic回归
原文链接:https://blog.csdn.net/u013733326/article/details/79639509

lr_utils.pydatasets是原始文件,我们需要将其相关数据从中提取出来。区别于利用jupyter,我使用PyCharm2020.1.3作为操作平台。

1. 保存的文件目录中不得含有中文,会报错。且两个原始文件需保存在同一个workspace中。

2. 除却导入lr_utils.py、h5py和numpy外,还需导入matplotlib.pyplot作为Python中绘制图表的库,否则在调试代码的过程中无法显示相应的运行图片。

3. train_set_y和train_set_x_orig的含义:

# train_set_y对应图片的二进制保存形式,是1*n的数组;.shape[0]表示1,.shape[1]表示n
# train_set_x_orig.shape[0]代表图片的维数(数量);train_set_x_orig.shape[1]代表图片的高度;train_set_x_orig.shape[2]代表图片的宽度

但是通常情况下,img.shape[0]表示图片的垂直尺寸(高度);img.shape[1]表示图片的水平尺寸(宽度);img.shape[2]表示图片的通道数。

4. 已导入matplotlib库,但是plt.imshow(train_set_x_orig[index])不显示图像。在其下方添加plt.show()函数,将plt.imshow()处理后的函数显示出来。

5. np.squeeze及utf-8的含义:

使用np.squeeze的目的是压缩维度,【未压缩】train_set_y[:,index]的值为[1] , 【压缩后】np.squeeze(train_set_y[:,index])的值为1
# # print("【使用np.squeeze:" + str(np.squeeze(train_set_y[:,index])) + ",不使用np.squeeze: " + str(train_set_y[:,index]) + "】")
# # 只有压缩后的值才能进行解码操作
# print("y=" + str(train_set_y[:,index]) + ", it's a " + classes[np.squeeze(train_set_y[:,index])].decode("utf-8") + "' picture")

# utf-8编码是多字符集编码,支持多国语言,可以实现在同一页面上同时显示多国语言。在UTF-8中,英文编码是8位(1字节),中文编码是24位(3字节)。

6. 编译时报错“IndentationError:unexpected indent”。代码的缩进有问题。

7. 编译时报错“SyntaxError: 'return' outside function”。return关键字只能在def自定义函数中使用,没有自定义函数不能出现return这个关键字,可检查代码。

8. Pycharm误删代码。在菜单栏的“VCS”中选择第一项Local history,进一步选择show history,即可看到本地保存的不同版本的代码。

 选择自己需要的版本,将删除的代码通过箭头选取插入到现存的代码中,保存关闭。

你可能感兴趣的:(吴恩达的课后作业,神经网络学习,深度学习,人工智能)