虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
目录
1 论文简介
2 文章的主要贡献
3 文章技术的简要说明
4 技术的详细说明
4.1 GAN-SD:生成客户特征
4.2 MAIL:生成交互过程
4.3 ANC:动规范约束
5 实验设定及结果
6 结论
7 参考
1 论文简介
南京大学LAMDA团队的侍竞成、俞扬等人在AAAI 2019发表了一篇论文,介绍了在淘宝这个大型在线零售平台上利用强化学习进行商品搜索的项目。论文题为“Virtual-Taobao: Virtualizing Real-World Online Retail Environment for Reinforcement Learning”,详细描述了该项目的实施过程。
在这项研究中,团队没有直接在淘宝平台上训练强化学习模型,而是提出了一种环境构建方法:首先构建虚拟淘宝(Virtual-Taobao)。这个虚拟淘宝是一个从历史客户行为数据中学习的模拟器。通过在虚拟淘宝上训练策略,可以避免实物采样的高成本。实验结果表明,纯粹在虚拟淘宝上训练的策略,通过在线A/B测试,其性能显著优于传统的监督方法,并且无需物理采样成本。
论文链接:https://arxiv.org/pdf/1805.10000.pdf。研究人员希望这项工作能够为在复杂物理环境中应用强化学习提供新的启示。
2 文章的主要贡献
为了提高仿真精度,我们提出了用于分布匹配的客户特征生成方法——GAN-SD(Generative Adversarial Network for Simulation Distribution)。此外,我们引入了MAIL(Multiagent Adversarial Imitation Learning),以生成更具一般化的客户行为。同时,为了进一步避免模拟器缺陷带来的过拟合,我们提出了ANC(Action Norm Constraint)策略来规范策略模型。
Virtual-Taobao架构专为强化学习构建,并在实验中基于数以亿计的真实淘宝客户记录进行训练。与真实淘宝相比,Virtual-Taobao忠实地还原了真实环境的重要属性。研究表明,在虚拟淘宝上纯粹训练的策略,通过在线A/B测试,其物理采样成本为零,且在现实世界中的性能显著优于传统的监督方法。
3 文章技术的简要说明
在这些场景中直接应用强化学习 (RL) 的一个主要障碍是,当前的RL算法通常需要与环境进行大量交互,这会带来很高的物理成本,如实际的金钱消耗、长时间的实验周期、糟糕的用户体验,甚至可能危及生命(如在医疗任务中)。为了避免这些物理成本,RL训练通常使用模拟器。例如,谷歌在数据中心冷却方面的应用展示了一个成功的案例:使用神经网络模拟系统动态,然后在模拟环境中通过先进的RL算法训练策略。
在淘宝商品搜索项目中,我们采用了类似的方法:构建一个模拟器,即虚拟淘宝 (Virtual-Taobao),并在模拟器中离线训练策略,以实现长期收益最大化。理想情况下,这样获得的策略在真实环境中也能表现良好,或者至少可以为更经济的在线调优提供良好的初始条件。然而,与模拟数据中心动态不同,模拟数亿客户在动态环境中的行为更具挑战性。
我们通过生成客户和交互数据来构建虚拟淘宝。现有的模仿学习方法可以从数据中推导出策略。例如,行为克隆 (Behavior Cloning, BC) 方法通过监督学习从状态-行为数据中学习策略,但需要满足独立同分布 (i.i.d.) 假设,这在RL任务中不总是适用。逆强化学习 (IRL) 方法从数据中学习奖励函数,再根据奖励函数训练策略,放松了i.i.d.假设,但假设环境是静态的,当环境变化时可能会失败。因此,这些方法在构建虚拟淘宝时不太实用。
为了更好地生成虚拟客户,我们提出了GAN-for-Simulating Distribution (GAN-SD) 方法,因为我们发现传统方法(如GMM和GAN)不适合处理这种高维数据。为了生成交互数据,我们提出了多主体对抗模仿学习 (Multi-agent Adversarial Imitation Learning, MAIL) 方法。MAIL同时学习客户策略和平台策略,采用了GAIL的思想,使用生成对抗框架训练一个鉴别器来区分模拟交互和真实交互,并将区别信号作为奖励反馈,训练客户策略和平台策略,从而产生更真实的交互。
在生成客户和交互数据后,虚拟淘宝就完成了,可以用于训练平台策略。然而,我们注意到RL算法的强大足以过拟合虚拟淘宝的不足,即在虚拟环境中表现良好但在现实中表现差。因此,我们提出了行动规范约束 (Action Norm Constraint, ANC) 来规范策略。
综上所示,整个过程用到了三种算法:
- GAN-SD:生成虚拟客户
- MAIL:生成虚拟交互
- ANC:平台策略(RL容易过拟合)
在实验中,我们从数亿条客户记录中构建了虚拟淘宝,并与真实环境进行对比。结果显示,虚拟淘宝成功地重现了接近真实环境的属性。我们利用虚拟淘宝训练平台策略,实现了收益最大化。与传统的监督学习方法相比,虚拟淘宝训练的策略在真实环境下的收益提高了2%以上,且无需物理实验成本。
4 技术的详细说明
商品搜索是淘宝的核心业务,淘宝可以被视为一个与客户交互的搜索引擎系统。淘宝的搜索引擎需要在毫秒级响应数十亿次商品搜索请求,同时客户对商品的偏好也非常多样化。从引擎的角度来看,淘宝平台的工作原理如下:
1)客户访问淘宝并发送搜索请求。
2)搜索引擎对相关商品进行排序,然后显示页面视图 (PV) 以响应搜索请求。
3)客户根据页面视图进行反馈,例如购买商品、浏览下一页或离开淘宝。
4)搜索引擎接收反馈信号,并为下一个PV请求做出新的决定。
淘宝的业务目标之一是通过优化PV显示策略来实现销售量的最大化。由于客户行为会受到之前PV的影响,在优化搜索引擎策略时,将其视为多步骤决策问题,而不是单步监督学习问题,是更为合理的选择。因此,考虑到搜索引擎作为代理,以及客户的反馈作为环境,淘宝中的商品搜索是一个连续决策问题。假设客户只记住有限数量的最新PV,这意味着反馈信号仅受搜索代理的m个历史行为的影响。
如上图所示,淘宝搜索在搜索引擎和客户的视角下具有以下特性:
1)搜索引擎视角:搜索引擎根据客户的搜索请求和之前的反馈信号,进行商品排序并显示PV。
2)客户视角:客户对搜索引擎显示的商品做出反应,其行为(即反馈信号)受到最近m个PV的影响。这些PV由搜索引擎生成,并受到客户最后反馈的影响。
从这个角度来看,搜索引擎和客户互为彼此的环境,二者的策略是耦合在一起的。如果客户只是浏览下一页而没有其他行为,那么搜索引擎记录的客户特征和搜索请求将保持不变。如果客户发送了另一个请求或离开淘宝,记录状态就会发生变化。
考虑到客户对环境更为敏感,我们对客户行为进行了特别设计。客户行为受其想要的内容 (S) 和看到的内容 (A) 的影响,其中S是引擎观察结果,即包含请求的客户特征,A是引擎动作,即向客户显示的页面视图。由于顾客的购买意图会随浏览页数的变化而变化,我们设Sc = S×A×N,其中N表示页面索引空间。
总结来说,淘宝商品搜索是一个复杂的连续决策过程,涉及搜索引擎和客户之间的动态交互。通过合理的设计和优化,我们可以提高搜索引擎的效率,从而最大化销售量。
4.1 GAN-SD:生成客户特征
为了构建虚拟淘宝,首先需要生成客户特征,即对用户 Uc进行采样,包括来自 Pc的请求,以触发交互过程。生成的客户分布应与真实分布相似。然而,在高维空间中学习分布是一个极具挑战性的任务。像高斯混合模型(GMM)这样的经典方法很难实现这种相似分布。
众所周知,GAN(生成对抗网络)框架在生成接近于原始数据的样本方面表现出色,尤其在生成图像方面取得了巨大成功。然而,传统的GAN判别器虽然能够判断某个实例是否来自真实世界,但它们缺乏捕获整体客户分布架构的能力。为了解决这一问题,并生成分布而不是单个实例,我们提出了用于模拟分布的生成对抗网络(GAN-SD),其算法如算法1所示。
GAN-SD与传统的GAN类似,由生成器G和判别器D组成。在GAN-SD中,判别器的主要目标是通过最大化特定的目标函数来有效区分生成的数据和训练数据。而更新后的生成器则通过最大化另一目标函数,利用KL散度和熵约束,从真实数据中学习更丰富的指导信息。这使得GAN-SD能够生成比传统GAN更优秀的分布。
GAN-SD(用于模拟分布的生成对抗网络)和传统的GAN在应用和设计目标上存在一些关键区别。以下是对这些差异的详细解释:
传统的生成对抗网络 (GAN) 主要包括两个部分:生成器 (Generator) 和判别器 (Discriminator)。其工作流程如下:
- 生成器 (G):从随机噪声中生成数据样本,尝试骗过判别器。
- 判别器 (D):试图区分真实数据和生成器生成的数据样本。
传统GAN的训练目标是让生成器生成的样本尽可能接近真实数据分布,而判别器尽可能准确地区分真实样本和生成样本。具体步骤如下:
GAN-SD的改进之处:
4.2 MAIL:生成交互过程
在用户策略是未知的情况下同时训练customer policy 和 engine policy,因为不知道customer reward function,所以采用IRL(模仿学习中的一种算法)去生成决策模型。
通过模拟客户策略在虚拟的淘宝平台上生成客户与平台之间的互动是本文的目标。文章采用基于GAIL思想的多智能体对抗模仿学习(MAIL)方法来实现这一目标。GAIL允许智能体在训练期间与环境进行交互,并且奖励函数在训练过程中不断优化。需要注意的是,在GAIL的训练过程中,智能体可以访问环境。然而,训练客户策略时需要将淘宝平台视为未知或动态环境。
MAIL与在静态环境中训练单一智能体策略的GAIL有所不同,它是一种面向多智能体的训练策略,适用于客户策略和平台引擎策略的训练。通过这种方法,生成的客户策略可以包含多种搜索引擎策略。
MAIL算法同时训练两种策略——代理和环境(平台),只需使用历史数据而无需访问真实环境。以下是MAIL算法的伪代码示例:
MAIL(Multi-Agent Imitation Learning)利用了模仿学习技术,并且涉及多智能体的训练方法。这种方法借鉴了GAIL(Generative Adversarial Imitation Learning)的理念,但在实现上有所不同。GAIL通过直接从专家数据中学习策略,首先学习专家数据的奖励函数(通过IRL,Inverse Reinforcement Learning),然后使用强化学习方法学习到与专家策略相近的策略。
而MAIL则需要训练两个智能体(agents)。这两个智能体可以是互相对抗的,也可以是协作的,彼此之间进行学习和优化。MAIL的目标是通过模仿学习技术,同时训练多个智能体,使它们能够在多智能体环境中学习有效的策略。通过这种方法,能够同时得到推荐策略和客户行为策略。
4.3 ANC:动规范约束
动规范约束(Action Norm Constraint, ANC),目的为了减少虚拟淘宝的过拟合。上一步使用IRL,会导致学到的策略和历史策略一样,即没有提升。提出用于控制所采取行动的范数的约束方法。
所采取行动的范数大于大多数历史行为的范数时,加上惩罚。
5 实验设定及结果
为了验证 “虚拟淘宝” 的效果,我们使用以下量度指标:
总营业额(TT):所售商品的总价值。总量(TV):销售商品的数量。购买页面的购买(R2P):产生购买行为的 PV 数量占总 PV 的比例。
图 学习后的顾客分布的对比
图 真实淘宝和虚拟淘宝之间的 R2P 对比
本文在线实验中采用了全部测量方式。在离线实验中只使用了 R2P 方法,因为我们没有对客户数量和商品价格做出预测。了便于在真实环境和虚拟环境之间比较这些指标,我们提前在真实环境(特别是淘宝网的在线 A/B 测试)中部署了随机引擎策略,并收集了相应的轨迹作为历史数据(约 4 亿条记录)。本文没有假设生成数据的引擎策略,也就是说,在构建虚拟环境时,可能采用的是任何未知的复杂模型。
表 虚拟数据和真实数据之间的 KL 分歧
表 采用行为克隆和 MAIL 算法的模拟器随时间的 R2P 性能提升
6 结论
为了解决淘宝网站中面向商品搜索的强化学习的高成本问题,本文提出了一个 “虚拟淘宝模拟器”,根据历史数据进行训练的。首先通过 GAN-SD 生成虚拟客户,并通过 MAIL 生成虚拟交互过程。研究结果表明,“虚拟淘宝” 能够忠实反映真实环境中的特征。
本文提出通过 ANC 策略训练性能更高的平台策略,让新的策略具备比传统监督学习方法更好的真实环境下的性能。“虚拟淘宝” 具备实际应用意义,也颇具挑战性。希望这项工作能够为将强化学习应用于复杂物理任务提供一些启示。
7 参考
https://blog.csdn.net/strawberry47/article/details/124558046
https://baijiahao.baidu.com/s?id=1626945450349711651&wfr=spider&for=pc
相关文章:
虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
目录 1 论文简介 2 文章的主要贡献 3 文章技术的简要说明 4 技术的详细说明 4.1 GAN-SD:生成客户特征 4.2 MAIL:生成交互过程 4.3 ANC:动规范约束 5 实验设定及结果 6 结论 7 参考 1 论文简介 南京大学LAMDA团队的侍竞成、俞扬等…...
低代码组件扩展方案在复杂业务场景下的设计与实践
组件是爱速搭的前端页面可视化模块的核心能力之一,它将前端研发人员从无休止的页面样式微调和分辨率兼容工作中解放了出来。 目前,爱速搭通过内置的上百种功能组件(120),基本可以覆盖大部分中后台页面的可视化设计场景…...
震撼科技界的GPT-4o发布首日即遭“越狱破防”
前言 本文主要解读分析OpenAI最新推出的大型模型GPT-4o可能存在的越狱风险。 5 月14 日凌晨的科技圈再一次被OpenAI轰动,其发布的最新大模型GPT-4o,能力横跨语音、文本和视觉,这一成果无疑再次巩固了OpenAI在人工智能领域的领先地位。 然而…...
保护密码安全,探讨密码加盐及其在Go语言中的实现
介绍 在当今数字化时代,个人隐私和数据安全成为了人们关注的焦点之一。随着网络犯罪的不断增加,用户的密码安全性变得尤为重要。密码加盐作为一种常见的安全措施,被广泛应用于密码存储和认证系统中。本文将深入探讨密码加盐的概念、重要性以…...
Sqoop学习详细介绍!!
一、Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(HDFS/Hive/HBase)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的H…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…...
ctfshow web 单身杯
web签到 <?phperror_reporting(0); highlight_file(__FILE__);$file $_POST[file];if(isset($file)){if(strrev($file)$file){ //翻转函数include $file;}}要进行反转并且包含文件用data协议 自己写不好写可以用函数帮你翻转 <?php $adata:text/plain,<?eval(…...
天锐绿盾加密软件,它的适用范围是什么?
天锐绿盾数据防泄密软件的适用范围广泛,主要可以归纳为以下几点: 行业适用性: 适用于各个行业,包括但不限于制造业、设计行业、软件开发、金融服务等,特别是对数据安全性要求较高的行业。企业规模与类型: 适…...
mysql面试题 Day2
1 长文本如何存储? 可以使用Text存储 TINYTEXT(255长度) TEXT(65535) MEDIUMTEXT(int最大值16M) LONGTEXT(long最大值4G) 2 大段文本存储如何设计表结构? 分表存储 分表后多段存储 3 大段文本查找时如何建立索引࿱…...
Excel加密怎么设置?这5个方法不容错过!(2024总结)
Excel加密怎么设置?如何不让别人未经允许查看我的excel文件?如果您也有这些疑问,那么千万不要错过本篇文章了。今天小编将向大家分享excel加密的5个简单方法,保证任何人都可以轻松掌握!毫无疑问的是,为Exce…...
2024年下一个风口是什么?萤领优选 轻资产创业项目全国诚招合伙人
2024年,全球经济与科技发展的步伐不断加快,各行各业都在探寻新的增长点与风口。在这样的时代背景下,萤领优选作为一个轻资产创业项目,正以其独特的商业模式和前瞻的市场洞察力,吸引着众多创业者的目光。(领取ÿ…...
Redis 网络模型
一、用户空间和内核空间 1.1 linux 简介 服务器大多采用 Linux 系统,这里我们以 Linux 为例来讲解,下面有两个不同的 linux 发行版,分别位 ubuntu 和 centos,其实发行版就是在 Linux 系统上包了一层壳。 任何 Linux 发行版&#…...
【设计模式之组合模式 -- C++】
组合模式 – 树状结构,递归遍历 组合模式(Composite Pattern)是一种结构型设计模式,它可以让你将对象组合成树形结构,并且能像使用独立对象一样使用它们。这种模式定义了包含人和组的类,每个类都有可以在树形结构中显示的方法。这…...
C# 通过Win32API设置客户端系统时间
在日常工作中,有时可能会需要获取或修改客户端电脑的系统时间,比如软件设置了Licence有效期,预计2024-06-01 00:00:00到期,如果客户手动修改了客户端电脑时间,往前调整了一年,则软件就可以继续使用一年&…...
VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!
传统上,USB 设备需要直接插入计算机才能使用。有了 VirtualHere,就不再需要这样做,网络本身就变成了传输 USB 信号的电缆(也称为 USB over IP、USB/IP、USB over WiFi、USB over Ethernet、USB 设备服务器)。 此 USB …...
【Kubernetes】k8s 自动伸缩机制—— HPA 部署
一、在K8s中扩缩容分为两种: ●Node层面:对K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容 ●Pod层面:我们一般会使用Deployment中的Replicas参数,设置多个副本集来保证服务的高可用,但是这是…...
MT1415 大小相同
题目 给定一个由N(<10)个正整数组成的数组A,生成一些最小元素和最大元素相同的子数组数(可以仅包含1个元素),统计这些子数组的数量并输出。 注:最大元素和最小元素相同就是数组中的元素全部为同一个值。如数组&am…...
使用python库moviepy完成视频剪辑
1.关于moviepy和原理 moviepy事github上面的一个开源项目,地址是:GitHub - Zulko/moviepy: Video editing with Python 官方文档地址: User Guide — MoviePy 1.0.2 documentation 中文版文档可参考: MoviePy中文手册 — mov…...
Java高手的30k之路|面试宝典|精通泛型
泛型 知识点 在Java高级开发中,掌握泛型(Generics)是非常重要的,它是Java语言中的一项重要特性,提供了编译时类型安全检查机制,使得代码更加灵活和可重用。以下是Java高级开发需要掌握的泛型知识点&#…...
清理Linux操作系统buff/cache缓存
清理Linux操作系统buff/cache缓存 清理页缓存 echo 1 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches1 清理目录项和inode缓存 echo 2 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches2 同时清理页缓存、目录项和inode缓存 echo 3 > /pr…...
接口测试的几种方法
其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。 方法一、用LoadRunner实现接口测试 大家都…...
OpenGL3.3_C++_Windows(3)
GLSL Shader基础 Shader(把输入转化为输出,运行在GPU上):首先要声明版本,有各自的入口点main()顶点数据上限:16个包含4分量:16 * 4 64个分量向量:容器vec。使用.x、.y、.z和.w&am…...
24执业药师报名时间汇总及报名流程!
24执业药师报名时间汇总!报名流程! 🕛️各省市报名时间汇总(共9地) 西藏:6月29日-7月8日 新疆:6月25日10:30-7月9日19:00 内蒙古:6月20日9:00-7月3日24:00 新疆兵团:6月2…...
成都跃享未来教育咨询解锁新篇章
在快节奏的现代社会中,每个人都在追求着属于自己的非凡人生。而成都跃享未来教育咨询,正是那个能够智慧引领你走向成功、成就非凡人生的灯塔。 跃享未来教育咨询,位于历史悠久的文化名城成都,这里不仅有丰富的文化底蕴,…...
怎么把网页上的接口信息导入postman
第一步 打开f12,右键选中需要的接口。选择copy-copy as cURL 第二步 打开postman,选择"Raw Text", 把刚才复制的curl粘贴到空白位置,点击Continue - 最后的效果。导入的接口自带cookie,不用再输入cookie&a…...
10KM无人机高清图传通信模组,低延迟、抗干扰,飞睿智能无线MESH组网模块
随着科技的飞速发展,无人机技术在各个领域的应用越来越广泛。尤其在海上监测、搜索救援、货物运输等场景中,无人机的应用显得尤为重要。然而,要实现无人机在复杂海域环境中的高效通信,高清图传通信模组的作用不可忽视。本文将深入…...
分布式文件存储 - - - MinIO从入门到飞翔
MinIO从入门到飞翔 文章目录 MinIO从入门到飞翔0、前言1、分布式文件系统2、MinIO 介绍3、 MinIO安装(docker)4、基本概念5、通过代码上传文件到MinIO6、封装MinIO为starter7、在其他项目中集成封装好的模块 0、前言 对象存储是一种数据存储架构&#x…...
Python界面编辑器Tkinter布局助手 使用体验
一、发现 我今天在网上搜关于Python Tkinter方面的信息时,发现了Python界面编辑器 Tkinter布局助手 的使用说明。 https://blog.csdn.net/weixin_52777652/article/details/135291731?spm1001.2014.3001.5506 这个编辑器是个开源的项目,个人用户可以…...
嵌入式操作系统_2.嵌入式操作系统的一般架构
1.嵌入式操作系统的概念 嵌入式操作系统通常由硬件驱动程序、调式代理、操作系统内核、文件系统和可配置组件等功能组成,并为应用软件提供标准的API(Application Programming Interface)接口服务。 2.一般嵌入式操作系统的体系结构 从嵌入…...
docker 容器 network host 模式启动
docker 默认启动容器 network 是 bridge 模式,需使用 -p 映射端口实现容器与宿主机网络通信,较安全; 当使用 network host 模式,直接走宿主机网络通信,较不安全。 下面来一个 docker 容器 network host 模式启动 的 实…...
做任务领取礼品的网站/电脑培训班一般需要多少钱
目录 1.单例模式 2.抽象工厂模式 3.工厂方法模式 4.建造者模式 5.原型模式 6.适配器模式 7.装饰器模式 8.代理模式 9.外观模式 10.桥接模式 11.组合模式 12.享元模式 13.策略模式 14.模板方法模式 15.观察者模式 16.迭代器模式 17.责任链模式 18.命令模式 19…...
javaweb 自己做网站/上海seo优化公司kinglink
Havok 来源:百度百科 目录 Havok概述Havok的组成Havok PhysicHavok FXHavok AnimationHavok BehaviorHavok ClothHavok DestructionHavok AI支持Havok引擎的游戏与软件全平台Havok引擎游戏使用Havok引擎的软件:使用Havok引擎制作的电影Havok与PhysX的简单…...
做网站内容需要自己填的/十大经典案例
传说中,原始社会晚期中原一带姬姓部落的首领叫黄帝,号轩辕氏。一号有熊氏,相传他率领姬姓部落,先后在阪泉(今河北涿鹿东南)、涿鹿打败炎帝和蚩尤部落,成为中原一带各部落拥戴的首领。各部落结成…...
如何复制wordpress主题/合肥关键词排名工具
小米公开亮度调校方法,友商请速度跟进除了 1.08 亿像素、高刷新率屏幕以及骁龙 865 处理器外,小米10 还有很多细节值得赞赏。比如小米在发布会上花了不少篇幅介绍的小米10 双光线传感器 4096 级别亮度调节方案。更精准、舒适的亮度调节让别家品牌的用户都…...
网站怎么上传网站吗/惠东seo公司
编写聊天工具是学习网络编程比较有代表性的案例。 基于TCP socket 聊天工具的框架图如下: 其中,标准输入是键盘,标准输出是显示器的控制台。 具体过程如下: 首先客户端通过键盘输入字符串,通过标准输入流读取字符串…...
少儿编程几岁开始学最好/广州seo
nohup 命令的功能是在不挂端的情况下执行命令,默认会输出一个 nohup.out 的文件。 用法: nohup COMMAND [ARG]... nohup OPTION 如果标准输入是终端,则将其从不可读的文件中重定向。 如果标准输出是终端,则尽可能将输出附加到…...