本文是 2020人工神经网络第一次作业 的参考答案第三部分
 

03 第三题参考答案


1.构造BP网络进行函数逼近

(1) 逼近简单函数

构建单隐层的神经网络,隐层节点个数20,传递函数为sigmoid函数,输出神经元的传递函数为线性函数。

▲ 神经网络结构

▲ 神经网络结构

直接在(0 ~ 1)之间均匀采样50个样本,使用最基本的BP算法训练上述网络。

▲ 逼近函数

▲ 逼近函数

随着训练次数的增加,网络的输入输出关系变化如下:
▲ 训练过程中网络对应函数的变化

▲ 训练过程中网络对应函数的变化

下面是网络误差收敛曲线:
▲ 网络误差收敛曲线

▲ 网络误差收敛曲线

(2) 将数据进行预处理

  • 将输入x转换到(-0.5, 0.5)之间
  • 将网络输出转换到(-0.8,0.8)之间
    ▲ 网络训练过程对应函数变化
    ▲ 网络训练过程对应函数变化

▲ 网络训练误差收敛曲线

▲ 网络训练误差收敛曲线

可以看到对于数据进行预处理之后,将样本的输入、输出都转换到关于0对称,网络收敛的速度和精度都得到了提高。

(3) 修改网络隐层传递函数

将网络隐层传递函数修改为双曲正切函数。修改学习速率η=0.25\eta = 0.25η=0.25。可以看到网络收敛速度又再一次增加了。
▲ 随着训练网络输入输出之间的关系

▲ 随着训练网络输入输出之间的关系

▲ 网络训练误差收敛曲线

▲ 网络训练误差收敛曲线

(4) 训练四个周期的函数

学习速率η=0.5\eta = 0.5η=0.5
▲ 逼近函数

▲ 逼近函数

▲ 函数逼近效果

▲ 函数逼近效果

▲ 网络训练误差收敛曲线

▲ 网络训练误差收敛曲线

(5) 训练六个周期的函数

使用隐层节点为20的神经网络,逼近六个周期的sin函数,单层网络训练不收敛。
▲ 逼近六个周期的函数

▲ 逼近六个周期的函数

随着训练过程增加,网络的输入输出函数稳定在一个中间值的状态。

▲ 网络输入输出函数变化情况

▲ 网络输入输出函数变化情况

▲ 网络误差收敛曲线

▲ 网络误差收敛曲线

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HW13BP.PY                    -- by Dr. ZhuoQing 2020-11-17
#
# Note:
#============================================================from headm import *#------------------------------------------------------------
# Samples data constructionx_data = linspace(-0.5, 0.5, 50).reshape(-1, 1)
y_data = (sin(x_data*6*pi)*0.8).reshape(1,-1)#------------------------------------------------------------xx = linspace(-0.5,0.5, 500)
yy = sin(xx*6*pi) * 0.8
plt.plot(xx, yy, label='sin(2pix)')
plt.scatter(x_data.reshape(-1,1), y_data.reshape(-1,1), color='r')
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True)
plt.tight_layout()
plt.show()#------------------------------------------------------------
def shuffledata(X, Y):id = list(range(X.shape[0]))random.shuffle(id)return X[id], (Y.T[id]).T#------------------------------------------------------------
# Define and initialization NN
def initialize_parameters(n_x, n_h, n_y):random.seed(2)W1 = random.randn(n_h, n_x) * 0.5          # dot(W1,X.T)W2 = random.randn(n_y, n_h) * 0.5          # dot(W2,Z1)b1 = zeros((n_h, 1))                       # Column vectorb2 = zeros((n_y, 1))                       # Column vectorparameters = {'W1':W1,'b1':b1,'W2':W2,'b2':b2}return parameters#------------------------------------------------------------
# Forward propagattion
# X:row->sample;
# Z2:col->sample
def forward_propagate(X, parameters):W1 = parameters['W1']b1 = parameters['b1']W2 = parameters['W2']b2 = parameters['b2']Z1 = dot(W1, X.T) + b1                    # X:row-->sample; Z1:col-->sample
#    A1 = 1/(1+exp(-Z1))A1 = (1-exp(-Z1))/(1+exp(-Z1))Z2 = dot(W2, A1) + b2                     # Z2:col-->sample
#    A2 = 1/(1+exp(-Z2))                       # A:col-->sampleA2 = Z2                                   # Linear outputcache = {'Z1':Z1,'A1':A1,'Z2':Z2,'A2':A2}return Z2, cache#------------------------------------------------------------
# Calculate the cost
# A2,Y: col->sample
def calculate_cost(A2, Y, parameters):err = [x1-x2 for x1,x2 in zip(A2.T, Y.T)]cost = [dot(e,e) for e in err]return mean(cost)#------------------------------------------------------------
# Backward propagattion
def backward_propagate(parameters, cache, X, Y):m = X.shape[0]                  # Number of the samplesW1 = parameters['W1']W2 = parameters['W2']A1 = cache['A1']A2 = cache['A2']dZ2 = (A2 - Y) #* (A2 * (1-A2))dW2 = dot(dZ2, A1.T) / mdb2 = sum(dZ2, axis=1, keepdims=True) / m#    dZ1 = dot(W2.T, dZ2) * (A1 * (1-A1))dZ1 = dot(W2.T, dZ2) * (1-A1**2)dW1 = dot(dZ1, X) / mdb1 = sum(dZ1, axis=1, keepdims=True) / mgrads = {'dW1':dW1,'db1':db1,'dW2':dW2,'db2':db2}return grads#------------------------------------------------------------
# Update the parameters
def update_parameters(parameters, grads, learning_rate):W1 = parameters['W1']b1 = parameters['b1']W2 = parameters['W2']b2 = parameters['b2']dW1 = grads['dW1']db1 = grads['db1']dW2 = grads['dW2']db2 = grads['db2']W1 = W1 - learning_rate * dW1W2 = W2 - learning_rate * dW2b1 = b1 - learning_rate * db1b2 = b2 - learning_rate * db2parameters = {'W1':W1,'b1':b1,'W2':W2,'b2':b2}return parameters#------------------------------------------------------------
# Define the training
DISP_STEP           = 2000#------------------------------------------------------------
pltgif = PlotGIF()#------------------------------------------------------------
def train(X, Y, num_iterations, learning_rate, print_cost=False):
#    random.seed(3)n_x = 1n_y = 1n_h = 20lr = learning_rateparameters = initialize_parameters(n_x, n_h, n_y)XX,YY = shuffledata(X, Y)costdim = []x = linspace(-0.5, 0.5, 250).reshape(-1,1)for i in range(0, num_iterations):A2, cache = forward_propagate(XX, parameters)cost = calculate_cost(A2, YY, parameters)grads = backward_propagate(parameters, cache, XX, YY)parameters = update_parameters(parameters, grads, lr)if print_cost and i % DISP_STEP == 0:printf('Cost after iteration:%i: %f'%(i, cost))costdim.append(cost)plt.clf()y,cache = forward_propagate(x, parameters)plt.plot(x.reshape(-1,1), y.reshape(-1,1))plt.xlabel("x")plt.ylabel("f(x)")plt.grid(True)plt.tight_layout()plt.draw()plt.pause(.1)pltgif.append(plt)if cost < 0.0001:breakXX,YY = shuffledata(X, Y)return parameters, costdim#------------------------------------------------------------
parameter,costdim = train(x_data, y_data, 200000, 0.5, True)
pltgif.save(r'd:\temp\1.gif')#------------------------------------------------------------
plt.clf()
plt.plot(arange(len(costdim))*DISP_STEP, costdim)
plt.xlabel("Step(10)")
plt.ylabel("Cost")
plt.grid(True)
plt.tight_layout()
plt.show()#------------------------------------------------------------
#        END OF FILE : HW13BP.PY
#============================================================

2.将BP网络隐层传递函数修改成ReLU

将上述神经网络中间隐层的传递函数修改成ReLU函数。

修改程序部分:
对于 forward_propagate()中,A1的取值过程为:

A1 = Z1
A1[A1< 0]=0

对于backward_propaget()部分:

A11 = A1
A11[A11>0] = 1
A11[A11<0] = 0
dZ1 = dot(W2.T, dZ2) * A11

▲ 网络输入输出函数关系演变过程

▲ 网络输入输出函数关系演变过程

▲ 逼近单个sin函数式,网络训练误差变化曲线

▲ 逼近单个sin函数式,网络训练误差变化曲线

从前面的逼近结果来看,使用ReLU函数,在相同的隐层节点的情况下,函数误差偏大。

为了改善函数逼近的效果,将神经网络中间的神经元增加到50个,此时函数比较的效果如下:
▲ 隐层节点个数为50个时网络收敛情况

▲ 隐层节点个数为50个时网络收敛情况

▲ 网络误差收敛情况

▲ 网络误差收敛情况

下面是处逼近四个周期的sin函数的过程。

▲ 逼近四个周期sin函数的过程

▲ 逼近四个周期sin函数的过程

▲ 网络训练误差收敛情况

▲ 网络训练误差收敛情况

下面是逼近六个周期sin函数的网络收敛过程。
▲ 逼近六个周期sin信号网络输入输出关系变化情况

▲ 逼近六个周期sin信号网络输入输出关系变化情况

▲ 逼近六个周期sin函数的网络误差收敛情况

▲ 逼近六个周期sin函数的网络误差收敛情况

下面将神经网络中的隐层节点的个数提高到100个,训练样本的个数增加到250个。仍然使用传递函数ReLU 来逼近六个周期的sin函数。函数的收敛情况如下:

下面是网络输入输出之间的函数随着训练次数的增加出现的变化:

▲ 网络输入输出之间的函数关系的变化情况

▲ 网络输入输出之间的函数关系的变化情况

下面是网络训练误差随着训练次数瘦脸的情况:
▲ 逼近六个周期sin网络误差变化

▲ 逼近六个周期sin网络误差变化

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HW13BPRELU.PY                    -- by Dr. ZhuoQing 2020-11-17
#
# Note:
#============================================================from headm import *#------------------------------------------------------------
# Samples data constructionx_data = linspace(-0.5, 0.5, 250).reshape(-1, 1)
y_data = (sin(x_data*4*pi)*0.8).reshape(1,-1)#------------------------------------------------------------
'''
xx = linspace(-0.5,0.5, 500)
yy = sin(xx*6*pi) * 0.8
plt.plot(xx, yy, label='sin(2pix)')
plt.scatter(x_data.reshape(-1,1), y_data.reshape(-1,1), color='r')
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True)
plt.tight_layout()
plt.show()'''
#------------------------------------------------------------
def shuffledata(X, Y):id = list(range(X.shape[0]))random.shuffle(id)return X[id], (Y.T[id]).T#------------------------------------------------------------
# Define and initialization NN
def initialize_parameters(n_x, n_h, n_y):random.seed(2)W1 = random.randn(n_h, n_x) * 0.5          # dot(W1,X.T)W2 = random.randn(n_y, n_h) * 0.5          # dot(W2,Z1)b1 = zeros((n_h, 1))                       # Column vectorb2 = zeros((n_y, 1))                       # Column vectorparameters = {'W1':W1,'b1':b1,'W2':W2,'b2':b2}return parameters#------------------------------------------------------------
# Forward propagattion
# X:row->sample;
# Z2:col->sample
def forward_propagate(X, parameters):W1 = parameters['W1']b1 = parameters['b1']W2 = parameters['W2']b2 = parameters['b2']Z1 = dot(W1, X.T) + b1                    # X:row-->sample; Z1:col-->sample
#    A1 = 1/(1+exp(-Z1))
#    A1 = (1-exp(-Z1))/(1+exp(-Z1))
#    A1 = array([[x if x > 0 else 0 for x in l] for l in Z1])A1 = Z1A1[A1< 0]=0Z2 = dot(W2, A1) + b2                     # Z2:col-->sample
#    A2 = 1/(1+exp(-Z2))                       # A:col-->sampleA2 = Z2                                   # Linear outputcache = {'Z1':Z1,'A1':A1,'Z2':Z2,'A2':A2}return Z2, cache#------------------------------------------------------------
# Calculate the cost
# A2,Y: col->sample
def calculate_cost(A2, Y, parameters):err = [x1-x2 for x1,x2 in zip(A2.T, Y.T)]cost = [dot(e,e) for e in err]return mean(cost)#------------------------------------------------------------
# Backward propagattion
def backward_propagate(parameters, cache, X, Y):m = X.shape[0]                  # Number of the samplesW1 = parameters['W1']W2 = parameters['W2']A1 = cache['A1']A2 = cache['A2']dZ2 = (A2 - Y) #* (A2 * (1-A2))dW2 = dot(dZ2, A1.T) / mdb2 = sum(dZ2, axis=1, keepdims=True) / m#    dZ1 = dot(W2.T, dZ2) * (A1 * (1-A1))
#    dZ1 = dot(W2.T, dZ2) * (1-A1**2)#    A11 = array([[1 if x >= 0 else 0 for x in l] for l in A1])A11 = A1A11[A11>0] = 1A11[A11<0] = 0dZ1 = dot(W2.T, dZ2) * A11dW1 = dot(dZ1, X) / mdb1 = sum(dZ1, axis=1, keepdims=True) / mgrads = {'dW1':dW1,'db1':db1,'dW2':dW2,'db2':db2}return grads#------------------------------------------------------------
# Update the parameters
def update_parameters(parameters, grads, learning_rate):W1 = parameters['W1']b1 = parameters['b1']W2 = parameters['W2']b2 = parameters['b2']dW1 = grads['dW1']db1 = grads['db1']dW2 = grads['dW2']db2 = grads['db2']W1 = W1 - learning_rate * dW1W2 = W2 - learning_rate * dW2b1 = b1 - learning_rate * db1b2 = b2 - learning_rate * db2parameters = {'W1':W1,'b1':b1,'W2':W2,'b2':b2}return parameters#------------------------------------------------------------
# Define the training
DISP_STEP           = 1000#------------------------------------------------------------
pltgif = PlotGIF()#------------------------------------------------------------
def train(X, Y, num_iterations, learning_rate, print_cost=False):
#    random.seed(3)n_x = 1n_y = 1n_h = 50lr = learning_rateparameters = initialize_parameters(n_x, n_h, n_y)XX,YY = shuffledata(X, Y)costdim = []x = linspace(-0.5, 0.5, 250).reshape(-1,1)for i in range(0, num_iterations):A2, cache = forward_propagate(XX, parameters)cost = calculate_cost(A2, YY, parameters)grads = backward_propagate(parameters, cache, XX, YY)parameters = update_parameters(parameters, grads, lr)if print_cost and i % DISP_STEP == 0:printf('Cost after iteration:%i: %f'%(i, cost))costdim.append(cost)plt.clf()y,cache = forward_propagate(x, parameters)plt.plot(x.reshape(-1,1), y.reshape(-1,1))plt.xlabel("x")plt.ylabel("f(x)")plt.grid(True)plt.tight_layout()plt.draw()plt.pause(.1)pltgif.append(plt)if cost < 0.0001:breakXX,YY = shuffledata(X, Y)return parameters, costdim#------------------------------------------------------------
parameter,costdim = train(x_data, y_data, 100000, 0.5, True)
pltgif.save(r'd:\temp\1.gif')#------------------------------------------------------------
plt.clf()
plt.plot(arange(len(costdim))*DISP_STEP, costdim)
plt.xlabel("Step(10)")
plt.ylabel("Cost")
plt.grid(True)
plt.tight_layout()
plt.show()#------------------------------------------------------------
#        END OF FILE : HW13BPRELU.PY
#============================================================
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【nuXmv学习笔记】1:交互式Shell和建模元素

    nuXmv是一种基于NuSMV开发的符号模型检测器&#xff0c;能够在有限状态系统上使用SAT的一些算法做验证&#xff0c;能够在无限状态系统上&#xff08;比如含有实数或者整数变量的系统&#xff09;使用SMT技术做验证。nuXmv支持同步系统&#xff0c;对异步系统不再支持。 1 nuX…...

    2024/4/27 22:41:42
  2. 【JVM】肝了一周,吐血整理出这份超硬核的JVM笔记(升级版)!!

    写在前面 最近&#xff0c;一直有小伙伴让我整理下关于JVM的知识&#xff0c;经过十几天的收集与整理&#xff0c;初版算是整理出来了。希望对大家有所帮助。 JDK 是什么&#xff1f; JDK 是用于支持 Java 程序开发的最小环境。 Java 程序设计语言Java 虚拟机Java API类库 J…...

    2024/4/17 6:51:01
  3. 往事如烟 - 老孟

    老孟在我这里印象很深刻&#xff0c;虽然我俩交情并不是很深&#xff0c;但是他乐观的心态和坚持努力的精神给我留下了不可磨灭的印象。老孟是大学同学&#xff0c;他在克亚学院&#xff08;补招进来的&#xff0c;收费特别高&#xff09;&#xff0c;我在计算机学院&#xff0…...

    2024/4/28 5:56:26
  4. Lambda表达式推导

    Lambda表达式前言一、Lambda简介二、Lambda表达式的优点三、Lambd表达式的推导过程1.实现类方式2.静态内部类3.局部内部类4.匿名内部类5.Lambda表达式6.Lambda表达式进一步的精简(参数类型)7.Lambda表达式进一步的精简(括号)8.Lambda表达式进一步的精简(花括号)四、注意事项五、…...

    2024/4/27 22:29:46
  5. JAVA中HashSet常用API与注意事项

    /*** HashMap注意事项* 底层是数组单向链表,无序集合* LinkedMap是哈希表链表&#xff0c;可保证存储元素有序&#xff0c;继承HashMap,* 双列集合&#xff0c;以键值对形式存在&#xff0c;key\value* key和value的数据类型可以相同也可以不相同* key与value一一对应* key唯一…...

    2024/4/27 2:13:32
  6. 20201118 C++作业批改

    批量下载作业的时候&#xff0c;貌似要弹出什么天空还是什么的JAVA程序才行&#xff0c;而且是用X220这台笔记本...

    2024/4/28 4:50:05
  7. C++控制台代码实现一定的界面效果

    C控制台代码实现一定的界面效果以下为主要的头文件代码&#xff0c;只需要在头文件中添加项然后复制进去即可。//ICUF HEAD_03.H #ifndef ICUF_HEAD_03 #define ICUF_HEAD_03 #define CRT_SECURE_NO_DEPRECATE #include<iostream> #include<conio.h> using namespa…...

    2024/4/28 5:51:57
  8. C++ const深入理解

    如下代码&#xff0c;为什么main会返回0&#xff0c;而不是1呢&#xff1f; int main() {const int a 0xA5A5;int *b (int *)(&a);*b 333;if (*b a) {return 1;}return 0; }如果a是const变量&#xff0c;不能变。但是我们通过a的地址改变了它的值呀。 我翻了《C编程思…...

    2024/4/28 12:40:54
  9. 【Docker】Docker下载与安装

    一、Docker介绍 官网&#xff1a;https://docs.docker.com/get-started/overview/ 二、Docker安装 Docker发展至今&#xff0c;安装方式有多种 Boot2Docker工具安装&#xff08;已经弃用&#xff09; Docker Toolbox &#xff08;适用于win7、win8版本&#xff09; Docker D…...

    2024/4/25 2:36:15
  10. IO优化是怎么做的,使用 SharedPreferences为什么这么卡,mmkv原理是什么

    IO优化是怎么做的&#xff0c;使用 SharedPreferences为什么这么卡&#xff0c;mmkv原理是什么 心理分析&#xff1a;IO优化一直是每个企业必选项&#xff0c;每次闻到都很头疼&#xff0c;面试官想问有没有相关经验&#xff0c;如果有的话&#xff0c;只有两种答案sqlitedata…...

    2024/4/17 18:40:44
  11. 使用proxy仿写jQuery选择器功能

    唯一好处就是省去了每次都要写style的烦琐过程&#xff0c;并将一些元素上一些不必要的像素单位去除了 function $(select,index0) { // 获取元素属性代理器const handler {set(target,key,value){$el.style[key] value},get(target,key){let value target[key]let isNeedP…...

    2024/4/22 2:48:02
  12. PAT甲级真题1052 链表排序(疑难测试点分析)

    链表由一系列的结构体组成&#xff0c;每个结构体中包含一个 Key 值和一个指向下一个结构体的 Next 指针。 现在&#xff0c;给出一个链表&#xff0c;请你按照 Key 值升序的顺序将链表重新排序。 补充 1、本题中可能包含不在链表中的节点&#xff0c;这些节点无需统计&#…...

    2024/4/17 9:16:06
  13. 使用Vavr进行函数式编程(一)

    1. 元组 ( Tuple ) 可以放入多个不同参数的数据类型。弥补Java的函数只能返回一个值的缺陷&#xff08;可以理解为就是一个特殊对象&#xff09;。不易放入多个变量&#xff0c;会导致代码不易阅读。demo //原数组的Tuple2<String, Integer> tuple2 Tuple.of("Hel…...

    2024/4/26 23:40:15
  14. ARM跳转指令

    文章目录跳转指令B指令和BL指令长跳转指令ARM中有两种程序跳转方式&#xff1a;跳转指令&#xff1b;向PC写入目标地址值&#xff1b; 跳转指令 通过跳转指令&#xff0c;可以实现从当前指令向前或者向后32MB的地址空间跳转&#xff08;一般来讲也足够了&#xff0c;基本上没…...

    2024/4/22 10:34:45
  15. Shell——实战

    脚本编程步骤 1、需求分析 根据系统管理的需求&#xff0c;分析脚本要实现的功能、功能实现的层次、实现的命令与语句等 2、命令测试 将要用到的命令逐个进行测试&#xff0c;以决定使用的选项、要设置的变量等 3、脚本编程 将测试好的命令写入脚本文件中&#xff0c;并通过各…...

    2024/4/19 8:47:55
  16. 202006-1 线性分类器

    202006-1 线性分类器 试题编号&#xff1a; 202006-1 试题名称&#xff1a; 线性分类器 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 问题描述&#xff1a; 思路&#xff1a; 对每个直线进行判断时&#xff0c;为了方便&#xff0c;只以第一个点作为标准&#…...

    2024/4/19 6:29:54
  17. Codeforces Round #683 (Div. 2, by Meet IT) E. Xor Tree

    http://codeforces.com/contest/1447/problem/E 题意&#xff1a;给出n个互不相同的数字&#xff0c;对每个i&#xff08;1<i<n&#xff09;找到ai^aj最小的j&#xff08;1<j<n, j ! i&#xff09;连边&#xff0c;求最少删除多少个数能使得这样操作出来得到的是树…...

    2024/4/19 9:53:22
  18. -wise - suffix 后缀

    -wise - suffix 后缀1. -wise [-wise] 以 … 方式&#xff0c;朝…方向&#xff0c;关于&#xff0c;在 … 方面&#xff0c;像 … 一样&#xff0c;如同&#xff0c;位置&#xff0c;样子 forming adjectives and adverbs of manner or respect such as clockwise, otherwise…...

    2024/4/19 5:14:19
  19. file方法整理

    file方法整理 序号方法描述1public String getName() 返回由此抽象路径名表示的文件或目录的名称。2public String getParent()、 返回此抽象路径名的父路径名的路径名字符串&#xff0c;如果此路径名没有指定父目录&#xff0c;则返回 null。3public File getParentFile() 返…...

    2024/4/22 5:14:51
  20. RecyclerView 性能优化

    数据处理和视图加载分离 我们知道&#xff0c;从远端拉取数据肯定是要放在异步的&#xff0c;在我们拉取下来数据之后可能就匆匆把数据丢给了 VH 处理&#xff0c;其实&#xff0c;数据的处理逻辑我们也应该放在异步处理&#xff0c;这样 Adapter 在 notify change 后&#xf…...

    2024/4/19 11:31:08

最新文章

  1. java自定义时间工具类方法,判断当前时间是否在指定有效时间之内

    1. 需求分析 本文分享一个自定义的时间工具类方法&#xff0c;判断当前时间是否在指定时间段以内&#xff0c;如果不在该时间范围内&#xff0c;返回true&#xff0c;否则返回false。 2.应用场景 判断当前时间是否在日期2024-04-25&#xff08;date参数传值&#xff09;中的…...

    2024/4/28 13:16:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 虚拟货币:数字金融时代的新工具

    在数字化时代的到来之后&#xff0c;虚拟货币逐渐成为了一种广为人知的金融工具。虚拟货币是一种数字化的资产&#xff0c;它不像传统货币那样由政府或中央银行发行和监管。相反&#xff0c;虚拟货币通过密码学技术和分布式账本技术来实现去中心化的发行和交易。 虚拟货币的代…...

    2024/4/19 5:33:22
  4. 利用Sentinel解决雪崩问题(一)

    1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待;舱壁模式:限定每个业务能使用的线程数&#xff0c;避免耗尽整个tomcat的资源&#xff0c;因此也叫线程隔离;熔断降级:由断路器统计业务…...

    2024/4/24 3:11:43
  5. C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。

    C Primer&#xff08;第5版&#xff09; 练习 11.14 练习 11.14 扩展你在11.2.1节练习&#xff08;第378页&#xff09;中编写的孩子姓到名的map&#xff0c;添加一个pair的vector&#xff0c;保存孩子的名和生日。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#x…...

    2024/4/22 21:19:28
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/4/28 4:04:40
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/4/28 12:01:04
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/4/27 12:24:35
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/4/27 12:24:46
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/4/28 12:01:03
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/4/28 12:01:03
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/4/28 12:01:03
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/4/27 12:44:49
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/4/27 21:08:20
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/4/28 9:00:42
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/4/27 18:40:35
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/4/28 4:14:21
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/4/27 13:52:15
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/4/27 13:38:13
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/4/28 12:00:58
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/4/28 12:00:58
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/4/27 22:51:49
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/4/28 7:31:46
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/4/28 8:32:05
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/4/27 20:28:35
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57