提升Selenium在Chrome上的HTML5视频捕获效果的五个方法

在使用Selenium进行网页自动化测试时,捕获HTML5视频是一个常见的需求。然而,许多开发者发现,在使用Chrome浏览器时,视频捕获效果并不理想,经常出现视频背景为空白的问题。本文将概述五种方法,帮助提升Selenium在Chrome上的HTML5视频捕获效果。 方法一:更新Chrome和ChromeDriver版本 概述:确保使用最新版本的Chrome和ChromeDriver,以便获得最新的功能和修复。过时的版本可能会存在兼容性问题,影响视频捕获效果。 细节: 下载最新版本的Chrome浏览器。下载并配置最新版本的ChromeDriver。在Selenium代码中更新ChromeDriver路径。 from selenium import webdriver # 设置ChromeDriver路径 driver_path = '/path/to/chromedriver' driver = webdriver.Chrome(executable_path=driver_path) 方法二:配置适当的Chrome选项 概述:通过配置Chrome选项,可以优化视频捕获效果。确保启用正确的选项,以避免影响视频播放和捕获。 细节: 添加与视频捕获相关的Chrome选项。禁用不必要的功能以提升性能。 from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--autoplay-policy=no-user-gesture-required') options.add_argument('--use-fake-ui-for-media-stream') options.add_argument('--disable-gpu') options.add_argument('--disable-setuid-sandbox') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome(options=options) 方法三:使用代理IP技术 概述:使用代理IP技术可以避免被封禁,提高爬虫的稳定性和成功率。本文将以亿牛云爬虫代理为例,介绍如何在Selenium中配置代理IP。 细节: 注册并获取亿牛云爬虫代理的域名、端口、用户名、密码。在Selenium中配置代理IP。 from selenium import webdriver # 代理IP配置 亿牛云爬虫代理加强版 proxy = "http://username:password@wwww.16yun.cn:port" options = webdriver.ChromeOptions() options.add_argument('--proxy-server=%s' % proxy) driver = webdriver.Chrome(options=options) 方法四:优化视频加载策略 概述:通过调整页面加载策略,可以加快视频的加载速度,避免视频捕获过程中出现空白。 细节: 设置页面加载策略为’eager’。配置Selenium等待机制,确保视频完全加载。 from selenium import webdriver options = webdriver.

react 的条件渲染

##### 使用 if/else 语句 可以在 JSX 中使用普通的 JavaScript `if`/`else` 语句来进行条件渲染。 import React from 'react'; function ConditionalRender(props) { const isLoggedIn = props.isLoggedIn; if (isLoggedIn) { return <UserGreeting />; } else { return <GuestGreeting />; } } function UserGreeting() { return <h1>Welcome back!</h1>; } function GuestGreeting() { return <h1>Please sign up.</h1>; } export default ConditionalRender; ##### 使用三元运算符 另一种常见的方式是使用 JavaScript 中的三元运算符来进行条件渲染。 import React from 'react'; function ConditionalRender(props) { const isLoggedIn = props.isLoggedIn; return ( <div> {isLoggedIn ?

从头开始学习扩散模型 Stable Diffusion

今天我们来揭开 Stable Diffusion 技术的神秘面纱。 1.稳定扩散原理 Stable Diffusion 在2022年发表,一种基于Latent Diffusion Models的新兴机器学习技术。它基于扩散过程,利用数学模型将机器学习中的高维度数据降低到低维度空间,并在该空间中进行训练。Stable Diffusion的原理涉及到以下三个组件: Text Encoder 文字特征化:为了输入文字的内容,我们要先有一个powerful的文字特征萃取器,可以是GPT、BERT等常见的主流Transformer model,总之能把文字特征做得好,就好的是Encoder 。 Diffusion Model 扩散模型:透过降躁过程,将一个潜在空间Latent Space的图像,逐步转回真实图像的技术,里面用到U-Net架构及Attenation技术,来提高模型表现,与传统的Diffusion略有不同。 VAE (Variational Autoencoder):变分自编码器,负责图像在潜在空间的压缩与重建,压缩后的图像能让模型学得更快更好。 以功能来切,大概可以这样理解 以模型的学习与训练来看,可以这样理解: 将高维特征压缩到低维,然后在低维空间上进行操作的方法具有泛用性,可以很容易推广到文本、音频、影像等数据。 Stable Diffusion模型中,有几种不同的sampling方法可以用来生成数据,以下是一些常见的sampling方法: Gaussian sampling:是Stable Diffusion中最常用的一种sampling方法。它通过将高斯噪声添加到数据中来生成新的样本。这种方法可以帮助模型更好地理解数据的分布和特征。 Langevin sampling:一种基于随机梯度下降的sampling方法。它通过将随机噪声添加到梯度中来生成新的样本。这种方法可以帮助模型更好地处理高度非线性的数据。 Metropolis-Hastings sampling:一种Markov Chain Monte Carlo(MCMC)方法,它可以生成一个序列来表示数据的分布。这种方法可以帮助模型更好地理解数据的复杂性和不确定性。 Hamiltonian Monte Carlo sampling:一种MCMC方法,它可以利用动态系统的特性来生成数据样本。这种方法可以帮助模型更好地理解数据中的隐含结构和特征。 Diffusion Process Model:DPM是基于扩散过程的理论原理,通过对数据样本中的噪声进行建模,可以帮助消除数据中的噪声和偏差,提高模型的准确性和泛化能力。 这些方法在Stable Diffusion的参数中都可以调整,其中Sampling step更会影响图片生成的运算时间及效果,原则上会根据采样方法不同而有所差异。 2.Dreambooth 原理 Google 在2022年提出的技术,可以保留你想想要的图片特征,基于 GAN 模型的核心思想,即通过将生成器和判别器部分相互对抗,从而提高生成器生成图像的质量和真实度。在Dreambooth中,生成器部分利用深度学习技术从文字描述中学习生成图像的能力,而判别器部分则利用深度学习技术评估图像的真实度,从而驱动生成器不断地优化生成图像的效果。 透过对Stable Diffusion的微调,让图片可以在保留特征的情况下生成更多样式,这也是近期很多艺术家反弹的艺术风格道德问题,如果你喜欢某个画师的风格,就能用这个技术将之模仿并创作。 如Civitai上的Checkpoint Model,就是Stable Diffusion用来生成图片的主模型,可以快速找到你想要的风格。 3.LoRA 原理 Low-rank adaptation of large language models,又称 LoRA,微软开发的局部调整模型,非常轻量,可以在Stable Diffusion主模型的基础上,增加局部特征。

JavaScript获取URL参数的几种方法

前言 在前端开发中,处理URL参数是一个常见的任务,尤其是在没有框架支持的情况下。虽然许多框架提供了方便的方法来获取URL参数,但有时我们需要依赖原生JavaScript来完成这个任务。这也是面试中经常出现的问题之一。今天让我们一起来探讨如何利用原生JavaScript来获取URL参数值。 获取方法总结 原生JS获取URL链接参数的方法有好几种,我们一起来学习一下常见的几种。 1.使用正则表达式 2.利用a标签内置方法 3.利用split分割方法 4.使用URLSearchParams方法 具体实现 方法一: 正则表达式 function queryURLParams(url, paramName) { // 正则表达式模式,用于匹配URL中的参数部分。正则表达式的含义是匹配不包含 ?、&、= 的字符作为参数名,之后是等号和不包含 & 的字符作为参数值 let pattern = /([^?&=]+)=([^&]+)/g; let params = {}; // match用于存储正则匹配的结果 let match; // while 循环和正则表达式 exec 方法来迭代匹配URL中的参数 while ((match = pattern.exec(url)) !== null) { // 在字符串url中循环匹配pattern,并对每个匹配项进行解码操作,将解码后的键和值分别存储在key和value变量中 let key = decodeURIComponent(match[1]); let value = decodeURIComponent(match[2]); if (params[key]) { if (Array.isArray(params[key])) { params[key].push(value); } else { params[key] = [params[key], value]; } } else { // 参数名在 params 对象中不存在,将该参数名和对应的值添加到 params 对象中 params[key] = value; } } if (!

AI绘画Midjourney从入门到实战应用

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了AI绘画Midjourney从入门到实战应用,希望能学习AIGC的同学们有所帮助。 文章目录 1. 前言2. 《Midjourney从入门到实战应用》3. 购买链接 1. 前言 去年 AI 爆火的时候,学研君也赶时髦用上了 Midjourney。平时用它生成图片,感觉生成的图片好看,比上网四处找图更省时省事,更合心意,还不用担心版权问题。 给大家看一下我随便用 Midjourney 画的神兽图。 有一次,朋友问我:“你会用 AI 画图,能帮我画一个 Logo 吗?” 我一听,Logo 这么个小东西还不简单,就爽快地答应了,还说,这点小事儿,不在话下。 结果改了 50 多次,朋友都不满意,只好去找专业设计师了。 你以为这就完了?还有后续。 朋友第二天又来找我,上来就说:“看来不是 Midjourney 不行,是你不行啊”。 等等?这是几个意思?什么叫我不行? 朋友又说,“我找了个设计师朋友,人家十分钟就给我出了好几种方案,我提了意见,又用了十来分钟就给我改好了。人家说,你是没掌握 Midjourney 的用法。” 学研君这才知道自己以前都是小打小闹,让 Midjourney 随便画个漂亮的图片简单,但让它指哪打哪,没有绘画基础的我,想要画出符合特定要求的图片就很难。 后来,学研君上网找了一些资料,零零散散地看了不少文章和视频,但还是不能让 Midjourney 对我言听计从、如臂使指,难道我的 Midjourney 之路,真的如同它的名字一样,要半途而废了吗? 2. 《Midjourney从入门到实战应用》 直到最近,我有幸读了这本清华大学出版社全彩印制的《Midjourney从入门到实战应用》,这种状况终于有改观,从此以后,Midjourney 对我来说就是一路坦途了。 这本书的作者万晨曦老师是知名的 Adobe 讲师,在腾讯课堂上有超过 140 万+ 的学员,那可是真正的大 V,学研君什么时候才能有这么多粉丝啊。 有兴趣的同学,可以看一下万老师对这本书的介绍。 刚拿到这本书时,我发现它虽然挺厚,但却只有 5 章。我还奇怪 300 多页的书怎么只有这么几章? 看了以后才发现,原来万老师是想把每一块内容都写扎实,有点像学研君写文章,喜欢把知识点讲得通透。 这本书不仅详细介绍了 Midjourney 的注册、登录、指令、参数等基础知识,还深度解析了大量的艺术风格和提示语。 在本书的第 3 章中详细地介绍了布局设计、艺术家风格、绘制技法、镜头、灯光、纹理、时代、构图及人物等 12 类常用描述语。 与单纯罗列描述语的书不同的是,万老师用了很大的篇幅介绍了它们的使用场景、细分类别、应用技巧,并提供了多种风格、样式生成的图像案例。

案例分享:Qt modbusTcp调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.0.0)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/140313789 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) 合作案例专栏:案例分享(体验Demo可下载,只定制) 前言 西门子PLC、台达PLC、法兰克机床等等多年以前玩得比较多,有tcp/ip通讯也有modbus通讯,modbus又分为网络,485,232等。 医疗项目,焊接机器人项目,工控机床项目,数控项目,物联网项目用的挺多的,将关键的通信技术抽离出来,单独弄成工具。 最近调绞车,遇到了modbus tcp,正好有设备,于是额外花时间单独抽出来作为调试工具。 相关博客 《案例分享:Qt modbus485调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.3.0)》 《案例分享:Qt modbusTcp调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.0.0)》 《台达PLC开发笔记(一):台达PLC连接介绍,分别使用485、网口与台达PLC建立连接》 《台达PLC开发笔记(二):台达PLC设置主机通讯参数为RTU并成功通讯》 《西门子PLC开发笔记(一):PLC介绍,西门子S1200系列接线、编程、下载和仿真》 《LibModbus库开发笔记(一):libmodbus库介绍、编译和基础工程模板》 《案例分享:Qt西门子PLC调试模拟工具(包含PLC上位机通讯,PLC服务器,读写Byte、Int、DInt、Real)(持续更新,当前v1.6.0)》 需求 与各种其他行业仪器通讯软件开发的通讯核心模块,modbus功能模块,制作成调试工具,可满足一般情况的调试。 1.支持通过TCP端口进行通讯;(区别于modbus rtu 232/485) 2.支持设置打开从机的ip地址、端口和超时参数; 3.支持写入bool,int,dInt,real,dReal参数类型数据; 4.支持读取bool,int,dInt,real,dReal参数类型数据; 5.增加容错处理,连接后modbusTcp可能存在读写失败,增加容错处理机制,使其每次读写都能成功。 Demo 工具下载地址 CSDN(0积分下载):https://download.csdn.net/download/qq21497936/89529006 QQ群:1047134658(点击“文件”搜索“modbus ”,群内与博文同步更新) 相关头文件源码 PlcModbusMasterWidget.h #ifndef MODBUSTCPWIDGET_H #define MODBUSTCPWIDGET_H /************************************************************\ * 控件名称: modbus Master管理应用 * 控件描述: * 1.使用modbusTcp打开 * 2.PLC读取bool、int、dInt、real(float)、dReal(double) * 3.PLC写入bool、int、dInt、real(float)、dReal(double) * 其他说明: * 在ModbusTCP协议中,从机地址的概念与ModbusRTU有所不同。 * 在ModbusTCP中,通常不直接通过从机地址来区分不同的设备, * 而是通过IP地址和端口号来识别和连接特定的Modbus服务器(从机)。 * 著作权信息 * 作者:长沙红胖子Qt * 公司:长沙创微智科信息技术有限公司 * 网址:www.chuangweizhike.com * 博客导航:https://hpzwl.

android 消除内部保存的数据

在Android中,有多种方式可以消除应用内部保存的数据。这些数据可能存储在SharedPreferences、SQLite数据库、文件(包括缓存文件)或Content Providers中。以下是几种常见的方法来消除这些数据: SharedPreferences: 要删除SharedPreferences中的所有数据,你可以简单地调用SharedPreferences.Editor.clear()方法,然后提交更改。 SharedPreferences sharedPreferences = getSharedPreferences("your_prefs_name", MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.clear(); editor.apply(); // 或者使用 editor.commit(); SQLite数据库: 如果你使用的是SQLite数据库来存储数据,你需要编写SQL语句来删除表中的数据,或者简单地删除整个数据库文件。删除表中的数据通常涉及执行DELETE SQL语句。如果你想删除整个数据库文件,可以使用Context.deleteDatabase(String name)方法。 文件: 应用可能会在内部存储或外部存储中创建文件来保存数据。要删除这些文件,你可以使用File.delete()方法。 SharedPreferences sharedPreferences = getSharedPreferences("your_prefs_name", MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.clear(); editor.apply(); // 或者使用 editor.commit(); 对于缓存文件,你可以使用Context.deleteCacheDir()来删除整个缓存目录。 Content Providers: 如果你使用Content Providers来存储数据,你需要根据该Provider的实现来删除数据。这通常涉及执行特定的SQL语句或调用Provider定义的API。 卸载应用: 最简单但最极端的方法是卸载应用,这将删除应用的所有数据,包括其内部存储和外部存储上的文件。这可以通过系统设置或PackageManager.uninstallPackage(String packageName)(但请注意,此方法通常仅适用于系统应用或具有特定权限的应用)来完成。 应用内清除数据: 你还可以在应用中添加一个选项,允许用户手动清除所有或部分数据。这可以通过提供UI元素(如按钮)来实现,当用户点击该元素时,你的应用会执行上述操作之一或组合来清除数据。 使用Android Studio的ADB工具: 在开发过程中,你可以使用Android Studio的ADB工具来清除应用的数据。这可以通过选择“Device File Explorer”或“App Inspection”工具,然后找到你的应用的数据目录并手动删除文件来完成。或者,你可以使用ADB命令(如adb shell pm clear <package_name>)来清除应用的数据。 使用“清除数据”按钮(在设置中): 用户还可以从Android设备的“设置”菜单中找到你的应用,并选择“清除数据”选项来删除应用的所有数据。这不需要任何编程工作,但它是用户可用的一个选项。

android 图片轮播

在Android中,实现图片轮播(也称为图片滑动或图片轮转)通常涉及到使用ViewPager、RecyclerView配合PagerAdapter、RecyclerView.Adapter或者第三方库如Glide、Picasso来处理图片加载,以及一个定时器(如Handler、Timer、RxJava的interval操作符等)来控制图片切换。 以下是使用ViewPager和Handler实现简单图片轮播的基本步骤: 布局文件(XML): 在布局文件中添加一个ViewPager控件。 <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> 图片资源: 准备一组图片资源,可以是本地的drawable资源,也可以是网络图片URL。 PagerAdapter: 实现一个继承自PagerAdapter的类,用于管理ViewPager中的页面(即图片)。在这个类中,你需要重写getCount(), instantiateItem(), destroyItem(), 和 isViewFromObject() 方法。 设置ViewPager: 在你的Activity或Fragment中,获取ViewPager实例,并设置你的PagerAdapter。 ViewPager viewPager = findViewById(R.id.view_pager); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); 实现图片轮播: 使用Handler和Runnable来创建一个定时器,每隔一段时间就切换到下一张图片。这通常通过调用ViewPager的setCurrentItem()方法来实现。 final Handler handler = new Handler(); final Runnable update = new Runnable() { public void run() { if (currentPage == imageUrls.size()) { currentPage = 0; } viewPager.setCurrentItem(currentPage++, true); handler.postDelayed(this, DELAY_MILLIS); // DELAY_MILLIS 是你想要的图片切换间隔时间 } }; // 开始轮播 handler.

为何Expo成为React Native官方推荐框架?

在React Conf上,我们更新了关于构建React Native应用的最佳工具指南:一个React Native框架——一个工具箱,包含所有必要的API,让你可以构建生产就绪的应用。 现在,使用React Native框架(如Expo)是创建新应用的推荐方法。 在这篇博文中,我们将详细介绍它们是什么,以及它们对于开始新项目的React Native开发者来说意味着什么。 什么是React Native框架? 如果你一直在构建生产应用,你可能知道迟早需要解决一系列常见问题。 无论是在Web还是原生平台上构建任何应用,你可能都希望用户能够在不同的屏幕之间导航、获取数据并存储用户状态。但原生应用还有更多需要处理的问题:你需要工具来在React Native版本之间升级你的原生代码,管理所有依赖项的兼容版本,以及处理原生构建工具。 没有合适的工具,把一个应用从想法变为产品就像是一场孤独的旅行。 我们希望你能专注于为你的用户编写漂亮的应用和功能,而不是一遍又一遍地解决那些常见问题。 这就是我们认为通过提供一个包含所有必要工具的工具箱来体验React Native的最佳方式,这些工具可以让你构建生产就绪的应用。 我们发现,你要么使用一个框架,要么自己构建一个框架。 构建自己的框架,为自己打造路由、导航、部署等解决方案,这并没有错。像Meta和微软这样的大公司会在内部构建自己的框架,以便深入集成到他们的遗留应用中。但我们相信,大多数人最好还是使用现有的框架。 如果你一直在Web上使用React,你可能对生产级React框架的类似概念比较熟悉。 截至今天,React Native唯一推荐的社区框架是Expo。自React Native早期开始,Expo团队就一直在投资React Native生态系统,而今天,我们认为Expo提供的开发者体验是同类中最优的。 注意:Expo框架本身是免费且开源的,而Expo Application Services(EAS)是一个可选的付费服务。 如果你最近没有使用过Expo,请务必不要错过Expo的Kadi在这次演讲中展示的2024年你可以用Expo做什么。 我们还更新了网站上的“入门”页面,以反映这一推荐。 框架将如何影响你? 如果你已经在使用像Expo这样的推荐框架,那么你已经准备好了! 如果你想将现有应用迁移到Expo,你可以在Expo的官方网站上找到迁移指南。Expo提供了许多好处,比如更容易地升级React Native版本、更好的开发者体验等等。 但是,如果你不能或不想迁移到Expo,那也没关系。不使用官方框架的React Native将继续得到支持。你一直在使用的工具,如React Native Community CLI、模板和升级助手,将继续正常工作。 react-native init命令已经从核心中移出,现在可以通过以下方式访问: npx @react-native-community/cli@latest init 在GitHub上的位置是react-native-community/cli。 如果你是React Native库开发者,我们收集了一份关于应使用哪些API的建议列表。更多详情请参阅RFC(请求评论稿)。 进一步阅读 如果你对这项决策背后的原因感兴趣,我们邀请你阅读RFC0759:《React Native框架》。这份RFC是React Native生态系统中的不同合作伙伴和参与者经过数月努力、无数讨论和头脑风暴的结果。 虽然目前Expo是唯一推荐的框架,但RFC还包含了如何成为推荐框架的指南,因为我们希望在这个领域看到更多的竞争和创新。 此外,你应该观看在App.js 2024上进行的useFrameworks()演讲,我们在其中简短地介绍了这份RFC和必要的变更。 我们相信,通过明确React Native核心和框架各自的职责,我们可以促进一个更健康的生态系统,并推动React Native的增长和创新。

哈喽GPT-4o,程序员如何通过GPT-4o提高办公效率

目录 一、编写工作汇报Prompt:我是一名Java开发工程师,请写一份工作总结,工作内容是一个SpringBoot+Vue实现的图书管理系统,按下面的结构来撰写:1. 工作背景;2. 工作内容;3. 工作建议;4. 总结感言。 二、编写策划文案Prompt:ChatGPT4o时代已经来临,请策划三个与ChatGPT4o如何提高办公工作效率的策划文案,要求如下:1. 从事Java开发工作。2. 发布平台为公众号和CSDN。3. 活动整体成本不超过1万元 三、编写会议纪要四、根据纪要展开描述Prompt:写一篇围绕“会议纪要”内容的文章,1000字左右。 五、编写电子邮件Prompt:我叫哪吒,在腾讯工作,请写一封邮件,提醒领导张三尽快完成出差备用金审批,要求按照商务中文标准,300字左右。 六、制作精美PPT(ChatGPT4o还不能生成PPT,这点很遗憾)Prompt:请设想您是一位熟练掌握各种演讲技能的演讲大师。当前需要为大学生们讲解ChatGPT4o的使用方法与技巧。请撰写一篇介绍ChatGPT4o的使用方法与技巧的文章,篇幅不超过800字,并以Markdown格式输出。 七、生成表格Prompt:请帮我制定一个为期15天的Java多线程学习计划,并以表格的形式输出Prompt:请增加一列,记录每天的学习进度 八、提供Excel函数Prompt:识别图中文字,将其制作成表格,用什么公司可以计算大众的总销量 九、创建Excel宏Prompt:请编写一段VBA代码,将不同品牌的汽车销量放到不同的sheet中。 十、创建Word宏十一、创建思维导图Prompt:请用Markdown语法生成一个学习Java的思维导图,包括Java基础、JavaWeb、MySQL、Spring、SpringMVC、MyBatis、SpringBoot 十二、解决办公软件常见问题Prompt:请找出汽车销量表格中的纯油车,并将其单独输出生成表格Prompt:将纯油车Excel转为Word,并输出 嗨,你好呀,我是哪吒。 ChatGPT 能够在多个方面协助用户提升办公效率,实现智能化和个性化的办公体验。 (1)协助用户撰写工作报告、总结、策划方案、会议纪要以及电子邮件等文档,并提出修改建议,使内容更清晰、简洁且专业。 (2)为用户在使用办公软件时遇到的问题提供操作指南和技巧,帮助他们更有效地使用各种办公软件。 (3)了解用户对数据的需求,协助生成图表、报告和数据分析结果,帮助用户快速掌握数据背后的信息和趋势。 (4)依据用户的需求生成各种文档、报告和演示文稿模板,帮助用户迅速启动新项目。 (5)作为个性化助手,根据用户的习惯和需求提供定制化办公软件的使用建议和优化方案。在 ChatGPT 的协助下,办公效率将大幅提升。 👉 GPT功能: GPT-4o知识问答:支持1000+token上下文记忆功能最强代码大模型Code Copilot:代码自动补全、代码优化建议、代码重构等DALL-E AI绘画:AI绘画 + 剪辑 = 自媒体新时代私信哪吒,直接使用GPT-4o 一、编写工作汇报 工作汇报或总结是一种常见的交流和反馈方式,它能够展示个人的工作业绩和价值,提炼经验教训,并规划未来目标。 然而,撰写工作汇报是一项耗时耗力的任务,许多人会感到无从下手。 要写好工作汇报,需要掌握一定的方法和技巧,首先要明确汇报的目的和受众,然后梳理工作内容和成果,最后构建汇报的框架和结构。 如果借助 ChatGPT 撰写工作汇报,需尽可能提供更多有关汇报的信息,如汇报主题、受众、内容、成果以及框架,这样生成的汇报不仅效率更高,质量也更好。 Prompt:我是一名Java开发工程师,请写一份工作总结,工作内容是一个SpringBoot+Vue实现的图书管理系统,按下面的结构来撰写:1. 工作背景;2. 工作内容;3. 工作建议;4. 总结感言。 从生成的工作总结来看,质量较高,重点突出,结构符合要求,内容充实,表达清晰且层次分明。 二、编写策划文案 为了确保工作或项目的顺利进行,通常需要根据具体情况提前制定策划方案。策划方案是针对某一行动而制定的具体实施细则、步骤和安排等。对于企业而言,策划一场富有创意且吸引人的营销活动,不仅可以有效提升品牌知名度,还能更好地服务客户,增加客户的黏性,并带来线索转换等。 Prompt:ChatGPT4o时代已经来临,请策划三个与ChatGPT4o如何提高办公工作效率的策划文案,要求如下:1. 从事Java开发工作。2. 发布平台为公众号和CSDN。3. 活动整体成本不超过1万元 Prompt:选择第二个方案,请给出一份详细的活动落地方案。 三、编写会议纪要 在各个职业领域,整理会议记录被视为一项重要的职业技能。尽管会议记录整理可能繁琐,但ChatGPT能轻松应对这一任务。只需将会议内容输入ChatGPT,并指定会议纪要的格式,即可生成符合要求的会议纪要。 除了直接使用ChatGPT生成会议纪要外,还可以使用微软推出的集成ChatGPT技术的高级Teams产品,自动生成会议记录,推送任务建议并创建会议模板,从而提升办公效率。 Prompt:根据提供的会议内容,整理成一份符合规范格式的会议纪要。 以下是整理后的会议内容:2024年7月5日下午3点,公司主要领导通过飞书召开了一次安全生产会议,参会人员包括项目经理、项目总工。会议重点讨论了7月2日发生的安全事故及其严重后果,强调了必须加强安全防范措施。部长级以上员工及现场运维人员必须参加此次会议,以加强项目的有效管理。副总在会议上做了重要报告,要求做好以下六个方面的工作: 进行全面的安全自查。及时整改发现的安全隐患。完善项目部的安全检查机制。严禁泄露项目相关资料,防止通过微信、网盘、CSDN博客等平台泄密。现场运维人员应以身作则,切实履行安全职责。部门领导要重点召开安全生产会议,确保教育和落实到每个人。 会议由总经理主持,董事长发表了重要讲话并布置了相关工作,强调“把安全生产作为企业的生命线来抓”、“企业的发展要立足于长远”,并指出“要让每个员工在公司找到归属感,公司将提供有利平台,帮助大家共同发展”。 四、根据纪要展开描述 Prompt:写一篇围绕“会议纪要”内容的文章,1000字左右。 五、编写电子邮件 电子邮件是最常用的沟通方式之一。过去这些邮件都是人工撰写,而现在可以使用ChatGPT自动生成各类电子邮件内容。只需向ChatGPT提供具体需求,就能轻松完成各种类型的电子邮件撰写,包括个人信件、公务邮件、商务邮件以及营销邮件。 Prompt:我叫哪吒,在腾讯工作,请写一封邮件,提醒领导张三尽快完成出差备用金审批,要求按照商务中文标准,300字左右。 六、制作精美PPT(ChatGPT4o还不能生成PPT,这点很遗憾) ChatGPT生成文案、Mindshow生成PPT

2024程序员行业风口和面试宝典

国际研究机构Gartner会在每年10月份左右发布下一年度的战略发展趋势预测,并在次年3月左右发布和网络安全相关的趋势预测。绿盟科技通过将近3年的趋势预测进行分组对比分析后发现,除了众人皆知的AI技术应用外,数据模块化、身份优先安全、行业云平台也可能会成为未来网络安全领域的主流应用趋势。 战略性技术趋势分析 2023年10月16日,Gartner在其官网发布了《Gartner Identifies the Top 10 Strategic Technology Trends for 2024》主题文章,介绍了相关分析师在奥兰多IT Symposium/Xpo 2023峰会上发布的2024年十大战略技术趋势。我们汇总了最近3年的技术趋势并进行了整理,详见下表1。 【表1:Top战略技术趋势】 通过把近3年的趋势预测做个分组归类可以发现:三年整体发展趋势类似,其中的共性趋势很多;同时,三年发展上趋势变化缓慢,逐渐递进,以下将逐一进行描述。 1.与AI相关趋势关键词**:** 生成式AI:Autonomic Systems自治系统技术、AI Engineering、人工智能工程Hyper automation、超自动化Decision Intelligence决策智能;AI Trust:Risk and Security Management人工智能信任、风险和安全管理、Adaptive Al自适应Al、AI-Augmented Development人工智能增强开发、Intelligent Applications智能应用程序、Democratized Generative Al民主化的生成式Al、Digital lmmune System数字免疫系统。 Gartner在2021年发布的年度技术趋势预测中就提及生成式AI,只不过那个时候还没有ChatGPT,ChatGPT从2023年年初开始爆发,AI相关话题成为讨论最多的一年,各大媒体机构高校研究院等密集发表相关洞察成果;而事物都具有两面性,新的技术发展带来便利的同时必然随之带来风险,AI的发展涉及的安全问题也成了新的趋势。 2.与分布式、模块化、可组装相关趋势关键词**:** Distributed Enterprise分布式企业、Composable Applications可组合应用程序、Cybersecurity Mesh网络安全网格、Data Fabric数据结构、Digital lmmune System数字免疫系统。 随着远程和混合工作模式的兴起,传统的以办公室为中心的组织正在演变为由地理位置分散的员工组成的分布式企业。在不断变化的业务环境中,对业务适应性的需求将组织引导到支持快速、安全和高效的应用程序更改的技术架构。可组合应用程序架构增强了这种适应性,而那些采用可组合方法的应用程序在新功能实现速度上将比竞争对手快 80%。 Gartner对网络安全网格架构的描述是:这是一个由工具和控制组成的协作生态系统,用于保护现代分布式企业。它建立在集成可组合的分布式安全工具的策略之上,通过集中数据和控制平面来实现工具之间更有效的协作。结果包括增强的检测功能、更高效的响应、一致的策略、态势和行动手册管理,以及更具适应性和精细的访问控制,所有这些都可以提高安全性。因此,在网络安全网格架构中,最小单位已经从传统意义上企业内外环境以防火墙为边界,转变为以每个数据集作为最小单位。 数据结构则是为解决数据的量或者维度的增加,及现有数据孤岛的问题,通过一个跨平台,将已有的数据弹性集成,以满足不同的业务需求。这种强调灵活性、可扩展性。同时,也能减缓因为人才短缺导致的业务效率降低的问题。 数字免疫系统结合了可观察性、AI增强测试、混沌工程、自修复、站点可靠性工程和软件供应链安全等实践和技术,以提高产品、服务和系统的弹性,同时降低业务风险。强大的数字免疫系统可以让应用程序更富弹性,能够快速从故障中恢复,从而保护应用和服务免受异常影响,例如软件故障或安全问题等。在关键应用和服务遭受严重损害或完全停止工作时,数字免疫系统降低业务连续性风险。企业在确保弹性运营环境、加速数字交付和可靠的用户体验方面面临前所未有的挑战,他们希望能够快速响应市场变化和迅速创新。用户所期望的不仅仅是健全的功能,他们更想要的是高性能、交易和数据的安全以及令人满意的交互。那么,相当于让产品带有原生的安全性、适应性、自我诊断修复能力。特别是在业务中断风险情况下,有了新的缓和能力。 3.与平台工程相关趋势关键词**:**平台工程Platform Engineering 互联网的时代,使得软件开发、软件工程变得更加普及,涉及敏捷迭代、DevOps等新的开发交付模式也有着越来越多的接受度。Gartner对于平台工程的描述是:这是一门构建和运营自助服务内部开发平台的学科。每个平台都是一个层,由专门的产品团队创建和维护,旨在通过与工具和流程交互来支持其用户的需求。平台工程的目标是优化生产力、用户体验并加速业务价值的交付。基本上,产品开发人员、测试人员、运维人员完全在一个大平台上实现了协作,简化了因为各自工具独立而导致的信息、工作流、协作的壁垒,大大提高了交付的频率和效率。 4.与行业云平台相关趋势关键词**:**Cloud-Native Platforms云原生平台、Industry Cloud Platforms行业云平台 过去理解的行业云平台大多指的是SaaS或者PaaS单一服务的行业属性,而Gartner所描述的行业云平台是指将底层 SaaS、PaaS 和 IaaS 服务组合到具有可组合功能的完整产品中,实现与行业相关的业务成果,强调了3个层次的融合。绿盟科技认为,这个属性特别适用于我国企业的云计算应用状态并且会逐渐壮大。因为在国内,由于法律体系的不同、大家对数据安全的关注以及公有云服务商并行竞争的情况下,健康云、金融云、政务云等具有强行业属性与特色的云共同发展。而这些云建设的背景大多与Gartner描述的3个层次云应用融合具有很好的契合度。 一个趋势的诞生到爆发变热在Hype Cycle中大约需要3年的时间,上表也能看出来,一个趋势的持续火爆是会连续出现的。而以当前来看我们好像在走2022年的趋势。那么,我们通过推理也可以自行预测出2024年什么技术可能会是热点。 网络安全趋势分析 2023年3月份,Gartner在官网发布Top Cybersecurity Trends for 2023推文,我们用同样的方法把Gartner最近3年针对网络安全方面的趋势汇总归类下,详见表2: 【表2:网络安全趋势预测】 通过将与网络安全趋势相关的关键词分组归类并分析,有共性趋势的关键词可以分为3组。其中与分布式、模块化、可组装相关趋势关键词已经在上文战略技术趋势中有提及,不再赘述。另外两组是:

IOS热门面试题二

请解释iOS中的Core Animation是什么?它的主要特点有哪些? iOS中的Core Animation,中文译为核心动画,是苹果公司提供的一组非常强大的动画处理API。这个框架允许开发者创建复杂且平滑的动画效果,而无需深入底层的图形渲染细节。以下是Core Animation的详细解释及其主要特点: Core Animation的解释 Core Animation位于AppKit和UIKit之下,紧密集成到Cocoa和Cocoa Touch的视图工作流中。它直接作用于CALayer上,而非UIView。每一个继承自UIView的子类都有一个layer属性(即CALayer),通过这个layer,开发者可以为相应的view添加动画效果。Core Animation利用图形硬件加速技术,将大部分实际的绘图任务交给图形处理器(GPU)来处理,从而实现了高效的动画渲染,同时不会阻塞主线程,保证了应用的流畅性。 Core Animation的主要特点 高效性: Core Animation将动画的渲染任务交给图形硬件处理,利用GPU的并行处理能力,显著提高了动画的渲染速度和帧率,使得动画效果更加平滑。动画的执行过程在后台进行,不会阻塞主线程,保证了应用的响应性和流畅性。 易用性: Core Animation提供了丰富的API和类,允许开发者通过简单的配置即可实现复杂的动画效果。它支持多种动画类型,包括基础动画(CABasicAnimation)、关键帧动画(CAKeyframeAnimation)、转场动画(CATransition)等,满足不同场景下的动画需求。 灵活性: Core Animation允许开发者对动画的各个方面进行精细控制,包括动画的持续时间、重复次数、时间函数、填充模式等。开发者还可以通过组合不同的动画效果,创建出更加复杂和吸引人的动画序列。 跨平台性: Core Animation不仅适用于iOS平台,还适用于Mac OS X平台,具有良好的跨平台性。这意味着开发者可以利用同一套动画技术,在不同平台上实现一致的视觉效果。 与UIKit的紧密集成: 尽管Core Animation直接作用于CALayer上,但它与UIKit框架紧密集成,使得开发者可以在UIViewController和UIView等UIKit组件上轻松实现动画效果。开发者可以通过UIView的layer属性访问其底层的CALayer对象,并为其添加Core Animation动画。 综上所述,Core Animation是iOS开发中不可或缺的一部分,它以其高效性、易用性、灵活性和跨平台性等特点,为开发者提供了强大的动画处理能力。通过利用Core Animation,开发者可以创建出更加生动、吸引人和富有交互性的应用界面。 autoreleasepool在iOS中的作用和使用场景是什么? autoreleasepool在iOS中扮演着重要的角色,主要用于管理内存,避免内存泄漏,并优化内存使用。以下是对autoreleasepool的作用和使用场景的详细解释: autoreleasepool的作用 自动释放对象:autoreleasepool能够自动管理加入到其中的对象,当autoreleasepool的作用域结束时,其中的对象会被自动释放。这有助于减少内存泄漏的风险,因为开发者无需手动释放每个对象。优化内存使用:在创建大量临时对象时,如果不及时释放这些对象,会导致内存占用过高,影响应用性能。autoreleasepool允许开发者在特定的代码块中创建对象,并在代码块结束时自动释放这些对象,从而优化内存使用。支持ARC和MRC:无论是自动引用计数(ARC)还是手动引用计数(MRC)环境下,autoreleasepool都能发挥作用。在ARC环境下,开发者通常不需要手动创建autoreleasepool,因为系统会在适当的时候自动创建和销毁它们。但在某些特定场景下,如手动创建线程或执行大量临时对象操作时,手动创建autoreleasepool仍然是有必要的。 autoreleasepool的使用场景 循环中创建大量临时对象:在循环中创建大量临时对象时,如果不及时释放这些对象,会导致内存占用迅速增加。此时,可以在循环体内部使用autoreleasepool来自动释放每次迭代中创建的临时对象。手动创建线程:在iOS中,系统只会在主线程中自动创建和销毁autoreleasepool。当开发者手动创建新的线程来执行任务时,需要在新线程的代码块中手动创建autoreleasepool,以确保线程中创建的临时对象能够被及时释放。基于命令行的程序:当开发者编写不基于UIKit框架的程序时(如基于AppKit或Cocoa框架的命令行工具),可能需要手动管理内存。在这种情况下,autoreleasepool是一个有用的工具,可以帮助开发者管理临时对象的生命周期。长期在后台运行的任务:对于需要在后台长时间运行的任务,合理使用autoreleasepool可以避免内存占用过高的问题。开发者可以根据任务的执行情况和内存使用情况,在适当的时候创建和销毁autoreleasepool。 autoreleasepool的实现原理 autoreleasepool的实现原理基于Objective-C的自动释放机制。在Objective-C中,每个线程都有一个自动释放池栈。当一个对象调用autorelease方法时,该对象会被添加到当前线程的自动释放池中。当自动释放池被销毁时(例如,当autoreleasepool代码块结束时),其中的所有对象都会收到release消息并被释放。 在ARC环境下,虽然系统会自动管理大部分对象的引用计数,但在某些特定场景下(如上述提到的循环、线程等),开发者仍然需要手动创建autoreleasepool来确保临时对象能够被及时释放。 综上所述,autoreleasepool是iOS开发中用于管理内存、避免内存泄漏并优化内存使用的重要工具。开发者应该根据具体的使用场景和需求来合理使用autoreleasepool。

基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui

背景和意义 随着互联网和数字媒体行业的快速发展,视频网站作为重要的内容传播平台之一,用户量和内容丰富度呈现爆发式增长。本研究旨在设计并实现一种基于Python的哔哩哔哩数据分析系统,采用Flask框架、MySQL数据库以及echarts数据可视化技术,并结合Layui前端框架,从海量的哔哩哔哩用户行为数据中提取有价值的信息,为平台运营、内容生产等决策提供科学依据和指导。 背景需求与挑战 数据爆炸式增长: 哔哩哔哩作为中国领先的弹幕视频网站,每天都会产生海量的用户行为数据,如视频观看记录、弹幕评论、点赞收藏等。如何从这些数据中准确、高效地获取有用信息,成为了哔哩哔哩运营团队亟待解决的问题。 决策科学化需求: 面对激烈的市场竞争和用户多元化需求,哔哩哔哩需要更加科学化地进行内容推荐、运营决策等工作。因此,构建一个高效的数据分析系统,能够帮助平台管理者深入了解用户喜好、内容热度等关键指标,为决策提供科学依据和参考。 技术挑战与应用需求: 在处理海量用户行为数据时,需要高效的数据存储和查询能力;同时,为了让数据分析结果更具说服力,需要直观、易懂的数据可视化展示。因此,如何整合Python技术栈中的Flask、MySQL、echarts和Layui等工具,构建出适用于哔哩哔哩特定场景的数据分析系统,具有重要的理论与应用意义。 系统设计与意义 本研究将基于以上需求和挑战,设计并实现一款完整的哔哩哔哩数据分析系统。系统将利用Flask框架构建稳健的后端服务,使用MySQL数据库存储海量的用户行为数据,并通过Python数据分析库进行数据挖掘和模式识别,最终借助echarts和Layui技术实现数据可视化和友好的前端界面。 意义与预期效果 通过本系统的构建与应用,预期能够实现以下目标与意义: 深度挖掘用户行为特征:通过数据分析系统,能够从用户行为数据中挖掘出用户偏好、热门内容等关键信息,为精准推荐、内容生产提供有力支持。 科学决策与优化运营:数据分析系统的应用将帮助哔哩哔哩进行科学决策,优化内容推荐、运营方案,提升用户满意度和平台价值。 技术应用与推广价值:系统的设计与实现过程将为Python技术栈在大数据分析与应用领域提供典型案例与经验总结,具有较强的技术应用推广价值。 综上所述,本研究旨在探索基于Python的哔哩哔哩数据分析系统设计与实现过程,以期为视频网站数据应用与决策提供新思路与方法,具有重要的理论与实际意义。 1.2 研究方向与现状 研究方向与现状:基于Python的哔哩哔哩数据分析系统设计实现过程 研究方向 基于Python的哔哩哔哩数据分析系统设计旨在利用数据科学和人工智能技术,对哔哩哔哩平台的用户行为数据进行深度挖掘和分析,以提升内容推荐精准度、用户体验和运营效率。关键技术包括使用Flask搭建后端服务、MySQL存储数据、echarts可视化展示,以及Layui构建友好的前端界面。该研究方向将探索如何结合Python技术栈和现代前端框架,实现数据驱动的哔哩哔哩内容优化和运营决策。 现状分析 数据驱动决策趋势: 当今互联网行业普遍采用数据驱动的方式进行决策和优化,视频网站也不例外。通过分析用户行为数据,能够更好地了解用户兴趣和行为习惯,从而提供个性化推荐和精细化运营。 Python在数据科学领域应用广泛: Python作为一种强大的编程语言,在数据科学领域有着广泛的应用。其丰富的数据处理库(如pandas、numpy)和机器学习库(如scikit-learn、tensorflow)使其成为处理大规模数据和实现智能算法的理想选择。 Flask和MySQL的稳定性与灵活性: Flask是一款轻量级的Python Web框架,适合快速开发并具有良好的扩展性;而MySQL作为流行的关系型数据库管理系统,具备稳定性和高效性,适合存储结构化数据。 echarts和Layui的前端展示优势: echarts是一款功能强大的JavaScript可视化库,支持多种图表类型的展示,可帮助用户直观地理解数据;Layui是一套简洁易用的前端UI框架,提供丰富的组件和样式,有助于构建美观、交互友好的Web界面。 发展趋势与挑战 个性化推荐与用户体验: 未来视频网站将更加注重个性化推荐和用户体验,数据分析系统的发展需要更加精准地把握用户需求,提供个性化、智能化的服务。 大数据处理与实时分析: 随着数据规模的不断增长,系统需要具备处理海量数据和实时分析的能力,以保证数据分析结果的及时性和准确性。 安全与隐私保护: 在数据分析过程中,隐私保护问题备受关注,系统需加强数据安全措施,确保用户数据得到充分保护。 跨学科融合与创新应用: 数据分析系统的设计与实现需要融合计算机科学、数据科学、人工智能等多个学科领域,创新应用不断涌现,对研究者和开发者提出更高要求。 综上所述,基于Python的哔哩哔哩数据分析系统设计是一个充满挑战但也充满机遇的研究方向,将促进视频网站内容优化和用户体验提升,为数字媒体行业的发展带来新的活力和机遇。 1.3 主要工作 在询问和查阅相关知识和研究后。作者开展了以下工作: (1)前期准备工作:对B站数据分析的需求调研和问题定义,明确了系统的功能和目标。在此基础上,制定了系统设计方案和技术选型,选择了Python作为主要开发语言,并确定使用layui作为前端框架、Flask作为后端框架、Echarts作为可视化工具,以及MySQL作为数据库。 (2)开发阶段:根据系统设计方案,按照模块划分的原则,进行了任务分配和工作安排。其中,实现数据采集与清洗模块,开发相关爬虫程序,通过B站的API和网页爬虫获取视频信息、用户评论和弹幕数据,并进行数据清洗和预处理。同时,参与系统的前端和后端开发工作,包括界面设计、数据处理、图表展示等模块的编码和集成。 (3)后期测试与优化:进行系统的功能测试和性能优化,检查系统的稳定性和可靠性,并进行了错误修复和改进。通过模拟用户访问和操作,验证系统的可用性和用户体验,并根据用户反馈进行相应的调整和改进。 2 相关技术研究 2.1.1 Flask框架技术 2.1.2 Request爬虫技术 2.1.3 MySQL技术 2.1.4 Lda主题分析建模 2.2 开发工具和开发环境 2.2.1 开发工具 基于Python的B站数据分析系统的设计与实现使用了多个开发工具,其中包括: Xbuild:作为前端开发工具,xbuild用于处理前端资源文件的构建、优化和部署,提高前端性能和用户体验。 MySQL:作为关系型数据库管理系统,MySQL用于存储和管理B站的关键数据,提供可靠的数据存储和高效的数据检索能力。 PyCharm:作为集成开发环境(IDE),PyCharm提供了丰富的代码编辑、调试和项目管理功能,帮助开发者高效地编写和调试Python代码。 2.2.2 开发环境 Python3.7以上、Windows11操作系统、MySQL数据库、Navicat数据库可视化工具、Xbuilds前端开发工具、Flask框架、Gensim库。

LLAma-Factory框架详细使用方法-0.8.3版本

一、安装 LLaMA Factory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git #拉取代码到本地 cd LLaMA-Factory #进入目录 conda create -n llamafactory python=3.11 #创建python环境 conda activate llamafactory #进入conda环境 pip install -e ".[torch,metrics]" #下载环境包 可选的额外依赖项:torch、torch-npu、metrics、deepspeed、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、galore、badam、qwen、modelscope、quality 因为我们后续单机多卡会用到deepspeed,所以我们可以提前下载 pip install deepspeed 当我们安装好环境后,可以看一下我们的llama-factory的版本,命令: llamafactory-cli env 二、LLaMA Board 他是一个可视化的web页面,可以手动去配置参数,可进行推理,微调,非常的方便,由gradio驱动。 启动命令: llamafactory-cli webui 我们也可以在启动之前限制显卡等等数量,启动命令如下: export CUDA_VISIBLE_DEVICES=1,2,3,4 llamafactory-cli webui 打开链接后的页面展示 每个参数的作用这里我就不具体解释了,网上一搜一大把,如果是新手,我建议去bilibili搜一个LLaMA Board参数讲解视频细心看完!!! 2.1 inference 下面我们来做一个简单的推理测试,我本次的测试模型是qwen2-7b-instruct 1.第一步先点击chat 2.第二部选择你的模型名称 3.粘贴模型路径 2.2 train 首先选择模型和数据还有微调方式 然后选择保存模型的位置 注:如果你的模型比较大,一台显卡无法加载你的模型,你可以选择使用deepspeed单机多卡,DeepSpeed stage选择zero3,如果你一张显卡能够微调,但你有多张显卡的话,这里建议你使用zero2,可以提高接近两倍的训练速度,也就是节省一半的时间 可以看到后台正在训练 前端也可以看到loss在下降,说明模型在正常训练 2.3 train_xinference 当我们训练好模型后,我们可以先测试一下模型的后坏,如果认为模型没问题的话我们再合并模型。 这是我们微调后模型的参数的保存位置 我们进入checkpoint-45,然后复制模型路径,粘贴到检查点路径位置上,然后点击加载模型 2.4 merge_model 我们只需要配置下面箭头指向的几个位置就可以了

vue实现预览编辑ppt、word、pdf、excel、等功能的解决方案(内网-前端)

在Vue中实现预览和编辑PPT、Word、PDF、Excel等文件的功能,尤其是在内网环境下且主要侧重于前端,我们需要明确的是,直接在前端编辑这些格式的文件(特别是PPT和Word)是非常复杂且通常不推荐的,因为这些格式涉及复杂的布局和格式设置。然而,我们可以实现预览功能,并可能通过一些间接方式支持简单的编辑(如表格数据的修改)。 下面我将分别给出预览PPT、Word、PDF、Excel文件的Vue组件示例代码,并简要说明如何可能实现简单的编辑功能。 1. PDF预览(使用vue-pdf) 首先,你需要安装vue-pdf: npm install vue-pdf 然后,在Vue组件中使用它: <template> <div> <pdf v-for="pageNumber in numPages" :key="pageNumber" :src="pdfSrc" :page="pageNumber" ></pdf> </div> </template> <script> // 导入vue-pdf和pdf.js的worker import pdf from 'vue-pdf' export default { components: { pdf }, data() { return { pdfSrc: 'path/to/your/file.pdf', // 替换为你的PDF文件路径或Blob对象 numPages: 1 } }, mounted() { this.loadPdf() }, methods: { loadPdf() { // 使用pdf.js的加载功能 const loadingTask = pdf.createLoadingTask(this.pdfSrc) loadingTask.promise.then(pdf => { this.numPages = pdf.numPages }).catch(err => { console.

Python爬虫获取王者荣耀英雄全皮肤图片,并下载到本地

文章目录 下载结果完整代码运行效果 下载结果 完整代码 import requests import json import os import time def get_hero_info(): # 英雄的全部信息的url hero_info = 'https://pvp.qq.com/web201605/js/herolist.json' # 获取英雄的全部信息 response = requests.get(hero_info) # 转为字典格式 hero_info_dict = json.loads(response.text) return hero_info_dict def downloads_img(): hero_info_dict = get_hero_info() for hero in hero_info_dict: # 获取单个英雄的名字 hero_name = hero['cname'] # 获取英雄的ID hero_num = hero['ename'] # 图片保存的根路径 hero_image_path = 'G:\\imgs\\' + hero_name # 创建文件夹 os.mkdir(hero_image_path) print(hero_name + '皮肤正在下载....:') # 判断英雄是否有皮肤 if 'skin_name' in hero: hero_skins = hero['skin_name'] # 判断英雄皮肤个数是否大于1 if '|' in hero_skins: # 将英雄的皮肤姓名以 | 分隔开 hero_skin_list = hero_skins.

【C++高阶】高效数据存储:理解并模拟实现红黑树Map与Set

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:了解 红黑树 🌹🌹期待您的关注 🌹🌹 ❀模拟实现Map与Set 📒1. 改造红黑树📜2. 红黑树的迭代器🌞迭代器基本设计🌙begin()与end()⭐operator++()与operator--() 📚3. Set的模拟实现🧩Set的基本设计 📝4. Map的模拟实现🧩Map的基本设计 📖5. 总结 前言: 在编程的浩瀚宇宙中,数据结构作为构建程序的基石,扮演着至关重要的角色。它们不仅定义了数据的存储方式,还极大地影响着程序的性能与效率。在众多经典数据结构中,Map(映射)和Set(集合)以其独特的性质和广泛的应用场景,成为了程序员们手中不可或缺的工具。Map允许我们根据键(Key)快速检索值(Value),而Set则提供了一种不包含重复元素的数据集合 深入理解并熟练掌握这些高级数据结构,并非一蹴而就。为了更加深刻地认识Map与Set的工作原理,以及它们背后隐藏的算法智慧,一个行之有效的方法便是亲手模拟实现它们。这一过程,不仅能够帮助我们加深对数据结构的理解,还能在实践中锻炼编程能力和问题解决能力 本文旨在为读者提供一个全面而深入的视角,通过逐步解析红黑树的基本原理、详细阐述模拟实现的过程,并辅以丰富的代码示例,帮助读者掌握红黑树Map与Set的构建与使用。我们将从最基本的二叉搜索树出发,逐步引入红黑树的特性和规则 让我们一起踏上学习的旅程,探索它带来的无尽可能! 📒1. 改造红黑树 改造红黑树以适配map和set容器,主要涉及到如何根据这两种容器的特性来设计和实现红黑树节点的存储以及相应的操作。map和set的主要区别在于它们存储的元素类型:map存储键值对(key-value pairs),而set仅存储唯一的键值(通常是键本身作为值)。尽管如此,它们在底层数据结构(如红黑树)的实现上有很多相似之处 改造内容: K:key的类型T:如果是map,则为pair<K, V>; 如果是set,则为KKeyOfT:通过T来获取key的一个仿函数类 // Map 与 Set // set -> RBTree<K, K, SetKeyOfT> _t; // map -> RBTree<K, pair<const K, V, MapKeyOfT>> _t; 红黑树的节点设计: enum Color { RED, BLACK }; template<class T> struct RBTreeNode { RBTreeNode<T>* _left; RBTreeNode<T>* _right; RBTreeNode<T>* _parent; // pair<K, V> _kv; // 上节内容使用的这种方式 T _data; Color _col; RBTreeNode(const T& data) :_left(nullptr) , _right(nullptr) , _parent(nullptr) , _data(data) , _col(RED) {} }; 红黑树类的实现参考上一篇文章:红黑树类的实现

Mac电脑利用 IDEA自带 Maven配置环境变量

平常也是用 IDEA,有些配置环境变量总要我安装Maven,但是 IDEA 自己已经有了 Maven,但是没有环境变量,能否配置呢?答案是 ok 的。 目录 为什么需要配置环境变量常规配置Maven环境变量下载和安装Maven配置MAVEN_HOME和更新PATH环境变量 验证配置 使用IDEA 中自带的 Maven1. 找到IDEA路径方法一:通过Finder查找方法二:通过终端查找方法三:通过系统信息查找方法四:通过IntelliJ IDEA自身查找 2. Contents/plugins/maven/lib/maven3路径 总结 在使用Maven时,配置环境变量是非常重要的步骤,尤其是当你需要在命令行中运行Maven命令时。下面是详细的步骤,解释为什么需要配置环境变量以及如何进行配置。 为什么需要配置环境变量 配置MAVEN_HOME和更新PATH环境变量是为了让系统知道Maven的安装位置,并能在任意路径下通过命令行直接调用mvn命令。 没有配置环境变量,你每次都需要手动导航到Maven的bin目录才能运行Maven命令,这非常不方便。 常规配置Maven环境变量 下载和安装Maven 下载Maven: 访问 Maven官网 并下载适合你操作系统的Maven二进制文件。 安装Maven: 解压下载的文件到你想要安装Maven的位置,比如 C:\Maven 或 /usr/local/maven。 配置MAVEN_HOME和更新PATH环境变量 Windows系统: 右键点击“此电脑”或“计算机”,选择“属性”。点击“高级系统设置”,然后点击“环境变量”按钮。在“系统变量”部分,点击“新建”,然后输入: 变量名:MAVEN_HOME变量值:Maven的安装路径,例如 C:\Maven 找到系统变量中的 Path,点击“编辑”,然后添加 ;%MAVEN_HOME%\bin 到变量值的末尾。点击“确定”保存所有设置。 macOS/Linux系统: 打开终端并编辑你的shell配置文件(例如 ~/.bashrc、~/.bash_profile 或 ~/.zshrc),在文件末尾添加以下内容:export MAVEN_HOME=/path/to/your/maven export PATH=$MAVEN_HOME/bin:$PATH 保存文件并运行 source ~/.bashrc 或 source ~/.zshrc 以使更改生效。 验证配置 打开一个新的命令行窗口。输入 mvn -v 并回车,查看Maven版本。如果配置正确,你会看到Maven的版本信息和MAVEN_HOME路径。 使用IDEA 中自带的 Maven 1. 找到IDEA路径 在macOS中查找IntelliJ IDEA的安装路径,可以通过以下几种方法进行操作:

Blackbox AI : 全新的人工智能编码助手 您的高效AI开发全能助手

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 提起AI 智能编码助手,相信到了如今大家都不陌生。其对我们开发的代码时的效率有显著的提升,可以说是开发者的编程利器了,但大家脑海中最先想的是哪家产品呢?而今天给大家介绍的是 Blackbox AI 全新的人工智能编码助手。 Blackbox AI 自从发布以来就强势冲上了 Olivia Moore AI生产力代表的榜单,发展势头可谓是非常的猛啊. 既然那么多人选择 Blackbox AI 那它肯定有自己的独到之处我们今天就来看下 Blackbox AI 的强大吧! 文章目录 引入一、Blackbox AI 产品介绍1.1 Blackbox AI1.2 Blackbox AI 使用速览1.3 Blackbox AI 支持的语言1.4 Blackbox AI : VScode 插件安装演示 二 、Blackbox AI 实战演示2.1 根据图片翻译成代码(代码截图或者网页设计图)2.2 问题补充代码,修正代码2.3 在线运行代码(实时预览)2.4 优秀的代码注释功能2.5 代码翻译转换功能2.5 PlayGround(实操演练) 三、Explore(探讨)&Create Agent(代理功能)3.1 Explore(探讨)终端功能讨论发现功能 3.2 代理(创建独特的智能助手) 总结 一、Blackbox AI 产品介绍 1.1 Blackbox AI Blackbox AI 它同样是一个语言模型,他的交互界面与我们常用的ChatGPT类似,但不同的是,他在代码/编程方面有着特殊训练和改进。这让它在AI 代码编写和辅助开发的效率来说远远超越其他大模型,再AI 生产力上位列前茅。

今年嵌入式行情怎么样?

今年嵌入式系统市场总体来说表现不错。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学,敲个22就可以免费获得。 嵌入式系统在各种领域的应用持续增长,特别是在物联网(IoT)、智能家居、汽车电子、工业自动化和医疗设备等领域。这些行业的发展推动了对嵌入式系统和解决方案的需求增加。具体来说,随着物联网设备数量的增加,对低功耗、小型化和高效能的嵌入式系统的需求也在增加。智能家居和智能城市的发展也在推动嵌入式系统的应用扩展。同时,汽车电子领域的技术进步,尤其是自动驾驶技术的发展,对嵌入式系统提出了更高的要求,促进了该领域市场的增长。 总体而言,嵌入式系统行业在技术创新和市场需求的推动下,今年的表现是积极的,未来也有望继续保持稳健增长的态势。