吴恩达深度学习作业之deepleraning_L1W2_h1

article/2025/5/19 20:39:02
#吴恩达《深度学习》L1W2作业1 知识点:numpy入门,函数向量化实现
'''
做完这个作业,你能学会:用ipython notebook
用numpy,包括函数调用及向量矩阵运算
理解“广播”的概念
向量化代码
'''
#我们很少在深度学习中使用“math”库。 因为math函数的输入是实数.
#而深度学习中主要使用的是矩阵和向量,因此numpy更为实用。
a=5
b=[1,2,3,4]
import math
math.exp(a)

math.exp(b)

import numpy as np
np.exp(a)

np.exp(b)

#np.exp? (例如)快速访问使用文档。
np.exp?

 

#定义两个函数,分别是sigmoid函数和sigmoid_derivative函数;
#sigmoid函数是逻辑函数;sigmoid_derivative是逻辑回归的求导函数;
#sigmoid(x)=1/(1+exp(-x))
#sigmoid_derivative(x)=sigmoid(x)*(1-sigmoid(x))def sigmoid(x):return 1/(1+np.exp(x))def sigmoid_derivative(x):return sigmoid(x)*(1-sigmoid(x))
#对实数适用;
sigmoid(a),sigmoid_derivative(a)

#重塑数组,深度学习中两个常用的numpy函数是np.shape和np.reshape()。
'''
例如,在计算机科学中,图像由shape为(length,height,depth=3)的3D数组表示。但是,当你读取图像作为算法的输入时,
会将其转换为维度为(length*height*depth,1)的向量。换句话说,将3D阵列“展开”或重塑为1D向量。
'''
#定义图像转向量的方法;也可以定义向量转图像的方法;def image_to_vector(input_image):output_vector=np.reshape(input_image,(-1,1))return output_vectordef vector_to_image(input_vector,length,height,depth):out_image=np.reshape(input_vector,(length,height,depth))return out_image#图像示例
image = np.array([[[ 0.67826139,  0.29380381],[ 0.90714982,  0.52835647],[ 0.4215251 ,  0.45017551]],[[ 0.92814219,  0.96677647],[ 0.85304703,  0.52351845],[ 0.19981397,  0.27417313]],[[ 0.60659855,  0.00533165],[ 0.10820313,  0.49978937],[ 0.34144279,  0.94630077]]])import matplotlib.pyplot as plt image.shape

 

#图像转向量
vector1=image_to_vector(image)
#向量转图像
image1=vector_to_image(vector1,3,3,2)vector1.shape,image1.shape

 

#对行执行标准化
'''
我们在机器学习和深度学习中使用的另一种常见技术是对数据进行标准化。 由于归一化后梯度下降的收敛速度更快,通常会表现出更好的效果。 
通过归一化,也就是将x更改为x/norm(x)(将x的每个行向量除以各行的范数)。x是数组或者类数组。
'''
#定义normalizeRowsdef normalizeRows(x):rows_norm=np.linalg.norm(x,axis=1).reshape(-1,1)x_norm=x/rows_normreturn x_norm
x = np.array([[0, 3, 4],[1, 6, 4]])normalizeRows(x)

 

#axis=1对行运算;axis=0对列运算
np.linalg.norm(x,axis=1),np.linalg.norm(x,axis=0)

 

# 广播和softmax函数
'''
在numpy中要理解的一个非常重要的概念是“广播”。 
这对于在不同形状的数组之间执行数学运算非常有用。 
使用numpy实现softmax函数。 
你可以将softmax理解为算法需要对两个或多个类进行分类时使用的标准化函数。总结一下softmax如何将多分类输出转换为概率,可以分为两步:1)分子:通过指数函数,将实数输出映射到零到正无穷。2)分母:每行将所有结果相加。
这样得到的数组,每行之和都是1.
'''
def softmax(x):exp_x=np.exp(x)sum_exp_x=np.sum(exp_x,axis=1).reshape(-1,1)softmax_x=exp_x/sum_exp_xreturn softmax_xx = np.array([[9, 2, 5, 0, 0],[7, 5, 0, 0 ,0]])softmax(x),np.sum(softmax(x),axis=1)

 

#向量化
'''
在深度学习中,通常需要处理非常大的数据集。 因此,
非计算最佳函数可能会成为算法中的巨大瓶颈,并可能使模型运行一段时间。 
为了确保代码的高效计算,我们将使用向量化。 
例如,尝试区分点/外部/元素乘积之间的区别。
'''
'''
向量化的实现更加简洁高效。 对于更大的向量/矩阵,运行时间的差异变得更大。
不同于np.multiply()和* 操作符(相当于Matlab / Octave中的 .*)执行逐元素的乘法,
np.dot()执行的是矩阵-矩阵或矩阵向量乘法,
'''
b=[1,2,3,4]b1=np.array(b).reshape(1,4)
b2=b1.reshape(4,1)
b1,b2

 

#实现L1和L2损失函数
'''
损失函数用于评估模型的性能。 损失越大,预测() 与真实值()的差异也就越大。 在深度学习中,
我们使用诸如Gradient Descent之类的优化算法来训练模型并最大程度地降低成本。'''
'''
h:预测值;y,实际值。L1=sum(abs(h-y))L2=sum((h-y)**2)a**2,为a的2次方。
'''def L1(h,y):return sum(np.abs(h-y))def L2(h,y):return sum((h-y)**2)h= np.array([.9, 0.2, 0.1, .4, .9])
y = np.array([1, 0, 0, 1, 1])
L1(h,y),L2(h,y)

 

'''
你需要记住的内容:
-向量化在深度学习中非常重要, 它保证了计算的效率和清晰度。
-了解L1和L2损失函数。
-掌握诸多numpy函数,例如np.sum,np.dot,np.multiply,np.maximum等。
'''

https://www.heywhale.com/mw/project/5dd236a800b0b900365eca9b


http://chatgpt.dhexx.cn/article/eZUjT0At.shtml

相关文章

吴恩达深度学习编程作业报错解决方法汇总

概述及资源分享 大二结束后的暑假,学习吴恩达深度学习([双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili)的课程,在做编程作业的时候总是遇到一些报错,尤其是导入所需要的库的时候会报一些No model。。。的…

旧版吴恩达深度学习环境搭建(anaconda+tensorflow+jupyter notebook)(呕心沥血诚意之作)

本人在参考多位博主的文章后,多次尝试才成功配置了tensorflow1.2.1的环境(课程建议Python3.6tensorflow1.2.1Keras2.0.7)。在此之前,曾经尝试用tensorflow2.x降级的方法(import tensorflow.compat.v1 as tf&#xff09…

《吴恩达深度学习》编程作业-第二周

目录 1.题目:基于神经网络思维模式的逻辑回归 2.声明 3.知识回顾 4.Python编程分析 4.1.导入需要用的库 4.2.数据处理 4.2.1.读取数据(包括训练集和测试集) 4.2.2.取出数据(包括训练集和测试集,还有标签的值&a…

吴恩达 深度学习 2021版 作业

练习 神经网络与深度学习神经网络基础Numpy基础1-使用numpy构建基本函数 神经网络与深度学习 神经网络基础 Numpy基础 学习目标: 使用numpy,包括函数调用及向量矩阵运算广播向量化代码 1-使用numpy构建基本函数 1.1- sigmoid function和np.exp&…

吴恩达深度学习

最近在学习吴恩达老师的深度学习,边学边随手记一些东西,留个简单的笔记,以便日后复习。 第一周 结构化数据:每个特征都有清晰的定义 非结构化数据:音频、图像、文本等 大规模的神经网络大规模的带标签数据 第一周习题…

吴恩达《深度学习专项》笔记(十二):目标检测与语义分割简介 (YOLO, U-Net)

这节课中,我们要学习计算机视觉中最重要的任务之一——目标检测任务。我们会先认识目标定位和关键点检测这两个比较简单的任务,慢慢过度到目标检测任务。之后,我们会详细学习目标检测的经典算法YOLO。最后,我们会稍微认识一下语义…

吴恩达:28张图全解深度学习知识

吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适合机器学习从业者和研究者复习基本概念。喜欢记得关注、收藏、点赞。 这不仅仅是一…

吴恩达深度学习深度学习概述以及优化

深度学习概述及优化 1、深度学习概述2、神经网络基础之逻辑回归3、深层神经网络4、深度学习实用层面4.1 训练集、验证集、测试集4.2 偏差、方差4.3 L1、L2正则化4.4 归一化处理4.5 Dropout4.6 其他正则化方法4.7 梯度消失和爆炸 1、深度学习概述 在之前的吴恩达机器学习课程中…

深度学习-吴恩达:一、神经网络和深度学习

文章目录 1、what is a Neural Network?(什么是神经网络)2、Supervised Learning with Neural Networks (监督学习)3、为什么深度学习会兴起?第一周测验测验题答案 1、what is a Neural Network?(什么是神…

IOS开发视频教程《保卫萝卜》-任亮-专题视频课程

IOS开发视频教程《保卫萝卜》—3411人已学习 课程介绍 《保卫萝卜CarrotFantasy》是一款由开发商“凯罗天下”开发的超萌塔防小。14种防御塔保卫萝卜战怪兽。保卫萝卜是一款制作精美的超萌塔防游戏,游戏含有丰富的关卡和主题包,拥有各自风格特色…

ios游戏开发 Sprite Kit教程:初学者 1

注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点Sprite Kit vs Cocos2D-iPhone vs Cocos2D-X vs UnityHello, Sprite Kit!横屏显示移动怪兽发射炮弹碰撞检测: 概述碰撞检测: 实现收尾何去何从? 在iOS 7中内置了一个新的Sprite Kit框架…

HTML5游戏开发高级教程 | Lynda教程 中文字幕

HTML5游戏开发高级教程 | Lynda教程 中文字幕 Advanced HTML5 Game Development 课程ID: 597988 时长: 2.3小时 所属类别:Html 全部游戏开发课程 了解如何使用HTML5创建交互式,动态和丰富多彩的游戏 在本课程中,学习如何充分利用所有HTML5功能来创建…

ios游戏开发 Sprite Kit教程:初学者 2

注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点Sprite Kit vs Cocos2D-iPhone vs Cocos2D-X vs UnityHello, Sprite Kit!横屏显示移动怪兽发射炮弹碰撞检测: 概述碰撞检测: 实现收尾何去何从? 横屏显示 首先,在Project Na…

【游戏开发教程】Unity iOS平台接入微信SDK,实现微信登录等功能(教程 | 流程讲解)

文章目录 一、前言二、流程1、申请开发者账号2、创建应用3、下载SDK4、导入到Unity中5、编写Objective-C代码5.1、CustomAppController.mm5.2、WXApiManager.h5.3、WXApiManager.mm5.4、注册回调对象5.5、封装初始化接口5.6、封装登录接口5.7、其他接口封装 6、XCodeAPI7、关于…

iOS开发知识概览

1、学习ios开发的知识概览,经常会认为ios开发会学那些知识,如何把断断续续的知识连接起来, 这就让你有了全局的了解,如何去计划和安排自己的学习计划,有了全局的知识体系。 原文来自:https://github.com/sh…

IOS 开发之逆向分析

在逆向过程中很多时候需要分析 APP 和 Web 端数据交互的内容那么最简单的方式即是抓包网络分析,而使用 Charles、Tcpdump 也是逆袭分析最基本的手段。本文以 Charles 为例来介绍网络相关的内容。 Charles 是在 Mac 下常用的网络封包截取工具,在做 移动开…

ios游戏开发

知识系统 英文教程网站 http://www.csdn.net/article/2012-12-20/2813035-game-dev-guide 开发类库 http://www.csdn.net/article/2012-11-07/2811587-pop-ios-dev-library

芒果iOS开发之Swift教程01-Swift基础

【主要内容】 1.关于Swift 2.Hello World 3.常量和变量 4.类型标注 5.常量和变量的命名 6. 输出常量和变量 7.注释 8.分号 一、关于Swift 苹果在2014年WWDC(苹果开发者大会)发布了Swift,用于编写iOS,Mac OS X和watchOS…

ios教程,用pc开发ios游戏

原文是Thomas Henshell对手机游戏Catch the Monkey的开发总结,由Lyra翻译。 传智播客今年6月开始ios培训(http://ios.itcast.cn)的课程;相对于一些应用,我本人对ios游戏开发更感兴趣,这些开发总结并不拘泥…

RPG游戏开发基础教程

RPG游戏开发基础教程 第一步 下载RPG Maker 开发工具包 1.RPG Maker 是什么?RPG Maker 是由Enterbrain公司推出的RPG制作工具。 中文译名为RPG制作大师。 熟悉的人喜欢简称为RM。 根据发行版本的不同,RM在国内流行的版本有4款: 2.附上资源下载地址:点击进入网盘下载 3.关于…