《软件测试》实验2:嵌入式软件测试实验报告

news/2024/4/29 2:53:03/文章来源:https://blog.csdn.net/qq_35395195/article/details/127321780

文章目录

  • 实验目的
  • 温度控制器需求文档及测试要求
  • 环境搭建
  • 实验内容
    • 温度采集处理功能测试
    • 加热棒输出电压测试
    • 散热风扇
    • 温度传感器输入接口(Senser_JK)
    • 控制加热棒输出接口(Heater_JK)
    • 控制散热风扇输出接口(Fan_JK)
    • 温控稳定时间性能需求(Control_XN)
  • 最终测试结果

实验目的

本次测试对象是温度控制器。

温度控制器需求文档及测试要求

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

环境搭建

在这里插入图片描述
解压 vspd.rar 文件,打开 vspdxp_install 进行安装

实验内容

在这里插入图片描述
在这里插入图片描述
点击“打开项目”,打开esi文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打开 vspdconfig
根据需求文档,使用vspd绑定对应的串口
在这里插入图片描述
创建3对串口,5和6一对,7和8一对,9和 10一对
在这里插入图片描述
打开待测件
在这里插入图片描述
然后点确定
在这里插入图片描述
在这里插入图片描述
打开ETest,点环境设置然后点确定(环境设置时直接确定,不需要手动更改)
在这里插入图片描述
成功后如图
在这里插入图片描述

温度采集处理功能测试

温度采集处理的示例代码已经给出了,点击ETest右侧的“项目->测试目录->功能测试->温度采集处理”进入代码
在这里插入图片描述

# coding:utf-8
def Test(arg,exp):CH_232_温度传感器.Clear()Protocol_温度传感器.温度值.Value = arg[1]bool=Protocol_温度传感器.Write()print '第%d次期望显示温度值%d'%(arg[0], exp[0])API.Common.Timer.Normal.Sleep(1000)Standard_Test(Test)

先点击运行
在这里插入图片描述
再点击开始
在这里插入图片描述
可以看到数据了
在这里插入图片描述
下面给出具体的测试方法

  1. 首先看功能需求
    在这里插入图片描述
  2. 点击ETest右侧的“项目->测试目录->功能测试->温度采集处理”,再点击“测试数据”,向里面输入自己的测试数据
    在这里插入图片描述
  3. 点击“测试任务”,编写自己的测试脚本
# coding:utf-8
############标准测试模板#######################
## Test:测试数据执行函数体,【测试数据】每一行数据调用一次Test
## arg:输入参数
## exp:预期输出
import Manu
def Test(arg,exp):# 给字段复制Protocol_温度传感器.温度值.Value = arg[1]# 协议写bool=Protocol_温度传感器.Write()show = []str0 = "序号: " + str(arg[0])str1 = "设定温度:" + str(arg[1])str2 = "预期温度:" + str(exp[0])# str0, str1, str2分别会被显示在菜单的第一、二、三行show.append(str0)show.append(str1)show.append(str2)# 弹出对话框# 点击确定,返回值为true# 点击否定,返回值为falseManu.Check(show)### 入口
Standard_Test(Test)
  1. 打开测试文件中提供的SensorControl.exe
    在这里插入图片描述
    直接点击“确定”,然后点“开始”
    在这里插入图片描述
  2. 回到ETest,点击上方的“运行”(如果运行是灰色的,就需要先点击旁边的“环境设置”,等待一会,然后就能点运行了)
    在这里插入图片描述这时候弹出了对话框,就可以将对话框中的“设定温度”、“预期温度”和温度控制器的“采集温度”进行对比,从而得到测试结果,找到问题
    在这里插入图片描述

加热棒输出电压测试

  1. 首先看功能需求
    在这里插入图片描述
  2. 右键“功能测试”,点击“新建测试用例->TCPython”,输入测试名称“加热棒”,然后写好测试代码,下面的代码是不读取“测试数据”的写法
# coding:utf-8
import math
import Manudef Volt(j, arr):Dp = 0.05Di = 0.1Dd = 0.1Td = 20 # 设定温度ek = Td - arr[j]if j == 0:ek1 = Td - 15ek2 = Td - 15elif j == 1:ek1 = Td - arr[j - 1]ek2 = Td - 15else:ek1 = Td - arr[j - 1]ek2 = Td - arr[j - 2]print "ek = %d, ek1 = %d , ek2 = %d" % (ek, ek1, ek2)# 电压变化量result = Dp * (ek - ek1) + Di * ek + Dd * (ek - 2 * ek1 + ek2)print "result = %f" % result return resultdef init():  # 初始化待测件加热棒输出为已知状态Protocol_温度传感器.温度值.Value = 15bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(200)Protocol_温度传感器.温度值.Value = 15bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(1000)def Test():print 'Test start'# 初始化电压输出为已知状态init()     # 清理通道seekresult=CH_232_加热棒.Clear()# 等待新的数据包Protocol_加热棒.BlockRead()# 获取当前的电压v = Protocol_加热棒.加热棒输出电压.Value# 设定温度Td = 20# 预期采集电压列表T = [15, 15, 15 , 15, 15, 15, 16, 17, 18, 19, 20, 21, 22, 23]for i in range(len(T)):print "------------------------------"print "第%d次,当前采集温度值: %f" % (i, T[i])# 写入新一次的温感数据Protocol_温度传感器.温度值.Value = T[i]bool=Protocol_温度传感器.Write()# 清理加热棒输出通道seekresult=CH_232_加热棒.Clear()Protocol_加热棒.BlockRead()v = v + Volt(i, T)# 负值截断处理if v < 0:v = 0print "第%d次期望输出电压值为: %f, 实际输出电压值为: %f, 误差为: %.3f" % (i + 1, v, Protocol_加热棒.加热棒输出电压.Value, v - Protocol_加热棒.加热棒输出电压.Value)print "------------------------------"API.Common.Timer.Normal.Sleep(2000)Test()

如果是读取测试数据,那么代码如下

import math
import Manudef VK(t, td, e1, e2):# t -> 当前温度# td -> 设定温度Dp = 0.05Di = 0.1Dd = 0.1e = td - tresult = Dp * (e - e1) + Di * e + Dd * (e - 2e1 + e2)return resultdef Test(arg,exp):global e1      # 上一次的温差, 设定温度-当前温度global e2      # 上上次的温差,global V1      # 当前时刻的输出电压值# 通道清理,防止上一次的运行结果在通道中阻塞,影响本次效果seekresult=CH_232_加热棒.Clear()seekresult=CH_232_温度传感器.Clear()# 给温度采集器赋值,当前温度Protocol_温度传感器.温度值.Value = arg[2]bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(1000)# arg[0] -->序号# arg[1] -->设定温度# arg[2] -->当前温度# 第一次改变温度if arg[0] == 1:e1 = arg[1] - arg[2]# 第二次改变温度if arg[0] == 2:e2 = arg[1] - arg[2]Protocol_加热棒.BlockRead()V1 = Protocol_加热棒.加热棒输出电压.Value# 三次以上    if arg[0] > 2:V  = VK(arg[2],  arg[1], e1, e2) + V1print Vshow = []str = "设定温度为:%d, 室温为:%f" % (arg[1], arg[2])show.append(str)str = "预期电压为: %f"  % (V)show.append(str)show.append("界面电压显示是否正确?")passed = Manu.Check(show)e2 = e1e1 = arg[1] - arg[2]# 协议读,读取输出给加热棒的数据包Protocol_加热棒.BlockRead()# 获取字段,当前电压,作为下一次的V(k-1)V1 = Protocol_加热棒.加热棒输出电压.ValueStandard_Test(Test)
  1. 如果是读取“测试数据”的写法,那么就需要添加数据。点击“测试数据”,在“输入参数”下方的空白行处右键,点击“添加输入参数”
    在这里插入图片描述
    比如要新建名称为“序号”的一列,那么就这样填
    在这里插入图片描述
    同样的方法,在输入参数处添加“设定温度”、“采集温度”,然后点击“添加行”,就可以添加数据了
    在这里插入图片描述

散热风扇

  1. 首先看功能需求
    在这里插入图片描述
  2. 新建项目,写测试代码
# coding:utf-8
############标准测试模板#######################
## Test:测试数据执行函数体,【测试数据】每一行数据调用一次Test
## arg:输入参数
## exp:预期输出
import Manudef Test(arg,exp):# 写入数据前,先清理通道seekresult=CH_232_温度传感器.Clear()seekresult=CH_232_散热风扇.Clear()# 写入第一次温度Protocol_温度传感器.温度值.Value = arg[1]bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(500)# 写入第二次温度Protocol_温度传感器.温度值.Value = arg[2]bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(500)CH_232_散热风扇.Clear()# 写入第三次温度Protocol_温度传感器.温度值.Value = arg[3]bool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(500)# 确保控制散热风扇的指令能够正常发出去Protocol_散热风扇.BlockRead()show = []str = '第%d次期望散热风扇输出值:%s,实际输出值:%d' % (arg[0], exp[0], Protocol_散热风扇.操作指令.Value)show.append(str)Manu.Check(show)## Standard_Test:标准测试的方法入口,使用【测试数据】表循环调用Test方法
Standard_Test(Test)
  1. 构建测试数据
    在这里插入图片描述
  2. 先启动SensorControl.exe,再运行测试程序
    对比两个程序的输出即可
    在这里插入图片描述
    在这里插入图片描述

温度传感器输入接口(Senser_JK)

  1. 首先看接口需求
    在这里插入图片描述
    在这里插入图片描述
  2. 构建测试数据
    在这里插入图片描述
  3. 代码
# coding:utf-8
import Manudef Test(arg,exp):# 先清理温感通道seekresult=CH_232_温度传感器.Clear()# 分割字符串为列表,按照空格str = arg[0].split(' ')data = []for i in str:# 将16进制整型的字符串转化为整型表示# 将16进制字符串转化为10进制整型表示data.append(int(i, 16))# 通道写入数据包bool=CH_232_温度传感器.Write(data)show = []show.append(exp[0])Manu.Check(show)## Standard_Test:标准测试的方法入口,使用【测试数据】表循环调用Test方法
Standard_Test(Test)

控制加热棒输出接口(Heater_JK)

  1. 首先看接口需求
    在这里插入图片描述
  2. 测试代码
#设定温度10℃
def Main():print 'Hello world'seekresult=CH_232_加热棒.Clear()seekresult=CH_232_温度传感器.Clear()Protocol_温度传感器.温度值.Value = 20      #不加热bool=Protocol_温度传感器.Write()Protocol_加热棒.BlockRead()if Protocol_加热棒.包头.Value != 0xFFFA:print '包头错误,错误的包头为%x'%Protocol_加热棒.包头.Valueif Protocol_加热棒.数据类型1.Value != 0x02:print '执行数据错误,错误的数据类型1为%d'%Protocol_加热棒.数据类型1.Valueif Protocol_加热棒.数据类型2.Value != 0x11:print '工作电机组错误,错误的数据类型2数据为%x'%Protocol_加热棒.数据类型2.Valueif Protocol_加热棒.数据长度.Value != 4:print '数据长度错误,错误的长度值为%d'%Protocol_加热棒.数据长度.Valueif Protocol_加热棒.检验.Checked != True:print '检验值错误,错误的校验值为%x'%Protocol_加热棒.检验.Valueif Protocol_加热棒.包尾.Value !=0x0F:print '包尾错误,错误的包尾为%x'%Protocol_加热棒.包尾.ValueProtocol_温度传感器.温度值.Value = 5      #加热bool=Protocol_温度传感器.Write()Protocol_加热棒.BlockRead()if Protocol_加热棒.包头.Value != 0xFFFA:print '包头错误,错误的包头为%x'%Protocol_加热棒.包头.Valueif Protocol_加热棒.数据类型1.Value != 0x02:print '执行数据错误,错误的数据类型1为%d'%Protocol_加热棒.数据类型1.Valueif Protocol_加热棒.数据类型2.Value != 0x11:print '工作电机组错误,错误的数据类型2数据为%x'%Protocol_加热棒.数据类型2.Valueif Protocol_加热棒.数据长度.Value != 4:print '数据长度错误,错误的长度值为%d'%Protocol_加热棒.数据长度.Valueif Protocol_加热棒.检验.Checked != True:print '检验值错误,错误的校验值为%x'%Protocol_加热棒.检验.Valueif Protocol_加热棒.包尾.Value !=0x0F:print '包尾错误,错误的包尾为%x'%Protocol_加热棒.包尾.ValueMain()

控制散热风扇输出接口(Fan_JK)

  1. 首先看接口需求
    在这里插入图片描述
  2. 测试代码
# 设定温度为10
def Main():seekresult=CH_232_温度传感器.Clear()seekresult=CH_232_散热风扇.Clear()# 写入初始状态,保证风扇不转动for i in [8, 8, 8]:Protocol_温度传感器.温度值.Value = ibool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(100)# 散热风扇阻塞获取数据包Protocol_散热风扇.BlockRead()if Protocol_散热风扇.包头.Value != 0xFFFA:print "包头错误,错误的包头为: %x" % Protocol_温度传感器.包头.Valueif Protocol_散热风扇.数据类型1.Value != 0x02:print "数据类型1错误,错误的数据类型为: %x" % Protocol_散热风扇.数据类型1.Valueif Protocol_散热风扇.数据类型2.Value != 0x22:print "数据类型2错误,错误的数据类型为: %x" % Protocol_散热风扇.数据类型2.Valueif Protocol_散热风扇.数据长度.Value != 1:print "数据长度错误,错误的数据长度为: %d" % Protocol_散热风扇.数据长度.Valueif Protocol_散热风扇.检验.Checked != True:print "检验和错误,错误的检验值为: %x" % Protocol_散热风扇.检验.Valueif Protocol_温度传感器.包尾.Value != 0x0F:print "包尾错误,错误的包尾为: %x" % Protocol_散热风扇.包尾.Valueprint "---------------------------------------------------------------------------------"# 写入初始状态,保证散热风扇工作,来判断数据包是否正确seekresult=CH_232_散热风扇.Clear()for i in [15, 15, 15]:Protocol_温度传感器.温度值.Value = ibool=Protocol_温度传感器.Write()API.Common.Timer.Normal.Sleep(100)Protocol_散热风扇.BlockRead()if Protocol_散热风扇.包头.Value != 0xFFFA:print "包头错误,错误的包头为: %x" % Protocol_温度传感器.包头.Valueif Protocol_散热风扇.数据类型1.Value != 0x02:print "数据类型1错误,错误的数据类型为: %x" % Protocol_散热风扇.数据类型1.Valueif Protocol_散热风扇.数据类型2.Value != 0x22:print "数据类型2错误,错误的数据类型为: %x" % Protocol_散热风扇.数据类型2.Valueif Protocol_散热风扇.数据长度.Value != 1:print "数据长度错误,错误的数据长度为: %d" % Protocol_散热风扇.数据长度.Valueif Protocol_散热风扇.检验.Checked != True:print "检验和错误,错误的检验值为: %x" % Protocol_散热风扇.检验.Valueif Protocol_温度传感器.包尾.Value != 0x0F:print "包尾错误,错误的包尾为: %x" % Protocol_散热风扇.包尾.ValueMain()

温控稳定时间性能需求(Control_XN)

  1. 首先看性能需求
    在这里插入图片描述
    在这里插入图片描述
  2. 测试代码
# coding:utf-8
#设定温度为10℃,初始恒温箱外部温度值为3℃
def Main():print 'Hello world'import timeTc = 10    #设定温度T0 = 0      #初始恒温箱外部温度值T = T0n = 0Fs = 0Va = 0   #上一次的输出电压time0 = time.time()while 1:seekresult=CH_232_温度传感器.Clear()seekresult=CH_232_加热棒.Clear()seekresult=CH_232_散热风扇.Clear()           Protocol_温度传感器.温度值.Value = Tbool=Protocol_温度传感器.Write()Protocol_加热棒.BlockRead()Protocol_散热风扇.BlockRead()V = Protocol_加热棒.加热棒输出电压.Valueif V<0:V=0# 计算加热棒的加热量Qi = V*V *0.2if Protocol_散热风扇.操作指令.Value == 1:       #风扇打开Fs =2elif Protocol_散热风扇.操作指令.Value == 0:       #风扇关闭Fs = 0# 计算散热风扇的散热量Qo = 0.1*(T - T0) + Fs#Qo = Fs# 温度的变化量T = T+(Qi-Qo)      #下次输出温度值if abs(T - Tc) < 0.5:n=n+1else:n=0# 当超过10次时if n >=10:time1 = time.time()print '稳定时间为%d'%(time1-time0)if time1-time0 <=60:print '温控稳定时间性能测试合格'break# 当始终不能达到十次time2 = time.time()# 超时if time2-time0>60:print '温控稳定时间性能测试不合格'breakAPI.Common.Timer.Normal.Sleep(1000)Main()

最终测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404193.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《设计模式:可复用面向对象软件的基础》——结构型模式(2)(笔记)

文章目录四、结构型模式4.4 DECORATOR(装饰)——对象结构型模式1.意图2.别名补充部分3.动机4.适用性5.结构6.参与者7.协作8.效果9.实现10.代码示例11.相关模式4.5 FACADE&#xff08;外观&#xff09;1.意图2.动机3.适用性4.结构5.参与者6.协作7.效果8.实现9.代码示制10.相关模…

Postgresql中yacc语法树冲突解决方法(shift/reduce conflicts)

处理方法 Postgresql中的gram.y可以独立编译&#xff0c;独立编译可以控制bison的参数来打印具体错误&#xff1a; PG15 cd src/backend/parserbison -d -o gram.c gram.y -Wno-deprecated正常执行后会产生gram.c文件&#xff0c;一旦发生冲突&#xff0c;bison会报错&#…

设计模式—关于如何更好的封装与创建对象

上一节我们主要学习了使用设计模式来写代码的指导思想以及设计模式的分门别类,本节主要学习创建型的三种设计模式是怎么使用的。如何利用创建型设计模式来指导我们更好的封装代码更好的创建对象。 为什么要封装?封装能带给我们什么好处?定义变量不会污染外部:封装的首要目的…

神经网络图像识别技术,神经网络指纹识别

1、声纹识别技术未来的发展趋势如何&#xff1f; 近几年来&#xff0c;我国生物识别技术行业市场主体数量呈迅速增长的趋势&#xff0c;截至目前&#xff0c;行业企业数量超4000家。据统计&#xff0c;2013-2018年&#xff0c;我国生物识别技术行业新增企业数量呈逐年增长的趋…

【编程题】【Scratch四级】2022.06 成绩查询

成绩查询 期末考试结束了,小朋友想知道自己考试的成绩和班级排名,让我们一起来实现这个功能吧! 1. 准备工作 (1)保留默认白色背景和小猫角色; (2)创建名为“姓名”和“成绩”的列表,按照图1输入相关内容。 2. 功能实现 (1)点击小绿旗,小猫询问“你要查询谁的成…

JS(第十课)JS中的对象

Com.Java.Basis第九课 《类与对象》_星辰镜的博客-CSDN博客 有兴趣的可以去看一下 本文内容核心:对象 在百度翻译中对象称为object 安装插件 第一部分去找找在JS中对象的语法是什么 如何去创建对象的&#xff0c;调用对象&#xff01; var name"李四"; var people…

图形学-(视图变换,投影变换)

1.视图变换 在 3 维物体变到二维平面的过程中&#xff0c;我们需要规定好相机的位置。对于相机所做的变换就是视图变换 &#xff08;Viewing/Camera transformation&#xff09;。 我们需要对相机位置进行定义&#xff0c;对于一个相机我们要规定下面三个属性&#xff1a; 相…

Transformer3

又是 一篇关于Transformer的~~ 太多了 本文结合Transformer和ConvNets的优点&#xff0c;构造了一种新的即插即用运算符ParC&#xff0c;可以高效地部署在不同的平台上。一个Trick 搞定 CNN与Transformer&#xff0c;即插即涨点即提速&#xff01; 论文链接&#xff1a;http…

Ansible自动化运维工具介绍与部署

ansible自动化运维工具介绍与部署 文章目录一、什么是自动化运维&#xff1f;二、常用的自动化运维工具2.1 Ansible2.2 SaltStack2.3 Puppet2.4 三种自动化工具特点对比三、介绍Ansible3.1 什么是 Ansible?3.2 Ansible 无需代理3.3 Ansible 方式四、部署Ansible4.1 控制节点4.…

U-BOOT小全(三):SPL框架

1、什么是SPL&#xff1f; 为了可以使已有的所有SPL的设计统一&#xff0c;也为了简化添加适用于新板子的设计&#xff0c;专门设计一个通用的SPL框架。在SPL框架下&#xff0c;一个板子的所有代码都能够被重用。代码复制和链接不再是必要的。 在uboot-2011的/doc/README.spl…

跨境电商必读:什么是社交媒体营销?

关键词&#xff1a;跨境电商&#xff0c;社交媒体营销 社交媒体渠道已迅速成为业务发展战略不可分割的一部分&#xff0c;关于社交媒体如何重塑消费者行为&#xff0c;以及组织如何利用它获得收益&#xff0c;网络上已经有大量相关信息&#xff0c;但仍有许多跨境电商企业难以…

H3C VLAN简单配置

将两台电脑都设为自动获取IP&#xff0c;然后左边的加入vlan10,右边的加入vlan20 先配置左边交换机 <H3C>system-view [H3C]user-interface console 0 [H3C-line-console0]idle-timeout 0 0 [H3C-line-console0]exit [H3C]vlan 10 [H3C-vlan10]port GigabitEthernet 1/…

04-Jenkins构建Maven项目

1&#xff09;Jenkins项目构建类型 a&#xff09;Jenkins构建的项目类型介绍 Jenkins中自动构建项目的类型有很多&#xff0c;常用的有以下三种&#xff1a;自由风格软件项目&#xff08;FreeStyle Project&#xff09;Maven项目&#xff08;Maven Project&#xff09;流水线项…

沉睡者IT - 如何识别NFT“洗盘交易”?

推荐阅读1&#xff1a;【创业粉引流变现项目】 推荐阅读2&#xff1a;【抖音网上如何赚钱变现】 推荐阅读3&#xff1a;【中视频横版16:9视频制作教程】 对金融人士来说&#xff0c;“洗盘交易”&#xff08;wash trading&#xff09;并不是一个新词。加密货币也以相同的买入…

grid管理的数据库实例修改时区问题

问题描述 由于安装创建数据库之前没将操作系统的时区设置为本地正确的时区&#xff08;Pacific/Apia&#xff09;&#xff0c;使用的是GMT时间&#xff08;UTC时区&#xff09;&#xff0c;后续将操作系统和数据库修改成正确时区之后&#xff0c;发现sysdate显示有误。 服务端…

计算机网络基础 ---- 动态路由---OSPF协议----详解

OSPF协议&#xff1a; ospf&#xff1a;开放式最短路径优先协议&#xff08;Open Shortest Path First&#xff09; 一、基本概念&#xff1a; 是携带真实掩码&#xff08;无类别链路状态IGP协议&#xff09;&#xff1b;周期更新&#xff08;30min&#xff09; 触发更新 -…

Taichi 加速 Python 中图像处理

Taichi 咱来说一说哈 在计算机视觉&#xff08;特别是深度学习图片预处理、模型训练&#xff09;等复杂度较高&#xff0c;技术迭代速度快的领域&#xff0c;用 Python 快速开发出算法原型、验证效果是许多研发人员的首选方案。著名图像处理库 OpenCV 就提供了完整的 Python 封…

Ubuntu Linux 操作系统-清华大学开源软件镜像站下载

Ubuntu 是一个由全球化的专业开发团队建造的操作系统。它包含了所有您需要的应用程序&#xff1a;浏览器、Office 套件、多媒体程序、即时消息等。Ubuntu 是一个 Windows 和 Office 的开源替代品。 Ubuntu 的名称来自非洲南部祖鲁语或豪萨语的 “ubuntu” 一词&#xff08;译为…

总结超参数最优化

1.超参数是什么&#xff1f; 超参数是指的是比如SGD的一个学习率&#xff0c;或者是抑制过拟合时候的一个权重衰减率参数等等&#xff0c;这些参数需要一个合适的值才能很好的提升神经网络的学习效率 2.我们在进行超参数最优化的时候如何去做到超参数最优化&#xff1f; 2.1.设…

盘点十大国内外热门的SaaS点评平台

在B端市场里&#xff0c;企业如何调研、选择企服软件是困扰已久的问题。使用者需要选择合适的企服软件去提升企业内部效率&#xff0c;因此&#xff0c;选择一个合适的SaaS点评平台便非常重要。在SaaS点评平台&#xff0c;使用者可以了解、选择产品&#xff0c;而服务商可以收获…