我是靠谱客的博主 强健乐曲,最近开发中收集的这篇文章主要介绍cs231n 部分代码解释,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

由于记性不大好,所以还是边学习边整理吧

dropout(随机失活) p值更高 = 随机失活更弱

# -*-coding:utf-8-*-
**#添加这一句话,可以是pycharm打印出来中文**
import numpy as np
import random
import matplotlib.pyplot as plt
p = 0.1
h1 = np.array([[1,1.25,2.87],[2,0.36,0.24]])
u1 = np.random.rand(*h1.shape) < p
#每一个神经元随机失活的概率,这里是0.1的话说明失活的概率是0.9,False的概率变高
#这里使用×h.shape是因为rand里面只能输入整数,×就转化为integer
print u1

打印结果:(可以明显的看出来False概率比较高,因为设置是0.1,所以False概率是0.9;如果设置为0.9,那么True概率是0.1)
第一次
[[False False True]
[False False False]]
第二次
[[False False True]
[False False False]]
第三次
[[False False False]
[False False False]]

如果使用随机失活,那么predict函数中激活函数必须乘以p

def predict(X):
# 前向传播时模型集成
H1 = np.maximum(0, np.dot(W1, X) + b1) * p # 注意:激活数据要乘以p
H2 = np.maximum(0, np.dot(W2, H1) + b2) * p # 注意:激活数据要乘以p
out = np.dot(W3, H2) + b3

反向随机失活(inverted dropout),它是在训练时就进行数值范围调整,从而让前向传播在测试时保持不变。-----效果好

反向随机失活
U1 = (np.random.rand(*H1.shape) < p) / p # 第一个随机失活遮罩. 注意/p!
def predict(X):
# 前向传播时模型集成
H1 = np.maximum(0, np.dot(W1, X) + b1) # 不用数值范围调整了
H2 = np.maximum(0, np.dot(W2, H1) + b2)
out = np.dot(W3, H2) + b3
预测函数

最后

以上就是强健乐曲为你收集整理的cs231n 部分代码解释的全部内容,希望文章能够帮你解决cs231n 部分代码解释所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部