黑马深度学习和CV入门2——深度学习

01.神经网络、优化方法与正则化

激活函数

在这里插入图片描述

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,1000)
y = tf.nn.sigmoid(x)
plt.plot(x,y)
plt.grid()
plt.show()
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,1000)
y = tf.nn.tanh(x)
plt.plot(x,y)
plt.grid()
plt.show()

在这里插入图片描述

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,1000)
y = tf.nn.relu(x)
plt.plot(x,y)
plt.grid()
plt.show()

在这里插入图片描述
在这里插入图片描述

参数初始化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

神经网络的搭建

在这里插入图片描述

import tensorflow as tf
import tensorflow.keras as keras
import tensorflow.keras.layers as layers


model = keras.Sequential([
    #第一个隐层
    layers.Dense(3,activation="relu",kernel_initializer="he_normal",name="layer1",input_shape=(3,)),
    #第二个隐层
    layers.Dense(2,activation="relu",kernel_initializer="he_normal",name="layer2"),
    #输出层
    layers.Dense(2,activation="relu",kernel_initializer="he_normal",name="layer3")
])
model.summary()

利用function API构建神经网络

import tensorflow as tf
import tensorflow.keras as keras
import tensorflow.keras.layers as layers


#定义模型的输入
inputs = keras.Input(shape=(3,),name='input')
#第一个隐层
x = layers.Dense(3,activation="relu",name="layer1")(inputs)
#第二个隐层
x = layers.Dense(2,activation="relu",name="layer2")(x)
#输出层
outputs = layers.Dense(2,activation="sigmoid",name="layer3")(x)
#创建模型
model = keras.Model(inputs=inputs,outputs=outputs,name="Functional API Model")

model.summary()


通过model的子类构建神经网络

import tensorflow as tf
import tensorflow.keras as keras
import tensorflow.keras.layers as layers



#定义一个model的子类
class MyModel(keras.Model):
    #定义网络的层结构
    def __init__(self):
        super(MyModel,self).__init__()
        #第一个隐层
        self.layer1 = layers.Dense(3,activation="relu",name="layer1")
        #第二个隐层
        self.layer2 = layers.Dense(2,activation="relu",name="layer2")
        #输出层
        self.layer3 = layers.Dense(2,activation="sigmoid",name="layer3")
    #定义网络的前向传播
    def call(self,inputs):
        x = self.layer1(inputs)
        x = self.layer2(x)
        outputs = self.layer3(x)
        return outputs
#实例化模型
model = MyModel()
#设置输入
x = tf.ones((1,3))
y = model(x)
model.summary()


神经网络的优缺点

在这里插入图片描述

常见的损失函数

在这里插入图片描述
在这里插入图片描述

交叉熵损失函数

import tensorflow as tf

#设置真实值和预测值
y_true = [[0,1,0],[0,0,1]]
y_pre = [[0.05,0.9,0.05],[0.05,0.05,0.9]]
#实例化交叉熵损失
cce=tf.keras.losses.CategoricalCrossentropy()
#计算损失结果
print(cce(y_true,y_pre))

二分类的交叉熵损失函数

import tensorflow as tf

#设置真实值和预测值
y_true = [[0],[1]]
y_pre = [[0.1],[0.9]]
#实例化交叉熵损失
bce=tf.keras.losses.BinaryCrossentropy()
#计算损失结果
print(bce(y_true,y_pre))

MAE损失(L1 LOSS)

import tensorflow as tf

#设置真实值和预测值
y_true = [[0],[1]]
y_pre = [[1.],[0.]]
#实例化MAE损失
mae = tf.keras.losses.MeanAbsoluteError()
mae(y_true,y_pre)

MSE损失(L2 LOSS)在这里插入图片描述

在这里插入图片描述

smoth L1损失

在这里插入图片描述
在这里插入图片描述

梯度下降算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

反向传播算法(BP算法)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动量梯度下降算法

在这里插入图片描述
在这里插入图片描述

AdaGrad

在这里插入图片描述

RMSprop

在这里插入图片描述

Adam算法

在这里插入图片描述
在这里插入图片描述

学习率退火

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

深度学习正则化

L1、L2正则化
在这里插入图片描述
在这里插入图片描述
Dropout正则化
在这里插入图片描述
在这里插入图片描述
提前停止
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值