1.Seed Everything - 可复现的源码 PyTorch(一)
2.如何下载无水印的必应壁纸?
3.BKM • 57期 — 分享常用的办公学习小工具(六)
4.图吧工具箱2024.07正式版下载
5.2022初学者10个必备程序 “工具箱“
6.有哪些优秀的 Windows 小工具,类似 everything?
Seed Everything - 可复现的源码 PyTorch(一)
为了保证实验的可复现性,许多机器学习的源码代码都会有一个方法叫seed everything,这个方法尝试固定随机种子以让一些随机的源码过程在每一次的运行中产生相同的结果。
什么是源码随机种子?随机数,分为真随机数和伪随机数,源码慕课网程序源码真随机数需要自然界中真实的源码随机物理现象才能产生,而对于计算机来说生成这种随机数是源码很难办到的。而伪随机数是源码通过一个初始化的值,来计算来产生一个随机序列,源码如果初始值是源码不变的,那么多次从该种子产生的源码随机序列也是相同的。这个初始值一般就称为种子。源码
Linux系统中的源码随机数,在Ubuntu系统中,源码有一个专门管理随机种子的服务systemd-random-seed.service,该服务负责在计算机启动的时候,从硬盘上加载一个随机种子文件到内核中,以作为随机初始化值在整个系统运行的过程中提供服务。Linux会通过许多硬件信息来获得这个初始化值。可以通过/dev/urandom文件来产生随机字节,然后使用od命令(该命令可将字节转换成希望的格式并打印)来获得随机数:
如果仅希望获得随机数,直接读取/dev/urandom或调用Linux系统调用getrandom()(内部也使用/dev/urandom)是不错的选择。但这种随机数是无法复现的,因为种子是由系统设置的,并且每次开机设置的种子都不一样。在“可复现”的场景中,我们需要的是一种能手动控制随机种子和读取随机序列的方式,以便可以重复获得相同随机序列的功能。
如果一个过程依赖系统产生的随机数,则称这个过程是Non Deterministic(不确定的);相反的如果一个过程对相同的输入种子都有相同的输出,则这个随机过程是Deterministic的。在“可复现”场景中,我们需要保证所有的随机过程都是Deterministic的。
/dev/random可生成“随机性”更强的随机数,但由于其依赖的系统资源更多,导致性能缓慢,因此绝大多数场景都只使用/dev/urandom。
程序中的随机数,在PyTorch中,设置随机种子的方法是torch.manual_seed(),这里就是我们所设置的随机种子,设置完毕后,如果多次调用同样的具有随机过程PyTorch方法,就会获得相同的结果,例如下面的代码在多次调用后的打印是一样的:
不论在任何机器或系统,只要使用torch==1..0版本(其他版本大概率也是OK的),输出应该都是长这样的。诶?既然随机种子产生跟系统硬件信息相关,那不同的机器至少应该不一样才对呀?上文说了,在要求“可复现”的场景下,是不能使用/dev/urandom来产生随机数的,那剩下的是需要搞清楚PyTorch是如何生成随机数的。
通过torch.manual_seed方法往下找,可以知道PyTorch生成随机数是使用了MT(梅森旋转)算法,这个算法的输入只有一个初始化值也不需要其他的环境信息。因此无论在任何机器,只要PyTorch的版本一致(算法部分没有改变)并且设置了随机种子,那么调用随机过程所产生的随机数就是一致的。C++ 在标准库中直接引入了这个方法:std::mt,而PyTorch是软件源码资产管理自己实现的,官方称性能比C++的版本要更好一些,感兴趣的话可以直接看PyTorch源码。
NumPy的np.random.seed也同样使用MT来生成随机数,因此也与硬件无关。要注意的是:np.random.seed只影响NumPy的随机过程,torch.manual_seed也只影响PyTorch的随机过程。通过下面的代码很容易验证这个结果:
由此可以得到这样的程序中所有依赖MT算法产生随机数的包,都需要手动设置随机种子,才能使整个程序的随机性是可复现的。
“根据文档,设置torch.manual_seed是对所有的设备设置随机种子。目前似乎没有单独为CPU设备设置随机种子的方法。”
CUDA的随机数,PyTorch中,还有另一个设置随机种子的方法:torch.cuda.manual_seed_all,从名字可知这是设置显卡的随机种子。
在PyTorch的内部,使用CUDA Runtime API提供的curand来设置随机种子,根据curand的文档,他们提供的所有随机数生成算法都是Deterministic的。
上面的代码看起来不够“随机”,因为在不同的GPU设备上产生了相同的结果,如果希望不同设备可以产生不同的随机数,可以这么做:
上面的代码既保证了随机性(不同设备产生不同的随机数),也保证了确定性(多次调用只产生相同结果)。在真实场景中,一般只会用相同的设备来产生随机数,因此torch.manual_seed()应该就能满足大多数需求。
不同设备之间的随机数,先问一个问题:“用GPU训练的实验结果,可以在CPU上复现吗?”。
答案是“也许可以”。
根据前文可知,CPU设置随机种子是用PyTorch官方实现的MT,而GPU是用到了CUDA Runtime API的curand。因此两套实现是完全不同的,那么对于相同的随机种子,理应产生不同的随机序列,用下面的代码可以验证:
从上面的例子中知道,对于同一个随机种子,在CPU和GPU上产出的结果是不同的,因此这种情况在GPU上的结果是无法在CPU上复现的。那为什么答案是“也许可以”呢?
因为很多代码,都会在CPU上创建Tensor,再切换到GPU上。只要不直接在GPU上创建随机变量,就可以避免这个问题。请看下面的例子:
上面的代码输出值跟CPU一致,但是device是在CUDA上。这样写可能性能不如直接在GPU上直接创建随机变量,但为了保证程序的确定性,牺牲一点性能我认为是值得的。
多进程的随机性,PyTorch的torch.utils.data.DataLoader在num_worker>0的情况下会fork出子进程,而通常又会在加载数据的时候做很多“随机变换”,那么就有必要讨论一下多进程下的随机性是怎样的,
子进程一般会保留父进程的一些状态,这也包括随机种子。因此若不做特殊处理,所有子进程都会产生和父进程相同的多级缓存机制源码随机序列。请看下面的例子:
可以发现两次batch输出的结果是一样的,这是因为主进程中numpy的随机性,被两个worker保留了,因此两个worker的随机性是相同的。
“上面的结果在torch>=1.9.0是不能复现的,因为PyTorch 1.9之后DataLoader默认会给每个worker重新设置随机种子。”
这里我们需要为每一个worker设置不同的随机种子以保证随机性,但每次运行又必须要设置相同的随机种子来保证确定性,更好的代码实现如下:
这段代码将主进程的随机种子设置为,两个worker分别设置为和。因为每次运行随机种子的值是一样的,因此可以保证确定性,另外每一个worker包括主进程的随机种子都不一样,因此随机性也保证了。
类似的,对于分布式训练,也需要做类似的操作,这里考虑单机多卡的情况:
假设有两个GPU进行训练,那么第一个GPU的主进程和两个worker进程的seed为:,,;第二块GPU是:,,。
Seed Everything,最后点题,祭出一个seed_everything:
如何下载无水印的必应壁纸?
在浏览必应搜索时,若发现心仪的壁纸,通常可点击右下角介绍处的下载按钮进行下载。然而,下载下来的往往带有Microsoft Bing的水印,影响美观。那么,如何下载无水印的高清壁纸呢?这里提供两种方法。
第一种方法,以安全浏览器为例,首先在必应搜索首页,通过右键点击选“审查元素”,然后点击“源代码”板块,找到壁纸的位置,通常在s.cn.bing.net目录下。找到后,右键选择“在新标签页打开图像”,随后另存即可。记得关闭“审查元素”功能后回到正常的搜索页面。
第二种方法,利用Everything搜索工具。打开必应搜索主页,通过点击右下角的左右箭头浏览近几日的壁纸。然后,利用Everything搜索电脑中的缓存文件,找到并复制出来,重命名后加上.jpg扩展名。请注意,操作路径为C:\Users\(你电脑的用户名)\AppData\Roaming\se6\User Data\Default\Cache,但对一般用户来说,这种方法可能稍显复杂且效果不一定理想。若发现找不到缓存文件,可尝试删除文件并重新打开浏览器查找。
综上所述,对于追求简单高效操作的职教云php源码用户,推荐使用第一种方法下载无水印的必应壁纸。而对于愿意尝试不同解决方案的用户,第二种方法提供了另一种可能性。无论选择哪种方式,记得保护个人隐私,合理使用电脑资源。
BKM • 期 — 分享常用的办公学习小工具(六)
欢迎来到我的分享空间,我是凉拌谢耳朵。今天,我将为大家带来第六期的办公与学习小工具推荐,重点关注本地软件、集成网站、传输工具、本地软件、远程控制、数据同步、浏览器插件等。 由于这是一次个人分享,内容可能并不全面,期待大家能够补充分享更好的工具,让我们共同构建一个更丰富的内容库。 让我们一起探索以下推荐工具: (一) 手机程序 apk-downloader:<a href="apps.evozi.com/apk-down...,用于下载Google Play上的应用程序。 (二) 集成网站 下1个好软件:<a href="实用好玩有趣的安卓、Windows、iOS、macOS、Linux软件的平台。 Awesome-Windows:<a href="GitHub - Awesome-Windows/Awesome: An awesome & curated list of best applications and tools for Windows.,提供Windows的最佳应用和工具列表。 Downloadly:<a href="downloadly.net/,全面的免费软件下载站。 VXAT:<a href="VXAT - 精品资源免费下载,提供免费软件、源码、优惠活动、技术教程等资源。 (三) 传输工具 不限量网盘:<a href="TransferKit - Decentralized File Transfer,提供无限量在线云存储。 空投:<a href="AirPortal 空投快传,支持跨设备传输文件,无需注册。 在线文件传输和收集:<a href="文叔叔 - 传文件,找文叔叔(永不限速),永不限速的在线文件传输服务。 文件传输-wormhole:<a href="wormhole.app/,提供高速传输解决方案。 速盘:<a href="速盘speedpan,无需登录的百度网盘下载工具。 motrix:<a href="Motrix,免费开源的磁力下载工具,包含网盘内容。 (四) 本地软件 火萤酱:<a href="火柴官网(原火萤酱)-文件秒搜|局域网聊天_电脑必备|效率神器,快速查找本地文件、启动应用、网页直达等。 Cold Turkey Blocker:<a href="Cold Turkey Blocker,帮助专注办公和学习,屏蔽干扰。 KeymouseGo:<a href="GitHub - taojy/KeymouseGo: 类似按键精灵的数据自动汇总源码鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input,Windows下的自动化工具。 Listary:<a href="File Search & App Launcher,功能强大的文件搜索工具,支持程序快速启动。 anytxt:<a href="AnyTXT Searcher,免费的本地文档和文本搜索软件。 everything:<a href="voidtools,快速本地文件搜索工具。 One Commander:<a href="文件管理软件 One Commander v3..4.0 绿色免费版,双窗文件管理神器,功能强大,免费。 EAGLEGET:<a href="EagleGet_官方电脑版_下载,免费下载神器,体积小,功能强大。 Quicker:<a href="Quicker软件 您的指尖工具箱 - Quicker,小软件,功能丰富,提升效率。 SpaceSniffer:<a href="SpaceSniffer_官方电脑版_下载,磁盘分析清理工具,体积小,功能强大。 QuickLook:<a href="github.com/QL-Win/Quick...,快速预览文件,只需空格键。 Fosshub:<a href="FOSSHUB,免费开源电脑软件。 Q-Dir:<a href="Q-Dir,资源管理神器,同时打开多个磁盘窗口,操作不受影响。 Captura:<a href="github.com/MathewSachin...,免费录屏软件,功能强大。 Folder Painter:<a href="Folder Painter,实用的文件夹颜色和图标样式更改工具。 (五) 远程控制 ToDesk:<a href="ToDesk远程控制软件-免费安全流畅的远程连接电脑手机,简单、实用的远程控制软件。 幕享:<a href="幕连幕享 - 全平台免费无线投屏软件,免费无线投屏工具,支持全平台。 (六) 数据同步 Syncthing:<a href="github.com/syncthing/sy...,开源文件同步工具,多设备实时同步。 (七) 浏览器插件 油猴脚本:<a href="油猴tampermonkey官网_油猴插件手机版油猴插件下载,浏览器插件,提供多种强大功能。 侧边翻译:<a href="一个简单使用的翻译插件,支持Chrome、火狐等主流浏览器,用于快速翻译网页内容。 请关注微信公众号BIM技术应用交流,回复“知识库”获取原始思维导图。图吧工具箱.正式版下载
图吧工具箱.正式版已发布,集成多项最新工具,包括DISM++、Ventoy、Rufus、DDU、Geek、Everything等,新加入迅游加速器供用户白嫖小时会员。皮肤界面进行升级,除了经典蓝皮肤外,其他纯色渐变皮肤均重新调色。预计每月更新,furmark显存温度压力测试将回归下个版本。最新更新日志详情可见tbtool.cn官网。
提供多种下载方式,包括盘、天翼云盘、腾讯微云、百度网盘、城通盘、迅雷盘和夸克盘,提取码分别对应hy5p、、访问码、以及pan.com/s/QdiA-Kt4mh的链接。无需繁琐安装,自解压格式的压缩包方便用户直接解压使用。
图吧工具箱,专为硬件极客、DIY爱好者、各路大神及小白设计的开源、免费、绿色、纯净的硬件检测工具合集。汇集大量常见硬件检测、评分工具,提供一键下载,操作简单。无捆绑安装行为,不写入注册表,不进行敏感文件操作,确保用户隐私安全。支持自解压格式,无需安装,解压即用,方便快捷。提供源码下载,硬件检测SDK,支持主流编程语言调用,无需授权,免费使用无任何限制。自年起,持续稳定更新,旨在提供方便用户使用的硬件检测工具箱。
初学者个必备程序 “工具箱“
前言:开发者们每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。好的工具可以极大帮助我们提升效率,服务业务。此博客应时代需求、应运而生,为初学者讲解简洁、轻便、实用的工具箱。
Typora介绍:一款 Markdown 编辑器和阅读器,Typora 没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代码编辑模式。风格极简、支持多种主题、支持 macOS、Windows、Linux 系统。所见即所得的编辑模式、实时预览、与文字、代码块、数学公式、图表、目录大纲、文件管理、导入与导出等功能丰富。独特功能在于视觉效果上对于主题设置选项的高度自定义,用户可以使用代码编辑器修改主题 CSS 文件,或在GitHub中寻找自己喜欢的主题导入。跨平台应用特性,实现 Windows / macOS / Linux 全覆盖的桌面端跨设备使用。还自带文件保存/版本管理功能,当遇到突发情况时可以自动保存多个版本编辑记录,实现云文档的版本管理效果。
Xmind介绍:全功能的思维导图和头脑风暴软件,帮助开发者理清思路,捕捉创意。思维导图作为发散性思维的极佳承载工具,鼓励探索不同的创作途径,寻找新联系,激发创意想法。通过合理的导图结构将模糊观点具体化,实现从想到做到的跨越,快速记录每个想法。结合多种思维方式,表达复杂想法,更高效地梳理思路。ZEN模式有助于沉浸式制作思维导图,提高专注度。超级好用,清晰、模式多样、颜色丰富、主题多样,标注重点方便。
阿里云盘介绍:阿里巴巴全球技术团队打造的个人网盘,提供大容量存储空间、5G速度上传下载、企业级数据安全防护、在线预览能力、智能相册、轻松找图、分享能力等。最大的亮点是“永不限速”,无论用户是否付费,都不会限速。全面进化,功能强大,支持多设备、上传下载不限速、订阅分享。大学生可以使用高达2T的免费存储空间,非常方便存储资料、笔记。
Canva可画介绍:用于海报设计、logo设计、修图以及制作简单封面的设计软件,提供免费资源,支持付费和免费。独特功能包括字体特效、嵌入及导出视频和GIF动图、丰富的素材库、静态图、视频、Git等,素材丰富。快捷、便捷地创造出精美的海报、宣传。
FastStone Capture介绍:小巧强悍的电脑屏幕截图软件,支持全屏截取、当前活动窗口截取、截取选定区域、多边形截取、截取滚动页面等功能,功能强大。支持快速浏览/编辑图像,将网页中拖到软件窗口快速打开浏览。视频录制功能,可选择录制范围、开始录制。具有扫描器获取图像和转换为PDF文档的功能。
EVCapture介绍:国产免费的视频录制工具+直播推流软件,无需付费使用,无广告界面,输出视频文件体积小,集视频录制和Rtmp网络串流于一体,低内存、低CPU消耗,支持主流系统。简单易用,便捷功能强大。
Everything介绍:针对Windows系统打造的文件搜索工具,拥有干净简洁的用户界面,快速索引和搜索文件,基于名称实时定位文件和目录。搜索速度快,占用内存小,功能强大,是办公人员的效率利器。
VMware介绍:虚拟机软件,使用户可以在一台机器上同时运行多个操作系统,无需分区或重开机,充分利用物理机资源,支持多启动系统概念。用户可以轻松添加新虚拟机,即使是初学者也可以轻松设置虚拟计算机。
Xshell介绍:强大的安全终端模拟软件,支持SSH1、SSH2、Microsoft Windows平台的TELNET协议,提供了创新设计和特色功能,支持安全功能如SSH1/SSH2协议、密码和公开密钥认证方法,内置安全功能保持数据安全。支持多种功能如标签环境、广泛拆分窗口、同步输入和会话管理。支持UTF-8编码,可以显示多种语言。
Xftp介绍:功能强大的SFTP、FTP文件传输软件,支持多标签、并行传输,同步功能,同时传输到多个目的地,支持加密和用户身份验证,提供安全的互联网连接。
结语:本文介绍了十款必备的开发者工具,希望对初学者有所帮助。这些工具各有特色,能够提升效率,服务业务。请在使用后点赞、收藏和评论,支持作者。
有哪些优秀的 Windows 小工具,类似 everything?
在Windows的世界里,强大的小工具就像隐藏的宝藏,它们体积虽小,却能为你的日常工作和生活带来极大的便利。今天,我们将揭示款备受好评的Windows小工具,它们个个功能强大,堪比经典神器Everything。 1. AnyTXT Searcher:作为最佳的全文搜索引擎,它的速度犹如闪电,即使面对大量数据,也能瞬间找到你需要的信息。但当索引较大时,推荐使用非系统盘存储以确保高效运行。 2. Listary:这款文件管理和快速启动器,只需双击Ctrl键就能启动搜索,Ctrl+G更是让你的导航如丝般顺滑,大大提高工作效率。 3. 文件名搜索神器:一切尽在Everything,它的搜索速度无人能敌,无论是查找文件名还是快速启动程序,都能瞬间响应。 4. SumatraPDF:作为阅读器,SumatraPDF支持多种格式,高亮批注功能让你的阅读体验更为丰富。 5. Honeyview:轻量级的看图工具,支持免解压查看,让你的浏览更加流畅。 6. Ditto:剪贴板的历史记录管理器,强大的功能让你的复制粘贴操作更加得心应手。 7. Dism++:一站式系统管理优化工具,让系统运行更加顺畅,维护工作轻松不少。 8. GeekUninstaller:专业的卸载工具,清理残留文件,让你的设备保持清爽。 9. Window TopMost Control:窗口置顶功能,让重要窗口始终在最前方,提高工作效率。 以上工具需谨慎操作,确保正确使用。如果你在寻找下载途径,官网通常是可靠的首选,但也可在其他信誉良好的平台查找。 . IDM:多线程下载神器,不仅支持网页媒体的自动下载,更是速度与效率的双重保障。 . Quicker:鼠标党福音,一系列全局快捷功能,让操作如行云流水。 . Advanced Renamer:批量重命名工具,自定义规则让文件管理更加有序,免费试用版就已足够强大。 . Snipaste:截图和贴图工具的全能选手,无论是截图保存还是直接粘贴,操作简单高效。 . EmEditor:速度和功能并存的文本编辑器,无论是编辑源代码还是处理文档,都是得力助手。 . DesktopOK:绿色小巧的桌面图标管理器,让你的桌面整洁有序。 . 天若OCR:开源的文字识别工具,离线状态下也能轻松提取文字信息。 . f.lux:科学调节屏幕色温,有效过滤蓝光,保护视力健康。 . Rufus:制作USB启动盘的得力工具,关键时刻派上大用场。 . QuickLook:空格预览,多种文件格式一键搞定,节省时间。 . PowerToys:微软官方出品的功能增强工具包,集成众多实用小功能,值得拥有。这些小工具犹如系统中的锦上添花,让你的Windows体验更加丰富高效。无论是文件管理、工作效率提升,还是个性化设置,它们都能成为你日常使用的得力伙伴。现在就去下载体验吧,让它们成为你电脑生活中的秘密武器!