皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

影响AMD所有Zen1-4处理器!AMD公布4个“高危”漏洞:速速更新

Editor, Kai

快科技2月15日消息,近日AMD发布公告披露了4个高危漏洞,涉及到服务器、台式机、工作站、HEDT、移动和嵌入式Zen1-4架构处理器,建议用户尽快安装安全补丁。

AMD表示,这4个高危漏洞均存在于双串行外设接口(SPI)中,黑客可利用该漏洞发起拒绝服务攻击,或者远程执行任意代码。

影响AMD所有Zen1-4处理器!AMD公布4个“高危”漏洞:速速更新

此次披露的4个漏洞如下:

CVE-2023-20576:AGESA中数据真实性验证不足,可能允许攻击者更新SPI ROM数据,从而导致拒绝服务或权限提升。

CVE-2023-20577:SMM模块中的堆溢出可能允许攻击者访问第二个漏洞,从而允许写入SPI闪存,从而可能导致任意代码执行。

CVE-2023-20579:AMD SPI保护功能中的不当访问控制,可能允许具有Ring0(内核模式)特权访问的用户绕过保护,这可能会导致完整性和可用性丢失。

CVE-2023-20587:系统管理模式(SMM)中的不当访问控制,可能允许攻击者访问SPI闪存,从而可能导致任意代码执行。

目前AMD暂未完成对所有受影响产品的安全修复,因此Ryzen 3000系列台式机CPU,4000系列移动APU的用户在接下来应需要注意,并在有更新时及时进行安装。

影响AMD所有Zen1-4处理器!AMD公布4个“高危”漏洞:速速更新

【本文结束】如需转载请务必注明出处:快科技

责任编辑:黑白

转自 影响AMD所有Zen1-4处理器!AMD公布4个“高危”漏洞:速速更新–快科技–科技改变未来 (mydrivers.com)

Fedora 40 已获准发布 AMD ROCm 6,软件包可能重新引入 KDE X11 支持

Editor, Kai

Fedora 40 已获准发布 AMD ROCm 6,软件包可能重新引入 KDE X11 支持

Fedora 工程与指导委员会(Fedora Engineering and Steering Committee,FESCo)周一批准了 Fedora Linux 40 发布前最后的一些功能。

在 Fedora 工程与指导委员会每周例会之前,他们在票据中投票通过了本周的以下变更:

– Fedora IoT 的新工具 “简化配置”(Simplified Provisioning),使 Fedora 物联网(IoT)版的部署和配置变得更容易。

– Fedora IoT 现在将使用 RPM-OSTree 统一内核构建。

– Fedora IoT 现在还可以为边缘和物联网用例提供 Fedora IoT Bootable Container。

– IBUS 1.5.30 和 ibus-anthy 1.5.16 已被批准用于 Fedora 40。

– 用 iotop-c 实现取代 iotop。

– 打包自己的 PyTorch,而不是依赖 PIP。

– 打包 AMD 的 ROCm 6 计算栈。Fedora 此前曾致力于打包 ROCm 计算包,使其更易于部署,而此次批准的是转用新的 ROCm 6.0 基础。

– 使用 bpfman 管理 BPF eBPF 程序。

– 关于最近围绕 Fedora 40 默认放弃 KDE X11 的争论,FESCo 提供了最新的指导意见。他们在会议上决定,允许在 Fedora 主软件源中重新引入 KDE 软件包对 X11 的支持,但这些软件包不得默认包含在 ISO/image 等任何限制发布的产品中。从 Fedora 38 和 Fedora 39 升级到 Fedora 40,KDE Plasma Wayland 会话也将默认切换到 Wayland。

Fedora 40 已获准发布 AMD ROCm 6,软件包可能重新引入 KDE X11 支持

有关本周 FESco 裁决的更多详情,请参阅 Fedora 邮件列表。

转自 Fedora 40 Cleared To Ship AMD ROCm 6, Packages May Reintroduce KDE X11 Support – Phoronix

比肩英特尔AMD!我国自研16核处理器成功流片:自研指令集兼容X86等

Editor, Kai

快科技2月13日消息,据龙芯中科最新消息,龙芯3C6000已经交付流片。这款芯片采用16核32线程,属于专为服务器设计的处理器,支持自研LoongArch指令集。

据介绍,龙芯3C6000 IO接口相比当前服务器产品3C5000进行了大幅度的改进和优化,采用龙链技术解决了处理器核数量扩展上的瓶颈,未来公司在3C6000基础上还会封成32核和64核的产品推出。

龙芯中科强调,服务器业务属于龙芯的增量市场,将在性价比上发挥出更大的竞争优势。

此外,关于龙芯二进制翻译工作的进展,公司回应称,X86/Linux的二进制翻译趋于稳定。

总体上兼容性和性能都有很大提升,X86/Windows的打印机、IE浏览器兼容趋于成熟,动静结合翻译、库直通等优化效果比较明显。

最近在针对用户体验进行优化,如启动时间、3D渲染效率等。但这是个大工程,需要持续完善与优化。

比肩英特尔AMD!我国自研16核处理器成功流片:自研指令集兼容X86等

【本文结束】如需转载请务必注明出处:快科技

责任编辑:雪花

转自 比肩英特尔AMD!我国自研16核处理器成功流片:自研指令集兼容X86等

GNOME Shell 和 Mutter 46 Beta 版发布,带来大量改进

Editor, Kai

GNOME Shell 和 Mutter 46 Beta 版发布,带来大量改进

GNOME 项目今天发布了 GNOME Shell 和 Mutter 组件的测试版,作为即将推出的 GNOME 46 桌面环境系列的一部分,它们包含了大量改进。

GNOME Shell 46 测试版改进了高对比度和默认样式,支持在驱动器断开连接时关闭挂载通知,支持键盘型号配置、通知标题,并改进了通知中符号图标的外观。

此外,GNOME 文本编辑器应用程序现在默认显示在仪表盘上,最小化动画也得到了改进,开关的外观得到了调整,截屏失败的处理得到了改进,调光效果现在只用于活动概览中的模式对话框。

GNOME 扩展程序也得到了一些改进,如支持自适应对话框和记忆窗口状态的功能。此外,GNOME Shell 46 测试版还全面检查了显示器布局切换器中的资产,修复了 RTL 本地化中的菜单对齐问题,并为格鲁吉亚 OSK 布局添加了缺失的移位级别。
在此版本中,GNOME Shell 将使用单一来源来获取所有系统通知。该测试版还解决了各种 Bug,包括瞬态 Wayland 窗口的效果、键盘背光滑块的反馈外观、仪表盘中图标大小的回归以及从搜索结果到会话的概览过渡。

另一方面,Mutter 46 测试版为即将到来的可变刷新率支持做了更多准备,为 KMS 原子实现了鼠标光标热点,重构了 Wayland 焦点管理,允许配置 XKB 模型,并在 VT 切换后启用 KMS 截止时间计时器(如果它被抑制)。

此外,Mutter 46 测试版还恢复了在处理按键事件之前的 IM 状态刷新,增加了对广播 RGB/RGB 范围 KMS 属性的支持,增加了对 EGL 配置格式的支持,增加了对在 pad 操作中处理 Alt 修饰符的支持,并增加了对单独存储橡皮擦和手写笔工具的支持。

最后但并非最不重要的是,Mutter 46 测试版实现了对裁剪和缩放表面的直接扫描输出,修复了取消弹出式窗口后键盘焦点丢失的问题,修复了处理垫圈环绕的问题,调换了触控笔按钮以符合传统顺序,并修复了将非模式瞬态对准父对象中心的问题。
GNOME Shell 和 Mutter 46 测试版都对文档进行了改进。作为即将发布的 GNOME 46 测试版桌面环境的一部分,它们将很快可供公开测试,您也可以从此处此处单独下载。

转自 GNOME Shell and Mutter 46 Beta Released with Numerous Improvements – 9to5Linux

2024 年 2 月的 TIOBE 指数

Editor, Kai

2024 年 2 月的 TIOBE 指数

本月,Go 进入 TIOBE 指数前十名,排名第 8 位。这是Go 有史以来的最高排名。2009 年 11 月,Google 推出了 Go,并一炮而红。在那个年代,谷歌所做的一切都是那么神奇。在 Go 出现的几年前,谷歌就发布了 GMail、谷歌地图和谷歌文档。因此,当谷歌宣布其第一种自有语言 Go 时,软件社区为之振奋。这是全城的话题。在推出仅两个月后,Go 就赢得了 TIOBE 年度语言奖。意想不到的是,炒作很快就结束了。2015 年,Go 在 TIOBE 指数中排名第 122 位,一切似乎都失去了意义。一年后,Go 采用了非常严格的 “半年 “发布周期(得到了谷歌的支持)。每发布一个新版本,Go 都会有所改进。与此同时,Docker 和 Kubernetes(均由 Go 编写)从 2016 年开始变得非常流行。这有助于人们重拾对 Go 的信心。如今,Go 已被用于许多软件领域,如后端编程、网络服务和 API。由于 Go 在行业中的应用越来越广泛,它似乎有能力长期保持在 TIOBE 指数前十名。有趣的是,谷歌最近推出的新语言 Carbon 本月首次进入前 100 名。– 保罗-扬森(Paul Jansen),TIOBE 软件公司首席执行官

TIOBE 编程社区指数是编程语言受欢迎程度的指标。该指数每月更新一次。评级基于全球熟练工程师、课程和第三方供应商的数量。流行网站谷歌、亚马逊、维基百科、必应和其他 20 多个引擎被用来计算评级。值得注意的是,TIOBE 指数并不涉及最佳编程语言或编写代码行数最多的语言。

该指数可用于检查您的编程技能是否仍处于最新状态,或在开始构建新的软件系统时就应采用哪种编程语言做出战略性决策。有关 TIOBE 指数的定义,请点击此处

Feb 2024 Feb 2023 Change Programming Language Ratings Change
1 1 2024 年 2 月的 TIOBE 指数 Python 15.16% -0.32%
2 2 2024 年 2 月的 TIOBE 指数 C 10.97% -4.41%
3 3 2024 年 2 月的 TIOBE 指数 C++ 10.53% -3.40%
4 4 2024 年 2 月的 TIOBE 指数 Java 8.88% -4.33%
5 5 2024 年 2 月的 TIOBE 指数 C# 7.53% +1.15%
6 7 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 JavaScript 3.17% +0.64%
7 8 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 SQL 1.82% -0.30%
8 11 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Go 1.73% +0.61%
9 6 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Visual Basic 1.52% -2.62%
10 10 2024 年 2 月的 TIOBE 指数 PHP 1.51% +0.21%
11 24 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Fortran 1.40% +0.82%
12 14 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Delphi/Object Pascal 1.40% +0.45%
13 13 2024 年 2 月的 TIOBE 指数 MATLAB 1.26% +0.27%
14 9 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Assembly language 1.19% -0.19%
15 18 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Scratch 1.18% +0.42%
16 15 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Swift 1.16% +0.23%
17 33 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Kotlin 1.07% +0.76%
18 20 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Rust 1.05% +0.35%
19 30 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 COBOL 1.01% +0.60%
20 16 2024 年 2 月的 TIOBE 指数 2024 年 2 月的 TIOBE 指数 Ruby 0.99% +0.17%

其他编程语言

下面列出了完整的前 50 种编程语言。此概述是 非正式发布,因为我们可能错过了一种语言。如果 您觉得缺少编程语言,请通知我们 在 tpci@tiobe.com。另请查看我们监控的所有编程语言的概述

Position Programming Language Ratings
21 R 0.99%
22 SAS 0.95%
23 Classic Visual Basic 0.82%
24 Prolog 0.77%
25 Ada 0.77%
26 Perl 0.63%
27 (Visual) FoxPro 0.62%
28 Dart 0.58%
29 D 0.57%
30 F# 0.57%
31 Scala 0.48%
32 Objective-C 0.47%
33 Lua 0.44%
34 Julia 0.43%
35 Lisp 0.42%
36 Transact-SQL 0.40%
37 VBScript 0.38%
38 Haskell 0.37%
39 TypeScript 0.37%
40 Logo 0.32%
41 Bash 0.31%
42 Scheme 0.28%
43 Solidity 0.28%
44 ABAP 0.27%
45 ML 0.26%
46 X++ 0.25%
47 PL/SQL 0.24%
48 GAMS 0.24%
49 PowerShell 0.24%
50 RPG 0.22%

下一个 50 种编程语言
以下列出的语言从第 51 位到第 100 位。由于差异相对较小,因此只列出了编程语言(按字母顺序排列)。

ABC、ActionScript、Apex、APL、AutoLISP、Awk、bc、Carbon、CFML、Chapel、CHILL、CL (OS/400)、CLIPS、Clojure、Curl、Eiffel、Elixir、Erlang、Forth、Groovy、Hack、Icon、Io, J, J#, JScript, LabVIEW, Ladder Logic, Modula-2, MQL5, Nim, OCaml, Occam, OpenCL, OpenEdge ABL, PL/I, Pure Data, Q, Racket, Raku, REXX, Ring, Smalltalk, Snap!,SPARK、Tcl、TOM、VHDL、Wolfram、Zig
本月索引中的更改
本月对索引的定义做了以下更改:

根据 Landerson Gomes dos Santos 的观察,YouTube 和百度不再用于计算 TIOBE 指数,因此我们对 TIOBE 指数介绍的措辞做了一些修改。
长期历史
要了解更多信息,请参阅以下多年前十大编程语言的排名情况。请注意,这些是 12 个月内的平均排名。

Programming Language 2024 2019 2014 2009 2004 1999 1994 1989
Python 1 4 8 6 11 27 22
C 2 2 1 2 2 1 1 1
C++ 3 3 4 3 3 2 2 3
Java 4 1 2 1 1 13
C# 5 6 5 8 8 30
JavaScript 6 8 9 9 9 20
Visual Basic 7 19
PHP 8 7 6 5 6
SQL 9 9 7
Assembly language 10 11
Objective-C 27 10 3 38 48
Lisp 33 28 14 17 15 12 7 2
(Visual) Basic 7 4 5 3 3 7

 

这里有两点很重要:

上表中的 “Visual Basic “和”(Visual) Basic “是有区别的。在 2010 年之前,”(Visual) Basic “指的是 Basic 的所有可能的方言,包括 Visual Basic。经过讨论,决定将”(Visual) Basic “分为所有方言,如 Visual Basic .NET、Classic Visual Basic、PureBasic 和 Small Basic 等。由于 Visual Basic .NET 已成为 Visual Basic 的主要实现形式,因此现在被称为 “Visual Basic”。
编程语言 SQL 在 2018 年被添加到 TIOBE 索引中,因为有人指出 SQL 是图灵完备的。因此,尽管这种语言非常古老,但它在索引中的历史却很短。
编程语言名人堂
列出所有 “年度编程语言 “获奖者的名人堂如下所示。该奖项授予在一年内收视率上升幅度最大的编程语言。

Year Winner
2023 2024 年 2 月的 TIOBE 指数 C#
2022 2024 年 2 月的 TIOBE 指数 C++
2021 2024 年 2 月的 TIOBE 指数 Python
2020 2024 年 2 月的 TIOBE 指数 Python
2019 2024 年 2 月的 TIOBE 指数 C
2018 2024 年 2 月的 TIOBE 指数 Python
2017 2024 年 2 月的 TIOBE 指数 C
2016 2024 年 2 月的 TIOBE 指数 Go
2015 2024 年 2 月的 TIOBE 指数 Java
2014 2024 年 2 月的 TIOBE 指数 JavaScript
2013 2024 年 2 月的 TIOBE 指数 Transact-SQL
2012 2024 年 2 月的 TIOBE 指数 Objective-C
2011 2024 年 2 月的 TIOBE 指数 Objective-C
2010 2024 年 2 月的 TIOBE 指数 Python
2009 2024 年 2 月的 TIOBE 指数 Go
2008 2024 年 2 月的 TIOBE 指数 C
2007 2024 年 2 月的 TIOBE 指数 Python
2006 2024 年 2 月的 TIOBE 指数 Ruby
2005 2024 年 2 月的 TIOBE 指数 Java
2004 2024 年 2 月的 TIOBE 指数 PHP
2003 2024 年 2 月的 TIOBE 指数 C++

错误和更改请求
这是要求最多的 5 个更改和错误。如果您有任何改进索引的建议,请发送电子邮件至 tpci@tiobe.com。

除”<语言>编程 “外,还应尝试其他查询,如 “使用<语言>编程”、”<语言>开发 “和”<语言>编码”。
增加其他自然语言(除英语外)的查询。我们的想法是从中文搜索引擎百度开始。这项工作已经部分完成,并将在未来几个月内完成。
添加所有被拒绝的搜索词请求列表。这是为了尽量减少有关 Rails、JQuery、JSP 等的重复邮件数量。
为数据库、软件配置管理系统和应用程序框架建立 TIOBE 索引。
有些搜索引擎允许查询去年添加的页面。TIOBE 索引应仅跟踪最近添加的页面。

转自 TIOBE Index – TIOBE

Android 15蓄势待发:第一大特性首度曝光

Editor, Kai

快科技2月9日消息,据媒体报道,谷歌推送了Android 14 QPR3 Beta 1版本,开发者发现,新版Android加入了简易模式(easy pre-set)功能。

在简易模式下,用户可以放大APP图标和文本,让字体变粗,更适合长辈使用。

Android 15蓄势待发:第一大特性首度曝光

对长辈而言,智能手机丰富的功能某种程度上反而是一种累赘,当前国内不少厂商都提供老人模式选项,这一模式除了基础的字体放大外,有些品牌还提供了一键拨号等实用功能,方便老人使用。

从爆料信息来看,Android 15新的简易模式就是为长辈而来,让他们更容易上手智能手机。

Android 15蓄势待发:第一大特性首度曝光

值得注意的是,这项功能在Android 14 QPR3 Beta 1上还不可用,谷歌会把这个特性留到Android 15发布会上公布。

开发者之所以提前在Android 14 QPR3 Beta 1中发现,是因为谷歌正在同时开发Android 14 QPR版本和Android 15。

在今年上半年,Android 15开发者预览版就要上线了,今年下半年正式上线稳定版,谷歌Pixel系列新品将首发Android 15系统。

Android 15蓄势待发:第一大特性首度曝光

【本文结束】如需转载请务必注明出处:快科技

责任编辑:振亭

转自 Android 15蓄势待发:第一大特性首度曝光–快科技–科技改变未来 (mydrivers.com)

芯片、系统全国产!神舟信创商用笔记本电脑上架:9599元起

Editor, Kai

快科技2月7日消息,神舟最新推出了一款信创商用笔记本电脑,CPU、显卡、系统全国产。

目前官方尚未公布具体的参数信息,甚至连挂出的外观图都不是同一款,目前的展示应该还不是最终方案。

芯片、系统全国产!神舟信创商用笔记本电脑上架:9599元起

不过目前配置信息和对应的价格已经公布:

CNB5SF0:8G内存+256G固态硬盘,售价9599元;

CNB5SF1:8G内存+512G固态硬盘,售价9799元;

CNB5SC9:16G内存+256G固态硬盘,售价9799元;

CNB5SD1:16G内存+512G固态硬盘,售价10199元。

核心搭载龙芯3A6000M移动处理器,板载 2G国产独显,预装麒麟系统。

芯片、系统全国产!神舟信创商用笔记本电脑上架:9599元起

龙芯3A6000是11月底正式发布的国产处理器,采用龙芯自主指令系统龙架构,是我国本土研发、自主可控的新一代通用处理器。

性能方面,该处理器主频达到2.5GHz,集成4个最新研发的高性能LA664处理器核,支持同时多线程技术(SMT2),全芯片共8个逻辑核。

芯片、系统全国产!神舟信创商用笔记本电脑上架:9599元起

对比Intel-i3 10100,SPEC CPU 2006测试中,龙芯3A6000多核定点强20%、多核浮点强17%,单核定点持平,单核浮点弱5%。

在UnixBench测试中,3A6000单线程、多线程比Intel-i3 10100也都有10%以上的提升。

【本文结束】如需转载请务必注明出处:快科技

责任编辑:建嘉

转自 芯片、系统全国产!神舟信创商用笔记本电脑上架:9599元起–快科技–科技改变未来 (mydrivers.com)

人工智能:关于神经网络的更多信息以及 PyTorch 简介

Editor, Kai

人工智能:关于神经网络的更多信息以及 PyTorch 简介

本系列中关于人工智能和机器学习的上一篇文章在很多方面都至关重要。首先,我们开始使用 scikit-learn,这是一个非常强大的 Python 库,可用于开发基于人工智能和机器学习的应用程序。其次,我们部署了第一个训练有素的模型。但最重要的是,这篇文章介绍了 ChatGPT,这可能是印度印刷杂志第一次介绍 ChatGPT。这篇文章是人工智能系列的第八篇,它讲述了更多关于神经网络和无监督学习的内容,并介绍了 PyTorch,一个能够从数据中学习的非常强大的框架。

正如上一篇文章所述,ChatGPT 是 OpenAI 于 2022 年 11 月推出的一款聊天机器人。在短短两个月的时间里,ChatGPT 已经形成了两个对立的派别。一派支持像 ChatGPT 这样基于人工智能的工具,并等待着人工智能创造的乌托邦世界。另一派则对人工智能忧心忡忡,并做出了末日预言。他们担心会出现一个乌托邦式的未来–类似于 “终结者 “的场景,即机器控制人类,而不是相反。这一派中的一些人还认为 ChatGPT 将成为就业杀手。这些人认为,可能受到威胁的工作包括商业转录、医疗转录、文案写作、教学、法律工作等。但请记住,半个世纪前,许多人认为计算机是工作杀手,看看他们错得有多离谱。有些人还预言,像 ChatGPT 这样的工具可能是谷歌、必应、百度等传统搜索引擎末日的开始–我个人并不认同这种观点。

但 ChatGPT 的受欢迎程度如何呢?FaceBook 在 2004 年花了 10 个月的时间才获得 100 万用户。2006 年,Twitter 用了大约两年时间才获得一百万用户。Instagram 在 2010 年上市后的两个半月内,下载量就超过了 100 万。这些都是了不起的成就。但是,你知道 ChatGPT 在向公众开放后花了多少时间才获得一百万用户吗?不到一周!太不可思议了,不是吗?写这篇文章时,我还不知道确切的用户数量。但如今,由于用户数量庞大,ChatGPT 的服务经常无法使用。

同样由 OpenAI 提供的 DALL-E 2 也是一个能够根据描述生成图像的工具。为了艺术,我希望至少专家馆长能够区分两者,就像宝石学家能够轻松区分真假钻石一样,这对普通人来说并非易事。

我们还应该思考,像 ChatGPT 这样的突破性工具将如何影响人工智能相关的研究经费。它可能会为人工智能领域带来更多的资金,从而催生更多突破性的工具和发明。然而,这种期望值的提高也可能导致失望,并引起资助大部分研究的工业巨头的负面反应。在这种时候预测人工智能的未来并不安全。也许我们应该请 ChatGPT 来预测一下。不过,我建议大家阅读维基百科上题为 “人工智能的冬天 “的文章,以了解更多关于人工智能领域研究经费的信息,因为夸大的期望在现实中并没有得到回应。另外,如果你还没有使用过 ChatGPT 或 DALL-E 2,我再次恳请你尝试一下。你会被它们深深吸引的。现在,让我们回到基于人工智能和机器学习创建简单应用程序的卑微努力上来。

Keras 和神经网络
在上一篇文章中,我们使用 MNIST 手写数字数据库训练了第一个模型。我们还使用一些手写数字的扫描图像测试了我们的模型。在上一篇文章中,除了第 16、19 和 20 行外,我们对代码进行了逐行详细解释。这几行代码是模型的核心,我们在上一篇文章中只是简单地说明了这一点。这三行代码定义了模型中使用的神经网络的属性以及训练参数。在本文中,我们将详细讨论这三行代码,以便更清楚地了解神经网络及其训练。首先,请看下图中用于开发模型的第 16 行代码。请注意,虽然代码跨越了多行,但从语法上讲,它是一条单一的代码语句。

model = keras.Sequential(
        [
keras.Input(shape=input_shape),
layers.Conv2D(32, kernel_size=(3, 3), activation=”relu”),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation=”relu”),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(num_classes, activation=”softmax”),
        ]
    )

让我们简要回顾一下第 1 行至第 15 行对我们的模型所做的工作。首先,我们导入了必要的 Python 库,如 NumPy、Keras 等。然后,我们固定了类的数量、输入形状等。接着,我们加载了 MNIST 数据集,并将其分为训练数据和测试数据。之后,我们检查系统中是否存在训练过的模型。如果已经存在训练有素的模型,我们这样做是为了避免耗费时间和资源的模型训练过程。如果不存在经过训练的模型,那么用于训练的模型的属性由第 16 行代码定义。

现在,让我们来详细看看上面显示的那行代码。首先,确定使用的神经网络类型。回想一下,神经网络有一个输入层、若干个隐藏层和一个输出层。此外,每一层都有若干节点(神经元)。我们使用 Keras 的序列 API 提供的类 Sequential( ) 定义了一个序列模型。顺序模型是层的堆叠,其中每一层都有一个输入张量和一个输出张量。通过该模型,我们可以逐层创建神经网络。顺序模型是一个相对简单的神经网络模型。如果想创建更复杂的神经网络,可以使用 Keras 的函数式 API 提供的 Model( ) 类。如果需要,函数式 API 可以处理具有共享层和多个输入或输出的模型。不过,我更喜欢更简单的顺序模型。

现在,让我们试着了解给顺序模型提供的输入参数。代码 “keras.Input(shape=input_shape) “定义了输入层的输入形状。在本例中,形状为 (28, 28, 1),因为我们用于训练的 MNIST 数据集由一组 28×28 像素的手写数字灰度图像组成。代码 “layers.Conv2D(32, kernel_size=(3, 3), activation=”relu”) “定义了一个二维卷积层。

顺便问一下,什么是卷积层?卷积层将滤波器应用于输入,从而产生激活。代码中的整数 32 指定了参数 filters,它定义了卷积中输出滤波器的数量。第二个参数 kernel_size 指定了二维卷积层的高度和宽度。记得我们在本系列的第六篇文章中已经讨论过一般的激活函数,特别是名为 “relu”(整流线性单元)的激活函数。请注意,二维卷积层还可以指定很多其他参数。但我们的简单示例只指定了我们已经讨论过的三个参数。代码 “layers.MaxPooling2D(pool_size=(2, 2)) “会生成一个用于处理二维空间数据的最大池化层。它通过为输入的每个通道提取输入窗口中的最大值,对输入数据沿空间维度进行向下采样。输入窗口的大小由参数 pool_size 指定,在本例中为 (2, 2)。现在,让我们通过一个简单的例子来了解最大值池的工作原理。请看图 1 所示的代码。

人工智能:关于神经网络的更多信息以及 PyTorch 简介
图 1:二维最大池化层的效果
第 1 行导入 TensorFlow。第 2 行定义了一个名为 data 的二维张量。第 3 行将 data 的维度重塑为 (1,2,2,1)。第 4 行使用 MaxPooling2D 类创建对象 max_pool。请注意,参数 pool_size 为 (2,2)。第 5 行对名为 data 的张量执行最大池化操作并打印结果。由于 data 是一个二维张量,因此 max_pool 只返回一个元素。图 1 也显示了脚本的输出结果。可以看到,返回的值是 44.4,即名为 data 的张量中存储的最大值。

现在,让我们回到模型中第 16 行代码的剩余部分。layer.Conv2D(64,kernel_size=(3,3),activation=”relu”) “代码定义了神经网络的另一个二维卷积层,但这次指定的参数过滤器为 64。同样,代码 “layers.MaxPooling2D(pool_size=(2, 2)) “再次生成了一个最大池化层。layer.Flatten() “代码会生成一个图层,将多维张量作为输入,并将其转换为单维张量。为了更好地理解该层的工作原理,请参考图 2 所示的代码。

第 1 行导入了 Keras 的层 API。第 2 行定义了一个顺序模型。第 3 行使用 add( ) 方法为该模型添加了一个二维卷积层。这行代码还演示了如何逐层构建顺序模型。第 4 行打印该层的输出形状。图 2 显示当前的输出形状为(None, 4, 10, 10)。第 5 行添加了一个扁平层。第 6 行打印扁平化图层的输出形状。图 2 显示该层的输出形状为(无,400)。请注意,该层并不影响数据值,它只是对数据进行了重塑。

人工智能:关于神经网络的更多信息以及 PyTorch 简介

现在,让我们来看看模型第 16 行代码中的剩余代码。layer.Dropout(0.5) “代码创建了一个 Dropout 层。在训练过程中,该层每一步都会以一定的频率将输入单位随机设置为 0。这有助于防止过度拟合。简单来说,过度拟合是数学模型从训练数据中学习过多时面临的问题。这会导致模型无法根据新数据进行预测。在 Dropout 层中,未设置为 0 的输入数据会按 1/(1 – 速率)的系数进行缩放,从而使所有输入数据的总和保持不变。在我们的模型中,参数 rate 被指定为 0.5。layers.Dense(num_classes,activation=”softmax”) “代码创建了一个密集连接的神经网络层。第一个参数称为单位(在我们的示例中由变量 num_classes 提供),定义了这一层的输出维度。请注意,在我们的模型中,变量 num_classes 的值是 10,因为我们要对 0 到 9 的十进制数字进行分类。此外,我们使用的激活函数不是 “relu”,而是 “softmax”,这是一个稍微复杂的激活函数。请阅读维基百科上题为 “Softmax 函数 “的文章,以便更好地理解这个激活函数。最后,第 16 行代码中的 Sequential 类返回的生成模型被存储在一个名为 model 的对象中。因此,我们的模型总共有七层。代码的第 17 和 18 行定义了模型的批量大小和历时大小。

现在,请看用于开发模型的第 19 行代码,如下所示。

model.compile(loss=”categorical_crossentropy”, optimizer=”adam”, metrics=[“accuracy”])
])
让我们试着理解一下上面这行代码。在开始训练模型之前,我们需要使用方法 compile( ) 配置训练过程。编译( )方法有三个参数。它们是:损失、优化器和度量。损失函数是模型试图最小化的目标。损失函数包括均方误差(mean_squared_error)、绝对均方误差(mean_absolute_error)、绝对均方误差百分比(mean_absolute_percentage_error)、对数均方误差(mean_squared_logarithmic_error)、铰链(hinge)、二元交叉熵(binary_crossentropy)、分类交叉熵(categorical_crossentropy)、泊松(poisson)、余弦接近度(cosine_proximity)等。在我们的模型中,我们使用了名为分类交叉熵的目标函数。它用于优化分类模型。可供选择的优化器包括 SGD、RMSprop、Adagrad、Adadelta、Adam、Adamax、Nadam 等。在我们的模型中,我们使用了名为 “adam”(亚当)的优化器。Adam 是一种基于梯度的一阶优化算法,适用于随机目标函数。关于 Adam 的详细讨论超出了本教程的范围。最后,度量是用来衡量模型性能的函数。在我们的模型中,我们将 “准确度 “作为衡量指标。该指标计算的是预测结果与标签结果相等的频率。正是因为包含了这一指标,我们才能在处理测试数据时打印出模型的准确度。除了准确度指标,还有其他指标,如概率指标、回归指标、图像分割指标等。

现在,请看下图中用于开发模型的第 20 行代码。

model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_split=0.1)
让我们试着理解上面这行代码。以下参数会传递给 fit( ) 方法。变量 x_train 包含训练数据。训练数据可以是 NumPy 数组或 TensorFlow 张量。变量 y_train 包含目标数据。目标数据也可以是一个 NumPy 数组或一个 TensorFlow 张量。指定批次大小和历时次数的参数也会传递给 fit( ) 方法。参数 validation_split 用于确定训练数据中用作验证数据的部分。在我们的模型中,该参数的指定值为 0.1。训练完成后,该模型会保存在我们的系统中,这样就可以避免将来不必要的训练。之后,我们会使用测试数据来检验训练出的模型的准确性。最后,我们的模型可用于对新的手写数字图像进行预测。至此,关于第一个训练好的模型的讨论就结束了。

使用 scikit-learn 进行无监督学习
我们知道,机器学习的两个重要范式是监督学习和无监督学习。虽然没有这两种模式流行,但还有其他范式,如半监督学习和强化学习。但到目前为止,我们在本系列中的讨论完全基于监督学习和无监督学习。虽然我们讨论了无监督学习,但迄今为止,我们一直非常重视线性回归和分类等有监督学习算法。

现在,是时候更多地讨论无监督学习了,它是一种使用无标签数据的学习方法。与有监督学习一样,无监督学习也有聚类、降维等不同算法。在本文中,我们将重点讨论聚类。聚类是对一组对象进行分组,使同组对象之间的关联度高于其他组对象。有许多不同的聚类算法–K-Means 聚类、亲和传播聚类、均值移动聚类、光谱聚类、分层聚类、DBSCAN 聚类、OPTICS 聚类等。本文将使用 scikit-learn 库实现 K-Means 聚类。

K-Means 聚类算法首先选择 K 个随机点作为聚类中心。待分组的对象会被分配到随机选择的 K 个聚类中的一个。根据分配给每个聚类的对象数量,反复计算新的聚类中心,直到对象的分组趋于稳定。现在,让我们熟悉一下使用 scikit-learn 实现 K-Means 聚类的 Python 脚本(如下所示)。由于程序比较庞大,为了更好地理解,这里将逐部分进行解释。为了便于解释,在程序中添加了行号。

1. import numpy as np
2. from matplotlib import pyplot as plt
3. from sklearn.datasets import make_          blobs
4. from sklearn.cluster import KMeans
5. X, y = make_blobs(n_samples=200,            centers=2, n_features=2, cluster_       std=0.5, random_state=0)
6. plt.scatter(X[:,0], X[:,1])
7. plt.show( )

让我们试着理解上述几行代码。第 1 和第 2 行导入了 NumPy 和 Matplotlib。第 3 行导入 make_blobs() 方法。第 4 行导入 KMeans() 类。第 5 行调用 make_blobs( ) 方法生成用于聚类的各向同性高斯 Blobs。以单个实体形式存储的二进制数据集合称为 blob(二进制大对象)。前面两句话是什么意思呢?在这个例子中,我们没有使用实际数据,而是生成样本数据来测试 K-Means 聚类算法。但与本系列中的许多其他场合不同的是,我们这次生成的不是随机数据。生成的样本数据取决于我们传递给 make_blob( ) 方法的参数。在这个示例中,我们采集了 200 个样本(参数 n_samples),只有两个中心(参数 centers)。参数 n_features 决定了生成数据集的列数或特征数。由于我们要在二维平面上绘制生成的数据,因此 n_features 至少应为 2。 参数 cluster_std 用于确定聚类的标准偏差。本例中为 0.5。参数 random_state 决定了创建数据集的随机数生成方式。方法 make_blob( ) 返回生成的样本(本例中存储在数组 X 中)和每个样本的聚类成员身份的整数标签(本例中存储在 y 中)。最后,第 6 和第 7 行将生成的样本数据绘制并显示在二维平面上。

人工智能:关于神经网络的更多信息以及 PyTorch 简介
图 3 显示了生成的样本数据图。

现在我们有了必要的数据,让我们试着从这些数据中识别群集。下面几行代码就可以做到这一点。

8.  kmeans = KMeans(n_clusters=2,               init=’k-means++’, max_iter=1000,            random_state=0)
9.  predict_y = kmeans.fit_predict(X)
10. plt.scatter(X[:,0], X[:,1])
11. plt.scatter(kmeans.cluster_centers_     [:, 0], kmeans.cluster_centers_
    [:, 1], s=500, c=’green’)
12. plt.show( )

现在,让我们试着理解上述几行代码。第 8 行调用 KMeans 类创建了一个名为 kmeans 的对象。让我们讨论一下传递给该类的参数。参数 n_clusters 固定了要形成的聚类数量以及要生成的聚类中心数量。参数 init 决定初始化的方法。参数 init 有两个选项,分别是 “k-means++”和 “随机”。该参数决定如何确定聚类中心。我们选择了 “k-means++”,因为它在寻找聚类中心时收敛速度更快。参数 max_iter 决定 K-Means 算法单次执行的最大迭代次数。本例中为 1000 次。参数 random_state 决定初始化聚类中心时生成的随机数。第 9 行使用 KMeans() 类的 fit_predict( ) 方法计算聚类中心,并预测样本数据中每个样本所属的聚类。第 10 行再次绘制生成的样本数据。第 11 行用绿色绘制聚类中心。最后,第 12 行显示绘制的图像。图 4 显示了生成的样本数据和确定的聚类中心。这样,我们就实现了第一个简单的无监督学习算法。

人工智能:关于神经网络的更多信息以及 PyTorch 简介

图 4:通过 K-Means 聚类确定的聚类中心

PyTorch 简介
现在让我们来熟悉一下 PyTorch,这是一个基于 Torch 库的强大机器学习框架。Torch 是一个开源机器学习库,也是一个基于 Lua 编程语言的科学计算框架。PyTorch 是在修改后的 BSD 许可下发布的免费开源软件。PyTorch 可以在 CPU 模式和 GPU 模式下工作。但为了使用 PyTorch 的 GPU 模式,我们需要在系统中安装 Nvidia 显卡和 CUDA 平台。和以前一样,PyTorch 的安装将由 Anaconda Navigator 负责。让我们先讨论一个使用 PyTorch 的简单 Python 脚本。请看图 5 所示的 Python 脚本。

人工智能:关于神经网络的更多信息以及 PyTorch 简介
图 5:PyTorch 的初步介绍
我们已经讨论过张量以及如何使用 TensorFlow 创建张量。我们也可以使用 PyTorch 创建张量。现在,让我们试着理解图 5 所示的 Python 脚本,它使用 PyTorch 创建了一个张量。第 1 行导入了 PyTorch 库。第 2 行定义了一个名为 val 的二维列表。第 3 行将列表 val 转换为名为 ten 的张量。第 4 行打印张量 ten 的内容。图 5 也显示了脚本的输出。请注意,即使转换为张量 ten 后,列表 val 中的值仍保持不变。最后,第 5 行打印了张量 ten 的类型,其类型为 torch.Tensor

图 6 显示了一个用随机值生成张量的 Python 脚本。脚本的第 1 行使用方法 rand( ) 生成一个 3×3 矩阵,并将其存储在名为 random_tensor 的张量中。第 2 行打印张量 random_tensor 的内容。脚本的输出也如图 6 所示。请注意,由于我们使用 rand( ) 方法生成随机张量,因此每次迭代时张量的内容都会发生变化。最后,第 3 行显示 random_tensor 的类型也是 torch.Tensor。

人工智能:关于神经网络的更多信息以及 PyTorch 简介
图 6:随机张量
也可以将 NumPy 数组转换为 PyTorch 张量。第 1 行导入 NumPy。第 2 行创建一个二维 NumPy 数组,并将其存储在名为 val 的变量中。第 3 行打印 val 的类型。图 7 也显示了脚本的输出。可以看出,val 的类型是 numpy.ndarray(NumPy 数组)。第 4 行使用 from_numpy( ) 方法将数组 val 转换为 PyTorch 张量,并将其存储在名为 ten 的变量中。第 5 行打印变量 ten 的类型。注意 ten 的类型是 torch.Tensor。最后,第 6 行打印了张量 ten 的内容。张量 ten 中的值与数组 val 中的值相同。在本系列的下一篇讨论自然语言处理的文章中,我们将再次讨论 PyTorch。

人工智能:关于神经网络的更多信息以及 PyTorch 简介

图 7:数组到张量的转换
现在,是时候结束本文了。在本文中,我们对神经网络有了更多的直观认识。此外,我们还使用 scikit-learn 学习了更多关于无监督学习的知识。我们还与 PyTorch 进行了首次互动。在本系列有关人工智能和机器学习的下一篇文章中,我们将继续探索模型训练和神经网络。自然语言处理(NLP)是人工智能和机器学习的一个重要领域。不过,在本系列文章中,我们还没有讨论任何有关基于人工智能的 NLP 的内容。因此,在下一篇文章中,我们将讨论使用 PyTorch 的 NLP,并熟悉 NLTK(自然语言工具包),这是一个专门用于 NLP 的 Python 库。

转自 AI: More About Neural Networks and an Introduction to PyTorch (opensourceforu.com)

华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

Editor, Kai

快科技2月4日消息,在今年1月的鸿蒙生态千帆启航仪式上,华为HarmonyOS NEXT鸿蒙星河版正式面向开发者开放申请。

日前,“定焦数码”等多位数码博主表示,自己已经收到通过HarmonyOS NEXT开发者预览版Beta招募的审核短信。

华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

短信内容显示,预计2月下旬推送升级。

华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

华为还提醒开发者,提前做好数据备份,并严格遵守《保密协议》各项条款。

据悉,HarmonyOS NEXT开发者预览版在1月18日开始进行OTA推送,预计将在3月底之前推送完毕。

华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

由于将不再兼容安卓开源应用,仅支持鸿蒙内核和系统的应用,因此HarmonyOS NEXT开发者预览版也被称为“纯血鸿蒙”。

为何华为将HarmonyOS NEXT命名为“鸿蒙星河版”?其寓意是点点星光汇聚成璀璨星河,联手广大开发者来打造鸿蒙生态完全体。

按照官方计划,鸿蒙星河版将在2024年第二季度推出开发者Beta版,在2024年第四季度推出商用版。

商用版发布后,普通消费者将能体验到原生鸿蒙生态,值得期待。

【本文结束】如需转载请务必注明出处:快科技

责任编辑:拾柒

转自 华为鸿蒙星河版来了 华为提醒开发者2月下旬推送升级 注意保密!

基于纯 KDE Plasma 6 环境的 KaOS Linux 2024.01 发布

Editor, Kai

基于纯 KDE Plasma 6 环境的 KaOS Linux 2024.01 发布

在万众期待的 KDE Plasma 6 桌面环境于本月晚些时候推出之前,独立开发的 KaOS Linux 发行版背后的开发团队发布了一个新的 ISO 版本,为 2024 年拉开了序幕。

“你将在这个 ISO 中看到的是一个纯粹的 Plasma 6 环境。

KDE Plasma 6马上就要发布了,从2024年2月28日起,我们就能享受到它的新功能和改进,但KaOS Linux开发人员在他们受Arch Linux启发的发行版上走在了游戏的前面,他们今天发布了一个新的ISO,运行Plasma 6、Frameworks 6和KDE Gear 24.02的第二个候选发布(RC)版本。

开发人员说:”差不多 15 个月前,我们开始全面迁移到基于 Frameworks 6 和 Plasma 6 的发行版。”尽管如此,KaOS 已经在其发布的许多快照 ISO 中发布了所有从 Frameworks 6 分支移植的应用程序,为迁移做好准备。用户已经习惯于在 Frameworks 5 / Plasma 5 版本中看到的几乎所有应用程序都可以作为 Frameworks 6 / Plasma 6 的移植版本使用。
即使 Plasma 6 将于 2 月 28 日发布,大多数滚动发布的发行版(如 Arch Linux 或 openSUSE Tumbleweed)也需要一段时间才能将其打包并向用户推送大规模更新。不过,如果你等不及了,现在就可以下载并安装 KaOS Linux 2024.01,并在 2 月 28 日之前更新你的安装,率先运行 KDE Plasma 6。

如果你喜欢的应用程序还没有为 Plasma 6 做好准备,KaOS Linux 还附带了 KDE Frameworks 5,让你能在 KDE Plasma 6 环境中使用它们。另一方面,开发人员表示,依赖于 KDE Plasma 5 某些部分的应用程序将不会出现在 KaOS 软件仓库中,直到它们被移植并准备好供日常使用为止。
在引擎盖下,KaOS Linux 2024.01 版本采用了长期支持的 Linux 6.6 LTS 内核系列,并拥有各种更新组件,包括 FFmpeg 6、Boost 1.83.0/ICU 74.1 栈、LLVM/Clang 17.0.6、systemd 254.9、Python 3.10.13、Util-Linux 2.39.3、IWD 2.13、MariaDB 11 和 Postgresql 16。

Download KaOS 2024.01

转自 KaOS Linux 2024.01 Released with a Pure KDE Plasma 6-Based Environment – 9to5Linux