Android ID:Android ID是Android系统中的一个设备标识符,用于唯一标识每台Android设备。Android ID通常用于在Android应用中识别用户的设备,用于个性化广告投放和统计分析等用途。Android ID 是 Android 设备里不依赖于硬件的一种「半永久标识符」,在系统生命周期内不会改变,但系统重置或刷机后会发生变化,其作用域为一组有关联的应用。在 Android 8.0 以后,签名不同的 App 所获取的 Android ID(SSAID)是不一样的,但同一个开发者可以根据自己的数字签名,将所开发的不同 App 进行关联。
IMEI(International Mobile Equipment Identity):IMEI是手机的国际移动设备识别码,用于唯一标识每台手机设备。IMEI通常用于在移动通信网络中跟踪和管理手机设备,但在计算广告中也可能用于识别用户的设备。目前,IMEI 等设备标识符已经被认定为用户隐私的一部分,在非必要的场景获取甚至频繁获取 IMEI,会被认定为违规获取用户信息的行为;从 Android 10 开始,应用无法获取 IMEI、MAC 等设备唯一标识;为了解决这个问题,国家相关部委成立了移动安全联盟 MSA,制定了一套《移动智能终端补充设备标识体系》。因为其中最重要的一个标识符是 OAID 匿名设备标识符,因此也有人把这个体系简称为 OAID。
OAID(Open Advertising ID):OAID是一种由中国移动互联网行业联盟(CAIA)推出的设备标识符,用于在移动应用中识别用户的设备。OAID旨在提供一个更加隐私安全的设备标识符,以保护用户的个人隐私。注意:苹果手机并不支持OAID(Open Advertising ID),因为OAID是由中国移动互联网行业联盟(CAIA)推出的设备标识符,主要用于在中国移动应用中识别用户的设备。苹果手机通常使用IDFA(Identifier for Advertisers)作为广告标识符,用于在iOS设备中唯一标识每台设备。因此,苹果手机上没有OAID这个设备标识符。oaid在终端首次启动时生成。同一设备的 OAID 相同,因此可以在多个应用之间共享,恢复出厂设置会重置 OAID
IDFA(Identifier for Advertisers):IDFA是苹果公司推出的广告标识符,用于在iOS设备中唯一标识每台设备。IDFA通常用于在iOS应用中识别用户的设备,用于个性化广告投放和统计分析等用途。苹果公司在iOS 14版本(2020年9月16日发布)中引入了App Tracking Transparency(ATT)框架,该框架要求应用在获取并使用IDFA之前必须经过用户的明确授权。这意味着应用需要向用户显示一个弹窗,征得用户的同意后才能访问和使用IDFA进行广告跟踪和定向广告投放等操作。
这一变化对于广告行业来说是一个重大的改变,因为用户可以选择拒绝应用跟踪他们的行为,从而影响了广告主和广告平台的精准定位和广告效果追踪。因此,苹果的限制措施对于广告主和广告平台来说是一个挑战,他们需要寻找新的解决方案来适应这一变化。
CAID(China Advertising ID):CAID是中国广告行业推出的设备标识符,用于在移动应用中识别用户的设备,主要是为了应对苹果公司引入的App Tracking Transparency(ATT)框架而出现的,作为一种替代方案来帮助广告主更好地定位目标用户。CAID的出现旨在提供一个更加准确和可靠的设备标识符,以应对IDFA受限的情况,帮助广告主和广告平台继续进行精准的广告投放和效果追踪。然而,CAID也引发了一些隐私和数据安全方面的争议,因为它可能绕过用户的隐私设置和授权。
参考文章:
2022Android设备唯一标识(AndroidID,OAID等 )-腾讯云开发者社区-腾讯云
IMEI 弃用!收下这份保姆级的 OAID 集成教程-阿里云开发者社区
中国广告协会的CAID方案 | GA小站
链表-节点最大值 本题要求实现一个函数,遍历一个不带头节点的链表,求链表节点数据的最大值
节点类型定义:
struct node { int ch ; struct node *next ;}
函数接口定义: 在这里描述函数接口。例如: int max_node( struct node *p)
p是链表头指针,返回链表上最大的ch属性值。
裁判测试程序样例: #include <stdio.h> #include<stdlib.h> struct node {int ch; struct node * next;}; struct node *setlink(int N);//建立链表函数,已经定义 int max_node(struct node * head);//需要定义这个函数 int main() { int N; struct node *head; scanf("%d",&N); head=setlink(N); printf("%d", max_node(head)); return 0; } 输入样例: 在这里给出一组输入。例如:
6 7 8 9 1 2 3 输出样例: 在这里给出相应的输出。例如:
9 其实这个题目相对简单,我们只需要注意链表如何后移即可 int max_node( struct node *p) { int max=0; max=p->ch; struct node * s;//定义一个临时变量 s=p; while(1) { if(s->next==NULL) break; if(s->ch>max) max=s->ch; s=s->next; //可以实现进入下一个节点 } return max; } 链表—累加和 本题要求实现一个函数,遍历一个不带头结点的链表,求链表节点数据的累加和
文章目录 MySQL数据类型1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2.字符串类型2.1 char2.2 varchar2.3 char和varchar比较2.4 日期和时间类型2.5 enum和set MySQL 数据类型 MySQL 是一个流行的开源关系型数据库管理系统。它支持多种数据类型,用于存储和管理数据。
1. 数值类型 1.1 tinyint类型 tinyint大小为一个字节,无符号数的取值范围在 0 ~ 255 ,有符号数的取值范围在 -128 ~ 127 ,使用的时候直接定义该类型即可。
创建一个包含tinyint数据类型的表:
create table if not exists test1(num tinyint); 向test1中插入数据:
mysql> insert into test1 values(1); // 插入成功 mysql> insert into test1 values(127); // 插入成功 mysql> insert into test1 values(-128); // 插入成功 mysql> insert into test1 values(0); // 插入成功 mysql> insert into test1 values(-129); //ERROR 1264 (22003): Out of range value for column 'num' at row 1 mysql> insert into test1 values(128); //ERROR 1264 (22003): Out of range value for column 'num' at row 1 打印test1表中的数据信息:
MUST(Macau University of Science and Technology) CS240
E-R模型(Entity-Relationship Model) 实体关系模型(Entity-Relationship Model)是一种流行的概念数据模型。该模型用于数据库应用程序的设计。E-R模型将现实世界视为实体和实体之间关系的集合 E-R模型的构建属于数据库设计的第二个步骤,即数据库概念设计步骤。
实体(Entity) 实体是现实世界中可与其他对象区分开来的对象,例如雇员、学生、教授、课程。
实体集(Entity set)是该类实体的集合。
在E-R图中用矩形表示
雇员作为实体在E-R图中的表示 属性(Attribute) 一组属性可以用来描述一个实体,例如,一个雇员具有工号、姓名、地址、年龄、生日等属性。
在E-R图中用椭圆表示,用无向边与其描述的实体集相连。
雇员的年龄属性在E-R中的表示 雇员实体集和他的一组属性在E-R图中的表示 不同的属性类型 1、简单属性(simple attribute) 简单属性只有一个值。例如雇员中的年龄、姓名。
2、复合属性(composite attribute) 复合属性包含多个部分。例如雇员中的地址可以由国家、城市、街道组成。
复合属性可以再划分成更小的部分,不同的部分不在一个层次,例如上述提到的国家与城市属于包含关系,国家包含城市。
3、多元属性(multiple-valued attribute) 多元属性是指一个属性可以有多个值,区别与复合属性,多元属性的不同的值处于同一个层次。例如雇员的电话号码,一个雇员可以有多个电话号码,且这几个电话号码处于同一层次。
4、派生属性(derived attribute) 派生属性的值可以从别的相关属性或实体派生出来(也就是可通过别的属性计算出来)。例如雇员中的年龄可以通过生日推导出来。生日属性可以被称为基属性或存储的属性。
关键属性(Key Attributes) 定义:一组可以唯一标识实体的属性称为关键属性(Key Attributes)。例如雇员的工号,一个员工的工号在公司里是唯一的,不会与他人重复,雇员的其他属性没有这个功能,例如名字、生日、年龄和地址等都可能有重复。
关键属性在E-R图中的表示(在关键属性下面添加一个下划线) 复合关键属性(composite key) 定义:两个或多个属性组成一组复合关键属性(composite key)。例如雇员的姓名和地址单独分开是不能作为关键属性唯一标识雇员,但是姓名和地址可以一起作为一组复合关键属性。
复合关键属性在E-R图中的表示(复合关键属性中的每一个属性都要标注下划线) 一个实体可以有多个关键属性,例如雇员的{工号}和{姓名、地址}是唯一标识雇员的两个关键属性。
候选键(candidate key) 定义:唯一标识实体的最小属性集称为候选键(candidate key)。上述雇员的两个关键属性,只有{工号}是候选键。
候选键中的属性不多不少,不能含有多余属性;若再删除属性,也不构成候选键。
主键(primary key) 如果一个实体有多个候选键,我们应该选取一个作为主键(primary key)。
总结:key(键) 键(key):唯一标识实体的属性或属性组合。指定唯一性的关键方法。
超键(super key):可用于唯一标识实体的密钥,其中可能包含唯一标识实体所不需要的额外属性。
主键(primary key):主键是候选键的一种,当实体有多个候选键时需要选择一个作为主键。
候选键(candidate key):候选键可以唯一地用于标识实体,而无需任何无关数据。它是最小的超键。通常将candidate key缩写为just key。
关系 定义:关系是两个或多个实体之间的关联。
CiteSpace需要在Java的环境下运行,上篇文章分享了Java入门操作,安装好Java后,就可以下载安装文献分析神器CiteSpace。
注意!!CiteSpace的版本是要和Java版本匹配的。比如:要安装CiteSpace(Basic)最新版本6.3.R1,就一定要安装Java最新版Java 21;如果安装CiteSpace的版本是6.2.R4,那么安装Java 17就可以啦!切勿张冠李戴、随意搭配,否则你也会经历Java下载与卸载的极限拉扯,酸爽至极😂
目录
一、CiteSpace简介
二、CiteSpace版本
三、CiteSpace软件安装
1、下载安装CiteSpace
2、检查Java安装情况
四、CiteSpace软件打开
五、CiteSpace软件使用
六、CiteSpace使用过程常见问题
一、CiteSpace简介 CiteSpace 是美国雷德赛尔大学信息科学与技术学院的陈超美博士与大连理工大学的WISE实验室联合开发的科学文献分析工具。主要是对特定领域文献进行计量,以呈现某一学科领域研究结构和发展趋势的软件。
CiteSpace可以用来对文献进行基本分析,如分析引文与文献发表总数、重点学科和期刊、科研机构研究和合作情况、作者分析等;也可以进行聚类和突变分析,如分析关键词频数、关键词聚类以及时区图(突变分析)。
CiteSpace目前可以分析的主要数据库包括:CNKI中国知网、CSSCI中国社会科学引文索引、Derwent(世界专利索引)和WOS(Web of Science),基本可以涵盖研究生学习阶段主要使用的数据库。
以下是CiteSpace的菜单功能概览图:
二、CiteSpace版本 CiteSpace版本更新后,老版本就不能继续使用,而新老版本不同图谱之间参数有差异,不利于结果的分析,建议大家下载最新版本并尽快分析出结果。同时由于最新版本已经没有了时区图功能,取而代之的是时间线图功能,所以如果有同学想使用旧版本,可以先将计算机日期手动调整到旧版本有效期内,再运行旧版本软件。
CiteSpace分为:基础版CiteSpace (Basic)、标准版CiteSpace (Standard)、升级版CiteSpace (Advanced)。除基础版外,后两个版本都是要收费的。如下图所示:
大家根据自己实际需求选择,不过对于刚开始做文献分析的小白来说,基础版功能已经足够啦!Mac用户的CiteSpace基础版安装包,Intel和M系列都是同一个dmg。
从2023年下半年以来,基础版CiteSpace (Basic)一直处于后台维护,显示“Closed”状态。也就是说, CiteSpace Home (podia.com)官网的基础版,目前是无法下载的。(一个学术网站整地如此鸡贼😒)
不过,开源共享互联网精神义士,永不向权威低头。给大伙儿安利一个义士网站CiteSpace download | SourceForge.net 这个网站一直在更新CiteSpace基础版,可以免费、安全地下载。
三、CiteSpace软件安装 1、下载安装CiteSpace 打开上述义士网站后,页面广告比较多,别瞎点(义士也是需要广告收入来恰饭啊,看在免费提供CiteSpace份上,相互理解),下滑页面,找到CiteSpace (Basic)最新版下载链接,如下图所示:
点击下载后,按照应用程序dmg一般方法,安装CiteSpace。安装好后,会在桌面及访达应用程序目录下,生成CiteSpace图标,如下图所示:
2、检查Java安装情况 看看Mac之前安装的Java是否装好了。在「终端(terminal)」中运行以下命令,查看已安装的Java版本:
java -version 然后出现如下图所示回应,就证明装好了。
当然,如果Java版本与CiteSpace版本不匹配,那就需要卸载重装Java。
四、CiteSpace软件打开 1、依次点击:访达——应用程序——CiteSpace——显示包内容。 如下图所示:
2、点击“显示包内容”后,打开「内容(Content)」文件目录,点击”app“文件夹,
找到CiteSpace-6.3.1.jar,
显示其存储路径为 /Applications/CiteSpace.app/Contents/app/CiteSpace-6.3.1.jar
3、在「终端(terminal)」中输入并运行以下命令,就可以打开CiteSpace
java -jar /Applications/CiteSpace.app/Contents/app/CiteSpace-6.3.1.jar 开启过程有点慢,请耐心等待。这是打开CiteSpace的唯一方法,每次使用都要用上述命令行方式打开。
五、CiteSpace软件使用 1、数据-输入/输出- CNKI
要建立一个输入文件夹,一个输出文件夹,一个数据文件夹,一个项目文件夹。
详细请参考:小小:CiteSpace使用教程. 2、设置分析的项目参数
比如,如果是从知网下载的分析文件,那么分析参数选择如下图所示:
3、进行文献分析
解决办法:
1.进入Project Structure中检查SDKs是否是1.8版本
2.同样的位置检查Modules
3、查看project
4.到setting下检查模块是否是1.8版本
最后检查pom文件是否是1.8版本
<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 完成。
人工智能(Artificial Intelligence,简称AI)作为当今最热门和前沿的技术之一,已经在各种领域发挥着越来越重要的作用。随着人工智能技术的不断进步和应用,AI的细分领域也越来越多。目前,根据AI的应用领域和特点,我们可以将人工智能的13个细分领域归纳如下:
语音识别(Speech Recognition)自然语言处理(Natural Language Processing)机器翻译(Machine Translation)机器视觉(Computer Vision)语义分析(Semantic Analysis)机器学习(Machine Learning)深度学习(Deep Learning)强化学习(Reinforcement Learning)遗传算法(Genetic Algorithms)机器人技术(Robotics)专家系统(Expert Systems)计算机辅助设计(Computer-Aided Design,CAD)数据挖掘(Data Mining) 在这些细分领域中,每一个领域都有着独特的应用场景和技术特点。例如,语音识别可以帮助人们通过语音指令来操作设备;自然语言处理则可以将自然语言转化为计算机可处理的数据;机器视觉可以让计算机像人类一样识别图像中的物体和场景。而机器学习、深度学习、强化学习等技术则是AI领域中最重要的技术,在各种应用场景中发挥着至关重要的作用。
总之,了解人工智能的13个细分领域不仅有助于我们更好地了解人工智能技术的应用和发展趋势,也有助于我们在不同的场景中选择合适的技术来解决问题。
文章目录 一、下载MySQL二、安装MySQL三、验证MySQL是否安装成功方法一:MySQL控制台验证方法二:命令提示符cmd窗口验证 三、配置MySQL环境变量四、使用MySQL 一、下载MySQL MySQL官网:https://www.mysql.com/
MySQL下载地址(Windows版):https://dev.mysql.com/downloads/installer/
**步骤一:**进入MySQL官网,依次点击“DOWNLOADS→MySQL Community (GPL) Downloads »"进入下载页。
步骤二:点击"MySQL Installer for Windows",选择Windows版本进行下载。
区分:MySQL Community Server 与 MySQL Installer
1.MySQL Community Server 与 MySQL Installer 的区别
2.MySQL Community Server跟MySQL Installer for Windows用哪个
注:本文以MySQL Installer for Windows为例
步骤四:选择要下载的版本,点击"Download"。
注意:这里MSI Installer有两个版本,
第一个(大小2.1M)是通过联网在线安装,会在线下载安装包;
第二个(大小285.3M)是离线安装。
我们这里选第二个(包含32位和64位安装包,会自动适配),下载到本地后进行安装。
步骤五:不用注册和登录,直接点击下方"No thanks, just start my download"跳转下载页。
步骤六:选择下载位置,开始下载。
步骤七:下载完成
二、安装MySQL 步骤一:双击下载完成的安装包,开始安装
步骤二:选中"Custom",点击"Next",进行自定义安装。
注:之所以选择自定义安装,是为了自定义MysSQL的安装路径。
步骤三:点开第一个MySQL Servers的加号选取要下载的版本,这时第一个箭头会变成绿色,点击绿色箭头即可加到右边框中。
步骤三:点击右边框中刚刚加入的MySQL版本,下方出现"Advanced Options",点击即可自定义安装路径。
步骤四:点击"Execute"下载。
步骤五:点击"Next",继续下一步。
步骤六:点击"Next",继续下一步。
步骤七:选择"Development Computer",点击"Next",继续下一步。
Config Type: 配置类型: Development Computer:开发计算机,占用最少的资源,适合个人开发学习使用的;Server Computer:服务器计算机,中等资源占用,可以和其他服务器软件一同安装,主要用于像FTP,email,web服务器等等;Dedicated Computer:专用计算机,可最大限度的占用资源,只用作MySQL服务器。 Connectivity:可以控制客户端如何连接到 MySQL 数据库。MySQL的默认端口是3306。
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统
信号处理 图像处理 路径规划 元胞自动机 无人机 🔥 内容介绍 初始化全息图矩阵 在生成涡旋光场全息图之前,需要初始化全息图矩阵。全息图矩阵是一个二维数组,其元素表示全息图中每个像素的相位值。
初始化全息图矩阵时,需要指定矩阵的大小,即水平像素数目和垂直像素数目。水平像素数目和垂直像素数目决定了全息图的分辨率。
水平和垂直像素的数目 水平像素数目和垂直像素数目通常由以下因素决定:
**所需涡旋光场的尺寸:**全息图矩阵的尺寸应该大于或等于所需涡旋光场的尺寸。
**衍射效率:**水平像素数目和垂直像素数目越大,衍射效率越高。
**计算时间:**水平像素数目和垂直像素数目越大,计算全息图所需的时间越长。
一般来说,对于直径为 D 的涡旋光场,水平像素数目和垂直像素数目建议为 D 的 2-4 倍。
相位调制 初始化全息图矩阵后,需要对矩阵中的元素进行相位调制,以生成涡旋光场全息图。相位调制可以通过以下公式实现:
φ(x, y) = exp(-i 2π mθ(x, y))
其中:
φ(x, y) 是全息图矩阵中 (x, y) 处像素的相位值
m 是涡旋光场的拓扑荷数
θ(x, y) 是 (x, y) 处像素的极坐标角
通过对全息图矩阵中的每个像素进行相位调制,可以生成一个能够产生涡旋光场的全息图。
📣 部分代码 %Initializing Hologram MatricesH=1920; V=1080;%%Number of Horizontal and Vertical pixelsx=-H/2:1:(H/2-1);y=-V/2:1:(V/2-1);[X,Y]=meshgrid(x, y);phi=angle(X+1i*Y);%%Azimuthal anglel=1;%%Topological chargenx=100;ny=100;%%Number of horizontal and vertical groovesgx=nx/H; gy=ny/V;Hol=mod(l*phi+2*pi*(Y*gy+X*gx),2*pi);%%%%%% Grascale normalization from [0, 2Pi]to [0 255]SLM=Hol/max(Hol(:))*255;fig=figure(1);imagesc(SLM)colormap gray%set(fig,'Position',[1920 0 1920 1080],'MenuBar','none','ToolBar','none','resize','off');%fullscreen SLMset(gca,'position',[0 0 1 1],'Visible','off')axis off; ⛳️ 运行结果 🔗 参考文献 🎈 部分理论引用网络文献,若有侵权联系博主删除 🎁 关注我领取海量matlab电子书和数学建模资料 👇 私信完整代码和数据获取及论文数模仿真定制 1 各类智能优化算法改进及应用 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化 2 机器学习和深度学习方面 2.
本文介绍基于Python语言的netCDF4库,读取.nc格式的数据文件,并提取指定维(时间、经度与纬度)下的变量数据的方法。
我们之前介绍过.nc格式的数据,其是NetCDF(Network Common Data Form)文件的扩展名,是一种常用的科学数据存储格式,多用于存储科学和工程领域的大型数据集。同时,在我们之前的文章Python批量读取大量nc格式文件并导出全部时间信息(https://blog.csdn.net/zhebushibiaoshifu/article/details/135331417)中,就介绍过基于netCDF4库,对一个文件夹下大量.nc格式数据文件的某一维的信息加以提取的方法。而在本文中,我们则是同样基于netCDF4库,读取.nc文件,并提取指定维(Dimensions,也就相当于是自变量)下的变量(Variables,也就相当于是因变量)的具体数值。
首先,我们需要配置一下netCDF4库,具体配置方法大家可以参考文章Anaconda下Python中h5py与netCDF4模块下载与安装方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/120553597)。
随后,本文所需代码如下。
# -*- coding: utf-8 -*- """ Created on Thu Feb 22 21:41:52 2024 @author: fkxxgis """ import netCDF4 as nc nc_path = r"F:\Data_Reflectance_Rec\soil_1\2020_01.nc" nc_data = nc.Dataset(nc_path) print(nc_data) time_value = nc_data.variables["time"][:] longitude_value = nc_data.variables["lon"][:] latitude_value = nc_data.variables["lat"][:] # 第一种需求 time_need = 0 nc_value_1 = nc_data.variables["swvl1"][time_need, : , : ] # 第二种需求 longitude_need = 106.467 latitude_need = 36.817 longitude_nc = (abs(longitude_value - longitude_need)).argmin() latitude_nc = (abs(latitude_value - latitude_need)).
你知道什么是AIGC吗?不知道?没关系,我来告诉你。AIGC就是人工智能生成内容(Artificial Intelligence Generative Content),也就是让AI自己动手创作各种各样的内容,比如图片、视频、音乐、文字等等。听起来很酷吧?那么,AIGC是怎么做到的呢?下面,我就用最简单的语言,给你介绍一下AIGC的基本概念和常见应用。
AI 工作原理 AI,就是人工智能。它的目标是让机器能够像人一样有智能,能够看、听、说、想、做。要实现这个目标,AI需要用到三个重要的技术:深度学习、神经网络和生成式对抗网络(GAN)。
神经网络
神经网络就是模仿人脑的结构,用一些小点(节点)和线(链接)来连接起来,形成一个复杂的网络。这些小点就像我们大脑里的神经元,可以接收和传递信息;这些线就像我们大脑里的神经纤维,可以控制信息的流动。
深度学习
深度学习就是让神经网络变得更深更强。深度学习把神经网络分成很多层,每一层都负责处理一部分信息,就像我们大脑里有不同功能的区域一样。这样,深度学习可以处理更复杂更高级的问题,比如识别图片里的物体或者理解人说的话。
生成式对抗网络(GAN)
GAN就是让两个神经网络互相斗争,从而提高创作能力。GAN有两个角色:一个叫生成器(Generator),一个叫判别器(Discriminator)。生成器的任务是创造出看起来真实的作品,比如图片、音乐等;判别器的任务是判断这些作品是不是真的,还是生成器做出来的。生成器和判别器不断地互相挑战,生成器越来越擅长造假,判别器越来越擅长识破。最后,生成器可以创造出非常逼真的作品,让人分辨不出真假。
AI大模型/预训练大模型 AI大模型就是一种超级强大的机器学习模型。它可以处理海量的信息,比如图片、文字、声音等,并且可以完成各种各样的任务。比如智能语音助手和图像识别软件都用到了AI大模型。
AI预训练大模型就是一种已经学过很多东西的AI大模型。它们通过在不同领域进行大量的训练,掌握了很多知识和技能。比如GPT就是一种预训练的大型语言模型,它可以自动生成各种类型的文本,比如新闻、小说、文章、对话等。GPT是目前自然语言处理领域最先进的自然语言生成模型之一。
开源 开源就是分享和合作的一种方式。在计算机编程中,当一个项目是开源的,意味着它的源代码是公开的,任何人都可以查看、修改和分享。比如你做了一个蛋糕,如果你把蛋糕的配方公开,让所有人都可以做这个蛋糕,甚至可以根据自己的口味改进这个配方,那么这个蛋糕的配方就是开源的。
自然语言处理(NLP) 自然语言处理(NLP)就是教计算机理解和使用人类语言的一种技术。比如你对手机说:“打开天气应用,查看明天的天气。”这就涉及到了自然语言处理。你的手机需要理解你说的话是什么意思,你想做什么,然后才能执行正确的动作。自然语言处理需要用到很多开源的工具和软件,它们能够帮助研究者处理语言数据,降低开发的难度,加快技术的进步。
AIGC AIGC就是由AI自动创作生成的内容(AI Generated Content),比如图片、视频、音乐、文字等。AIGC就像一支神奇的画笔,拥有无限的创造力。这支画笔的特别之处在于,它是由AI打造的。AI利用它的理解力、想象力和创作力,根据指定的需求和风格,创作出各种内容:文章、短篇小说、报告、音乐、图像,甚至是视频。AIGC的出现,打开了一个全新的创作世界,为人们提供了无数的可能性。
从用户生成内容(UGC),到专业生成内容(PGC),再到现在的人工智能生成内容(AIGC),我们看到了内容创作方式的巨大变革和进步。
AIGC和Chat GPT的关系 AIGC是AI大模型,特别是自然语言处理模型的一种重要应用;ChatGPT则是AIGC在聊天对话场景的一个具体应用。可以把AIGC看作是一个大的范畴,而ChatGPT是其中一个类别的小应用。
常见的AIGC应用 1、ChatGPT
ChatGPT是由OpenAI开发的一款大型预训练语言模型,就像一个会聊天的机器人。
它可以理解你说的话,并给出回答。这个机器人在互联网上读了很多书、文章,学到了很多知识,所以可以回答各种问题,甚至进行深入的讨论。不过,ChatGPT的理解与人类不同,人类理解事物时,有意识、经验和情感等多个层次的参与,而ChatGPT只是通过分析和模拟大量的文本数据来"学习"如何合理地回应。
2、Midjourney
Midjourney是由美国旧金山的一家独立研究实验室创立的图片类AIGC应用程序,我们可以通过语言描述来生成图片。比如,输入一个苹果,它就会为你生成出一张苹果的图片。
3、Stable Diffusion
图片生成类AI大模型,可以在给定的任何提示词下生成图像,并支持根据关键词和图片检索。与Midjourney相比,生成图像的结果更可控。
4、Bing
Bing AI就是搭载了GPT-4的Bing浏览器,它能够更好地理解用户意图,提供更加智能化、个性化的搜索和服务体验。
5、文心一言
文心一言是百度全新一代知识增强大语言模型,能够与人对话互动、回答问题、协助创作,具备更强的中文理解能力。
6、文心一格
文心一格是百度基于文心大模型的文生图系统,搭建的图片生成类AI大模型,可以根据用户输入的指令提示,生成相应的图片。
总结 以上就是我对AIGC的基本介绍,希望你能对AIGC有一个初步的了解。如果你想了解更多关于AIGC的信息和应用,可以访问[HOTAIGC]「https://hotaigc.cn/」,你可以在这里找到更多的AIGC应用和资讯,也可以亲自体验一下AIGC的魅力
文章目录 1.WebAPI 背景知识1.1什么是 WebAPI1.2什么是 API1.3API 参考文档 2.DOM 基本概念2.1什么是 DOM2.2DOM 树 3.获取元素3.1querySelector3.2querySelectorAll 4.事件初识4.1基本概念4.2事件三要素4.3简单示例 5.操作元素5.1获取/修改元素内容5.1.1innerText5.1.2innerHTML 5.2获取/修改元素属性5.3获取/修改表单元素属性5.4获取/修改样式属性5.4.1行内样式操作5.4.2类名样式操作 6.操作节点6.1新增节点6.1.1创建元素节点6.1.2插入节点到 dom 树中 6.2删除节点 7.代码案例: 猜数字7.1预期效果7.2代码实现 8.代码案例: 表白墙8.1预期效果8.2创建页面布局8.3调整样式8.4实现提交8.5实现点击按钮的动画效果(选学) 9.代码案例: 待办事项9.1预期效果9.2创建页面布局9.3实现页面样式9.4实现页面行为9.4.1实现新增9.4.2点击复选框后将元素放到 "已完成"9.4.3点击删除按钮删除该任务9.4.3点击删除按钮删除该任务 大家好,我是晓星航。今天为大家带来的是 JavaScript(WebAPI) 相关的讲解!😀
1.WebAPI 背景知识 1.1什么是 WebAPI 前面学习的 JS 分成三个大的部分
ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: 操作浏览器 WebAPI 就包含了 DOM + BOM.
这个是 W3C 组织规定的. (和制定 ECMAScript 标准的大佬们不是一伙人).
前面学的 JS 基础语法主要学的是 ECMAScript, 这让我们建立基本的编程思维. 相当于练武需要先扎 马步.
但是真正来写一个更加复杂的有交互式的页面, 还需要 WebAPI 的支持. 相当于各种招式.
1.2什么是 API API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Web测试中简单定位Bug
定位bug之前要确定自己对用例的理解是否有问题。(在工作中,很多测试结果错误都是因为自己对用例的理解没有到位,以致于操作错误导致结果不符合预期)
一般来说bug分为前端bug和后端bug,前端bug为请求数据错误,后端bug为响应数据错误。
前端bug
根据运行结果与预期不符的步骤进行定位,然后抓包,一般来说主流浏览器(Chrome,firefox等)自带抓包插件。
其他常用抓包软件:fiddler,burpsuite,wireshake等。
1)抓包
在网页先打开f12开发者工具,NetWork中查看发送的请求是否正确,包括状态码,URL,请求参数等。如果错误,需对其错误进行进一步分析。
常见状态码错误:
400:语义有误,当前请求无法被服务器理解;
403:(禁止)服务器拒绝请求。
404:(未找到)服务器找不到请求的网页。
412:(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件。
500:(服务器内部错误)服务器遇到错误,无法完成请求。
502:(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
ps:抓包时需要关闭浏览器其他插件,排除工具的干扰。
2)兼容性相关bug
浏览器本身不兼容的问题,会导致无法加载页面的情况,报错信息一般也可以通过抓包和通过控制台查看错误行号和附近代码。
浏览器的版本更新,导致产品原本的功能无法使用,这时就需要确定多个浏览器是否都是这个情况。
后端bug
若前端请求数据没问题,那就需要定位是否为后端bug。
接口查看:在网页先打开f12开发者工具,查看响应数据,对比通过后端接口拿到的数据和前端显示的数据,来确认问题出在哪里。
查看报错日志,通过日志分析发生问题的位置。
查看缓存是否正确。
查看数据库确认数据的是否正确。
ps:确定为bug后。对比软件的上一个版本测试一下bug是否能够重现,如果上个版本也会出现bug,说明可能是软件本身的代码问题。若不能重现,可能是这个版本的某些功能改动导致的bug。
自动化测试定位bug:根据报错的代码位置进行定位检查
检查方法用法是否正确
检查传参是否正确
单步调试错误代码(这是个很重要也是很有效的方法,边调试和边查看控制台能够准确定位错误原因)
写自动化测试用例之前先看一下手动测试结果有没有问题!!!
若手动测试用例没有问题,而自动化测试的结果有问题或者不稳定,先检查自动化代码逻辑是否正确。若正确,则可判断出用例不适合做自动化。
ps:如何证明自动化代码逻辑正确?在代码中添加可以覆盖到所有情况的代码,进行测试是否全部通过。若不通过,则为代码逻辑问题。
关于调试代码的时候会出现的问题:如果有些代码的方法使用发生了错误,有可能是产品其他部门的功能更新了,这个时候就需要跟其他部门的人沟通确定一下。
2、Web 端测试和 App 端测试有何不同
Web 端测试和 App 端测试是针对不同平台的上的应用进行测试,Web应用和App端的应用实现方式不同,测试时的侧重点也不一样。
Web 端应用和 App 端应用的区别:
平台兼容性
Web 端应用可以在任何具备浏览器的设备上运行,而 App 端应用需要在特定的操作系统上安装和运行。
安装方式
Web 端应用可以通过访问特定的网址来直接使用,而 App 端应用需要从应用商店或者其他渠道下载和安装。
功能和性能
App 端应用通常能够提供更加丰富的功能和更好的性能,因为它们可以直接与设备的硬件和操作系统进行交互,而 Web 端应用则受限于浏览器的能力。
用户体验
App 端应用通常提供更加优化和个性化的用户界面,可以更好地适应不同设备的屏幕尺寸和操作习惯,而 Web 端应用则需要考虑兼容性和响应式设计。
前言
如下简单 maven 项目,现在 maven 项目比较流行,你还没用过就OUT了。需要打包jar
先设置:点击 File ==> Project Structure ==> Artifacts ==> 点击加号 ==> 选择JAR ==> 选择From modules with dependencies
一、将所有依赖和模块代码打包为一个jar
如果把所有项目依赖的其他库和代码打成一个 jar,可以选择extract to the target JAR 。比如如果你项目里依赖了 fastjson.jar 等第三方 jar,可以把这些第三方 jar 也打到最终生成的 jar 里面。
1.选择要打包的模块和启动类,然后选择 extract to the target JAR 。
最后点击 ok 设置完毕
2.确认要生成的 jar 名称(默认是项目或模块名),确认 jar 包的输出的目录,确认最终输出的 jar 里包含的依赖(我这里包含了14个其他依赖和项目代码,如果不想包含第三方依赖可以选中相关依赖点击减号进行排除),点击 Apply 和 Ok
3 . 点击 Build ==> Build Artifacts
先点击 clear 进行清除,然后再点击 Build 进行构建,就可以打成一个jar包了
Java向ES库中插入数据报错:java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STO 一、问题问题原因 二、解决思路 一、问题 在使用Java向ES库中插入数据时,第一次成功插入,第二次出现以下错误:
java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED at
问题原因 这里显示是连接中断,第一次遇到这个问题,比较疑惑为什么es的客户端会中断,理论上es client 是长连接,不停的有数据写入,连接一致存在,除非有服务端异常。在elasticsearch服务端查看日志,没有任何异常信息。
网上搜索错误信息原来是 Apache HTTPComponents 异步客户端问题。es官网有个issues详细的记录的这个问题的原因和修复建议。
官方的意见是 Apache HTTPComponents 异步客户端 使用了一个内部的I/O reactor 分发IO event。在某些情况下,IO reactor会记录程序调用栈中的异常或者Java NOI库中的异常,如果这些异常不被处理,I/O reactor会直接关闭,es client不可用,此时只能重启服务。es client中试图增加一个默认的 I/O reactor 异常处理逻辑但是在做了一些尝试后发现捕获I/O reactor后会导致SSL中断。而HTTPComponents 在版本5中已经修复了这个问题,最终官网给的建议是等待版本升级。
二、解决思路 解决问题的过程中参考了以下文档:
https://www.cnblogs.com/yangchongxing/p/15440197.html
https://github.com/elastic/elasticsearch/issues/42133
https://zhuanlan.zhihu.com/p/384269417
https://cloud.tencent.com/developer/article/1806886
主要获得解决方法的是以下:
https://github.com/elastic/elasticsearch/issues/39946
主要引用以下:
大概意思是说:
在每个线程需要时创建一个新的客户端,并在方法结束时关闭。这就解决了问题。
结合GPT获取解决方案:
import java.util.concurrent.Executors; import java.util.concurrent.ExecutorService; public class EsClientManager { private final ExecutorService executorService = Executors.
一、问题描述 有一块东芝的移动硬盘之前一直是在 Windows 上使用,自从换了 MAC 之后,移动硬盘在 MAC 上只能读数据,不能写数据(新增 / 删除 / 文件重命名等)。多方查阅资料后发现,Windows 的移动硬盘的系统格式为 NTFS,NTFS 本身是微软的专利软件,所以在 MacOS 系统上只支持读,不支持写。可以通过【Mounty for NTFS Mac】来解决此问题,让你的 NTFS 移动硬盘重新容光焕发。
二、免费版 Mounty for Mac NTFS 格式读写工具安装 Mounty for NTFS Mac,支持最新的 macOS Monterey 系统。功能类似于 Tuxera NTFS、Paragon NTFS 等软件,都是能够解决无法写移动硬盘问题,因为在 MacOS 系统上,默认对 NTFS 分区只能读而不能写,但我们的移动硬盘或 U 盘很多都是用 NTFS 进行的分区,所以当你发现在 Mac 上无法往移动硬盘或 U 盘中写入数据时,大部分原因是你没有安装 NTFS 分区驱动,Mounty for NTFS 简单易用 而且 免费。
Mounty 实际是用 mac 自带的 mount 命令来挂载 ntfs 文件系统,再封装了一个简单的菜单界面(所以该软件只有不到 7M),由于 NTFS 本身是微软的专利软件,所以 Mac 并没明面上提供可写的功能,但实际上通过命令行是可以实现的。
前端项目打包与发布 前端项目打包与发布使用静态服务器工具包发布打包使用动态Web服务器(Tomcat)发布打包Vue-devtoolsVue-devtools的安装Vue-devtools使用 前端项目打包与发布 在控制台中输入npm run build命令对当前Vue项目进行打包
打包完成,控制台会输出Build complete。并且在Vue项目中生成一个dist的打包文件,
使用静态服务器工具包发布打包 步骤1:首先安装全局的serve,在命令行输入命令npm install-g serve,
步骤2:在WebStorm控制台输入命令。
serve dist //serve + 打包文件名
使用动态Web服务器(Tomcat)发布打包 步骤1:修改配置文件webpack.prod.conf.js
步骤2:重新打包步骤3:将dist文件夹复制到运行的Tomcat的webapps目录下,修改dist文件夹为项目名称(本例中为vue-project)
步骤4:启动Tomcat,使用浏览器访问输出的地址 Vue-devtools 在开发时经常要观察组件实例中data属性的状态,方便进行调试,但一般组件实例并不会暴露在window对象上,无法直接访问内部的data属性,若只通过debugger进行调试则效率太低。所以Vue官方推出一款Chrome插件Vue-devtools,Vue-devtools是一款基于Chrome浏览器的插件,用于调试Vue应用,这可以极大地提高调试效率。本节主要介绍Vue-devtools的安装和使用。
Vue-devtools的安装 Vue-devtools的安装步骤如下。
(1)通过GitHub下载Vue-devtools库,网址为https://GitHub.com/vuejs/vue-devtools/tree/v5.1.1。使用git下载,命令如下:
git clone https://GitHub.com/vuejs/vue-devtools
(2)在vue-devtools目录下安装依赖包,命令如下:
cd vue-devtools //进入文件目录 npm install //如果安装太慢可以用cnpm代替 (3)编译项目文件,命令如下:
npm run build (4)修改manifest.json文件,把"persistent":false改成"persistent":true。一般所在路径是:自定义路径\vue-devtools-5.1.1\shells\chrome\manifest.json。
(5)使用谷歌浏览器并在地址输入栏输入chrome://extensions/进入插件界面。
单击“加载已解压的扩展程序”按钮,选择Vue-devtools shells chrome放入,安装成功后如图 Vue-devtools使用 当添加完Vue-devtools扩展程序之后,在调试Vue应用的 时候,打开F12,在Chrome开发者工具中会看一个Vue栏,单击之后就可以看见当前页面Vue对象的一些信息,如图7-22所示。Vue是通过数据驱动的,这样就能看到对应的数据了,方便进行调试。Vue(-?)devtools使用起来还是比较简单的,上手非常容易。
Ollama简介 Ollama 是一个开源平台,用于管理和运行各种大型语言模型 (LLM),例如 Llama 2、Mistral 和 Tinyllama。它提供命令行界面 (CLI) 用于安装、模型管理和交互。您可以使用 Ollama 根据您的需求下载、加载和运行不同的 LLM 模型。
Docker简介 Docker 是一个容器化平台,它将应用程序及其依赖项打包成一个可移植的单元,称为容器。容器与主机系统隔离,确保运行应用程序时环境一致且可预测。这使得 Docker 非常适合在不同环境中部署和运行软件。
使用 Ollama 和 Docker 运行 LLM 模型 有两种主要方法可以使用 Ollama 和 Docker 运行 LLM 模型:
1. 使用 Ollama Docker 镜像:
官方 Ollama 库在 Docker Hub 上提供各种 LLM 模型的 Docker 镜像。您可以拉取这些镜像并在容器中运行它们,而无需在您的主机系统上安装 Ollama。这是一种快速测试和运行不同模型的便捷方式,无需担心依赖项。例如,要运行 Llama 2 模型,您可以使用以下命令: docker exec -it ollama ollama run llama2 2. 使用 Docker Compose 和 Ollama:
Docker Compose 允许您定义具有其依赖项的多容器应用程序。您可以创建一个 docker-compose.yml 文件来指定 Ollama 容器和任何其他需要的服务(例如数据库)。这种方法为运行您的 LLM 提供了更多的灵活性和对环境的控制。可用的社区维护的 Docker Compose 设置包括: https://github.
揭秘文心一言:文章查重率背后的秘密
一般在40%到80%左右,针对重复率,可以用专门的降重工具来降低重复率。
在数字化时代,随着人工智能技术的飞速发展,写作助手如“文心一言”已成为许多写作者不可或缺的良伴。然而,随之而来的是关于其生成内容查重率的热议。那么,文心一言写的文章查重率大约多少呢?本文将从七个方面为您深入剖析。
一、文心一言的写作原理
文心一言基于庞大的语料库和深度学习算法,通过模拟人类写作过程生成文章。其写作原理与传统写作有着本质的区别,这也决定了其查重率的特殊性。
二、查重率的定义与影响因素
查重率是指文章内容与已有文献的相似度。对于文心一言生成的文章,查重率受到多种因素影响,如语料库的更新频率、算法的精确度以及写作者的使用方式等。
三、文心一言文章查重率的实际情况
根据实际测试和用户反馈,文心一言生成的文章查重率普遍较低。这得益于其独特的写作原理和不断优化的算法。然而,具体查重率仍需根据具体情况而定。
四、如何降低查重率
对于使用文心一言写作的作者来说,降低查重率的关键在于合理调整写作策略。例如,通过增加原创内容、调整句式结构等方式,可以有效降低文章的查重率。
五、文心一言与其他写作工具的比较
相比其他写作工具,文心一言在查重率方面有着独特的优势。这主要得益于其先进的算法和庞大的语料库。然而,不同的写作工具各有千秋,选择哪种工具还需根据作者的实际需求而定。
六、文心一言的未来发展趋势
随着技术的不断进步,文心一言未来的查重率有望得到进一步提升。同时,其写作风格和内容质量也将更加多样化,满足不同写作者的需求。
七、总结与展望
总的来说,文心一言写的文章查重率因多种因素而异。但通过合理使用和调整写作策略,可以有效降低查重率。展望未来,随着技术的不断进步,我们期待文心一言在写作领域发挥更大的作用。同时,我们也应关注其查重率背后的深层次问题,如知识产权、学术诚信等,以确保人工智能技术在推动社会进步的同时,也能维护学术界的健康发展。
本文将详细介绍如何在Spring Boot应用程序中集成Swagger3,以构建现代化的RESTful API文档。我们将探讨Swagger3的基本概念,以及如何使用Spring Boot和Swagger3库来实现API文档。此外,我们将通过具体的示例来展示如何在Spring Boot中配置和使用Swagger3。本文适合希望使用Swagger3为Spring Boot应用程序生成API文档的开发者阅读。
一、引言 在现代Web开发中,RESTful API文档是一个重要的组成部分。Swagger是一个流行的API框架,用于构建、描述、消费RESTful服务。Swagger3是Swagger的下一代,它提供了更简洁、更强大的功能,以满足现代API的需求。Spring Boot提供了对Swagger3的直接支持,使得集成和使用Swagger3变得非常简单。
二、Swagger3的基本概念 1. 什么是Swagger3?
Swagger3是一个用于构建、描述、消费RESTful服务的框架。它提供了一套完整的工具,用于生成API文档、自动生成客户端SDK、进行API测试等。Swagger3支持OpenAPI 3.0规范,使得API文档更加丰富和交互式。
2. Swagger3的特点
现代化:Swagger3提供了更加简洁、现代的API文档界面。交互式:Swagger3支持交互式API测试,用户可以在线发送请求和查看响应。可扩展性:Swagger3支持多种插件和扩展,以满足不同的需求。社区支持:Swagger3拥有一个庞大的社区,提供了丰富的资源和工具。 三、在Spring Boot中集成Swagger3 1. 添加Swagger3依赖
在项目的pom.xml文件中,添加Spring Boot的Swagger3依赖:
<dependencies> <!-- Spring Boot Web依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot OpenAPI依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-openapi</artifactId> <version>3.0.0</version> </dependency> </dependencies> 2. 配置Swagger3
Spring Boot会自动配置Swagger3,但我们可以通过在application.properties或application.yml文件中添加一些属性来定制Swagger3的行为。例如:
# application.properties spring.mvc.static-path-pattern=/static/** 3. 创建Swagger3配置类
虽然Spring Boot会自动配置Swagger3,但我们也可以通过创建一个Swagger3配置类来进一步定制Swagger3的行为。以下是一个简单的Swagger3配置类示例:
package com.example.demo.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.