-
转载自:https://openeuler.org/zh/blog/luoyuzhe/002History-of-Linux-kernel-1/002History-of-Linux-kernel-1.html 作者:罗宇哲正文:作者:罗宇哲,中国科学院软件研究所智能软件研究中心openEuler是基于Linux 内核的企业级Linux服务器操作系统平台的开源社区发行版。openEuler支持鲲鹏架构,可运行在TaiShan服务器上。本技术连载将会从理论基础、源码分析和实操方法三个方面来比较全面地介绍内核编程与应用编程的基础知识,到2020年8月之前主要介绍内核编程部分。通过本连载的介绍,您将对openEuler内核编程和应用编程的理论和实践知识有一个基本的了解。本小节将从Linux内核发展史出发,带您走进openEuler的世界,一起学习操作系统的基础知识和openEuler内核的技术细节。一、Linux内核发展简史1991年,刚刚过完21岁生日的芬兰赫尔辛基大学计算机系单身狗Linus负债DIY了一台性能彪悍的计算机。他准备用这台计算机运行在操作系统课上学会的Minix操作系统并黑进学校性能更加强大的计算机系统来上网或者看新闻[1]。然而,Minix系统的价格让Linus望而却步,且当时Minix系统的协议只支持教学用途,于是这个小伙子决定开发一套自己的操作系统[2]。有三分之一的国土在北极圈内的芬兰冬季严寒而漫长,这给了Linus充分的时间构建自己的系统。在独自开发操作系统的漫长的日子里,只有学校每周三晚上的party给Linus的生活带来一点亮色,但他很快因为没有女伴而放弃了party并沉迷OS无法自拔。1991年9月17日,Linux内核(当时叫Freax)的0.01版被上传至FTP服务器,从此拉开了一个传奇的序幕……从0.01版的内核开始,Linux内核经过不断迭代成熟,从最初的一万行左右的代码成长至今天千万行级的巨无霸。第一个版本只是一个内核。为了有一个工作系统,还需要一个shell、编译器、库等等。这些全部来自其他GNU软件。一年后的1992年,第一个Linux发行版诞生了。到今天为止,著名的发行版包括Debian、Ubuntu、RedHat Enterprise Linux和Fedora等。下表简要列出了迄今为止各版本内核的一些更新情况和发行日期[4]:内核版本号时间内核发展情况0.001991.2-4两个进程分别显示AAABBB0.011991.9第一个正式向外公布的Linux内核版本0.021991.10.5LinusTorvalds将当时最初的0.02内核版本发布到了Minix新闻组,很快就得到了反应。LinusTorvalds在这种简单的任务切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux的第一个稳定的工作版本。0.031991.10.50.101991.10Linux0.10版本内核发布,0.11版本随后在1991年12月推出,当时它被发布在Internet上,供人们免费使用。0.111991.12.8基本可以正常运行的内核版本0.121992.1.15主要加入对数学协处理器的软件模拟程序0.95(0.13)1992.3.8开始加入虚拟文件系统思想的内核版本0.961992.5.12开始加入网络支持和虚拟文件系统0.971992.8.10.981992.9.290.991992.12.131.01994.3.14Linux1.0版本内核发布,使用它的用户越来越多,而且Linux系统的核心开发队伍也建起来了。1.21995.3.72.01996.2.92.21999.1.262.42001.1.4Linux 2.4.0版本内核发布。2.62003.12.17Linux 2.6版本内核发布,与2.4内核版本相比,它在很多方面进行了改进,如支持多处理器配置和64位计算,它还支持实现高效率线和处理的本机POSIX线程库(NPTL)。实际上,性能、安全性和驱动程序的改进是整个2.6.x内核的关键。2.6.152006Linux 2.6.15版本内核发布。它对IPv6的支持在这个内核中有了很大的改进。2.6.302009.6改善了文件系统、加入了完整性检验补丁、TOMOYOLinux安全模块、可靠的数据报套接字(datagramsocket)协议支持、对象存储设备支持、FS-Cache文件系统缓存层、nilfs文件系统、线程中断处理支持等等。2.6.322009.12增添了虚拟化内存de-duplication、重写了writeback代码、 改进了Btrfs文件系统、添加了ATIR600/R7003D和KMS支持、CFQ低传输延迟时间模式、perftimechart工具、内存控制器支持softlimits、支持S+Core架构、支持IntelMoorestown及其新的固件接口、支持运行时电源管理、以及新的驱动。2.6.342010.5添加了Ceph和LogFS两个新的文件系统,其中前者为分布式的文件系统,后者是适用于Flash设备的文件系统。Linux Kernel 2.6.34的其他特性包括新的Vhostnet、改进了Btrfs文件系统、对Kprobesjump进行了优化、新的perf功能、RCUlockdep、GeneralizedTTLSecurityMechanism(RFC5082)及privateVLANproxyarp(RFC3069)支持、asynchronous挂起恢复等等。2.6.362010.10Tilera处理器架构支持、新的文件通知接口fanotify、Intel显卡上实现KMS和KDB的整合、并行管理工作队列、Inteli3/5平台上内置显卡和CPU的智能电源管理、CIFS文件系统本地缓存、改善虚拟内存的层级结构,提升桌面操作响应速度、改善虚拟内存溢出终结器的算法、整合了AppArmor安全模型(注:与SELinux基于文件的标注不同,AppArmor是基于路径的)。2.6.372011.1.4Linux2.6.37包含了对Ext4和XFS的几个SMP可伸缩性改进,一个在禁用大内核锁的情况下编译内核的选项,对每个cgroup IO限制的支持,一个基于Ceph集群文件系统的网络设备,几个Btrfs改进,更有效的静态探测,对探测模块的性能支持和可访问列表本地和全局变量、使用LZO压缩的图像休眠、IPv4支持的PPP、一些网络微优化和许多其他小的更改、改进和新的驱动程序。2.6.382011.3.14此版本增加了对自动进程分组(在新闻中称为“wonder patch”)的支持、VFS的显著可扩展性改进、Btrfs LZO压缩和只读快照、对B.a.T.M.a.N.mesh协议(有助于在发生自然灾害、军事冲突或互联网审查时提供网络连接,)、透明的大页面支持(不使用hugetblfs)、在多个cpu上自动传播即将到来的网络流量、支持AMD Fusion apu、许多驱动程序和其他更改。2.6.392011.5.18EXT4 SMP的可伸缩性改进,初始TCP拥塞窗口的增加,一种称为Unicore-32的新架构,一种允许创建称为IPset的网络资源组的功能,Btrfs更新,一种允许将崩溃信息存储在固件中的功能,以便在重新引导后恢复它,通过handle syscalls打开,perf更新,以及许多其他的小变化和新的驱动。3.02011.7.21除了一个新的版本编号方案,Linux3.0还有几个新的特性:Btrfs数据清理和自动碎片整理,XenDOM0支持,ECHO中没有特权的ICMP,WakeonWLAN,Berkeley包过滤器JIT过滤,一个类似memcached的页面缓存系统,一个对sendmsg()调用和setns()进行批处理的sendmsg()系统调用,一个系统调用允许更好地处理轻量级虚拟化系统,如容器。增加了新的硬件支持:例如,Microsoft Kinect、AMD Llano Fusion APU、Intel iwlwifi 105和135、Intel C600串行连接scsi控制器、Ralink RT5370 USB、多个Realtek RTL81xx设备或Apple iSight网络摄像头。增加了许多其他驱动和小的改进。3.12011.10.24支持OpenRISC 开源 CPU,对写回限制的性能改进,slab分配器中的一些加速,新的iSCSI实现,支持用于移动支付的近场通信芯片,通用软件RAID层中的坏块管理,一个新的用于电源管理的“cpupowerutils”用户空间实用程序、默认情况下在ext3中启用的文件系统屏障、Wii遥控器支持和新的驱动程序以及许多小的改进。3.22012.1.4此版本包括对大于4KB和小于1MB的ext4块的支持,这将提高大文件的性能;btrfs已更新为更快的清理、关键文件系统元数据的自动备份和用于手动检查文件系统的工具;进程调度器添加了对设置CPU时间上限的支持;在大量写操作的情况下,桌面的响应能力得到了改进,TCP被更新为包括一个算法,该算法可以在丢失数据包后加快连接的恢复;分析工具“perf-top”增加了对任务和库的实时检查的支持,并可以看到带注释的程序集代码;设备映射器增加了对任务和库的支持对于存储的“精简配置”,我们增加了一个新的架构:高通公司的Hexagon DSP处理器。在这个版本中还提供了其他驱动程序以及一些小的改进和修复。3.32012.3.18这个版本最重要的特点是合并了Android项目的内核代码。但是,它还包括对新体系结构(TI C6X)的支持、大大改进的平衡和Btrfs中不同RAID配置文件之间的重排能力,以及一些网络改进:为虚拟化场景设计的虚拟交换机实现(Open vSwitch),一种比“绑定”驱动程序更快、更可扩展的替代方案,对网络设备的传输队列进行可配置的限制,以抵抗缓冲区膨胀,网络优先级控制组和每个cgroup的TCP缓冲区限制。也有许多小功能和新的驱动程序和修复程序也可用。3.42012.5.20此版本包括几个Btrfs更新:支持大于4KB的元数据块,大大提高了元数据性能,更好的错误处理和更好的恢复工具;还有一个新的X32 ABI,它允许在64位模式下运行带有32位指针的程序;对GPU驱动程序的几项更新:Nvidia GeForce 600“开普勒”的早期模式设置,AMD Radeon 7xxx和AMD Trinity APU系列的支持,以及Intel Medfield graphics的支持;还支持x86 CPU驱动程序自动robing,一个设备映射器目标,它存储块的加密散列以检查入侵,另一个目标是使用外部只读设备作为精简配置的LVM卷的源,一些性能改进,如GTK2报表GUI和新的“Yama”安全模块。也有许多小功能和新的驱动程序和修复程序也可用。3.52012.7.21此版本包括对Ext4中的元数据校验和的支持,使用诸如StaseTAP或PERP之类的工具进行性能分析的用户空间探针,沙盘机制允许过滤SysCurts,设计了一种新的网络队列管理算法,用于打击Buffer-BuLAT,支持检查点和恢复TCP连接,支持TCP早期重传(RFC 5827)、支持Android风格的机会挂起、btrfs I/O故障统计以及通过Firewire和USB的SCSI。许多小功能和新的驱动程序和修复程序也可用。3.62012.9.30这个Linux版本在Btrfs中包含了一些新特性:子卷配额、配额组和快照差异(也称为“发送/接收”)。它还包括支持同时挂起到磁盘和内存、TCP“快速打开”模式、“TCP小队列”功能以防止缓冲区膨胀;支持通过NFS/NBD进行安全交换、更好的Ext4配额支持、支持PCIe D3cold电源状态;以及VFIO,允许从客户机驱动程序安全访问裸机主机设备。许多小功能和新的驱动程序和修复程序也可用。3.72012.12.10此Linux版本包括对ARM 64位体系结构的支持,ARM支持使用同一内核引导到不同系统,签名的内核模块,Btrfs支持使用chattr和faster fsync()在每个文件的基础上禁用写时拷贝,这是一个模仿strace的新“perf trace”工具,支持服务器端的TCP快速打开功能、实验性的SMBv2协议支持、稳定的NFS4.1和并行的NFS支持、允许通过UDP传输第2层以太网数据包的新隧道协议,以及支持Intel“管理器模式访问保护”(SMAP)安全功能。许多小功能和新的驱动程序和修复程序也可用。3.82013.2.18这个Linux版本在Ext4中支持在inode中嵌入非常小的文件,这大大提高了这些文件的性能并节省了一些磁盘空间。还有一个新的Btrfs特性,允许快速替换磁盘,一个为ssd优化的新文件系统F2FS,支持文件系统挂载,UTS,IPC,PIDs,以及为没有特权的用户提供的网络堆栈名称空间,内存资源控制器中的内核内存,XFS中的日志校验和,改进的NUMA策略重新设计和取消了对386处理器的支持。许多小功能和新的驱动程序和修复程序也可用。3.92013.4.28这个Linux版本包括对实验性RAID5/6模式的支持,以及对Btrfs中快照共享的文件进行更好的碎片整理;对Android SDK使用的“金鱼”模拟器的支持,能够将固态硬盘存储作为缓存设备;两个新的架构端口:Synopsys ARC 700和Meta Imagination处理器;ARM中的KVM虚拟化支持体系结构,一个Intel驱动程序,它“注入”空闲状态以提高每瓦特的性能,支持Chrome OS笔记本电脑,一个新的挂起电源状态,并删除过时的配置实验配置选项。许多小功能和新的驱动程序和修复程序也可用。3.102013.6.30此版本增加了对bcache的支持,它允许使用SSD设备缓存来自其他块设备的数据;Btrfs格式的改进,使专用于存储数据块信息的树小30-35%;支持XFS元数据校验和自描述元数据、无时钟多任务、SysV IPC,rwlock和mutex可伸缩性改进,减少短事务尾部延迟的TCP尾部丢失探测算法,MIPS体系结构中的KVM虚拟化支持,混合不同类型cpu的ARM big.LITTLE体系结构,跟踪快照,新驱动程序和许多小改进。3.112013.9.2此版本增加了对一个新的O_TMPFILE open(2)标志的支持,该标志允许轻松创建安全的临时文件,自r600以来所有Radeon GPU的实验性动态电源管理,对NFS4.2和标记为NFS的SELinux的初步支持,对Lustre分布式文件系统的实验性支持,对程序写入的页的详细跟踪,ARM对ARM64的巨大页面支持和KVM/Xen支持,SYSV IPC消息队列可伸缩性改进,低延迟网络轮询机制,压缩交换缓存,新驱动程序和许多小改进。3.122013.11.2此版本增加了对Btrfs中离线重复数据消除的支持,双GPU笔记本电脑中的自动GPU切换,对AMD Radeon图形的性能提升,更好的RAID-5多核性能,改进了对内存不足情况的处理,改进了VFS路径名分辨率的可扩展性,改进了无时间多任务模式,在图形DRM层中独立的模式设置和渲染设备节点,改进了虚拟化客户机的锁定性能,XFS目录递归可伸缩性改进,IPC可伸缩性改进,tty层锁定改进,新驱动程序和许多小的改进。3.132014.1.19此版本包括nftables,iptables的后续产品,为高性能固态硬盘设计的块层的改进,英特尔RAPL设备功耗上限框架,改进的squashfs性能,默认启用的AMD Radeon电源管理和自动Radeon GPU交换,改进的NUMA性能,改进的性能与庞大的网页工作负载,TCP快速开放默认启用,支持NFC支付,支持高可用性无缝冗余协议,新的驱动程序和许多其他小的改进。3.142014.5.30此版本包括实时任务的截止时间任务调度策略、内存压缩机制现在被认为是稳定的、锁定验证器到用户空间的端口、存储属性(如Btrfs中每个inode的压缩)的能力、对跟踪事件的触发器支持、对用户空间探测的改进,内核地址空间随机化,TCP自动合并某些类型的连接,一个新的网络包调度程序来对抗缓冲区膨胀,新的驱动程序和许多其他小的改进。3.152014.6.8这个版本在有硬盘的系统中恢复得更快,它增加了对原子交叉重命名两个文件的支持,它增加了新的fallocate(2)模式,允许删除一个文件的范围或将其设置为零,它增加了一个新的文件锁定API,内存管理更好地适应工作集大小的变化,它提高了FUSE写性能,它还增加了支持zram中的LZ4算法,允许从32位EFI固件加载64位内核,增加了对即将加入英特尔CPU的AVX-512矢量指令的支持,增加了新的驱动程序和许多其他小改进。3.162014.8.3此版本通过支持动态切换Nvidia卡上的时钟频率来提高性能,它还支持将用户空间内存映射到Intel设备上的GPU,XFS有一个免费的inode btree用于更快的inode分配,ARM64内核可以用作EFI存根,IPv6支持TCP Fast Open,一些radeon设备有更好的性能得益于改进的电源管理支持,支持Intel Cherryview图形,控制组获得了可选的统一层次结构模式,还添加了新的驱动程序和许多其他小的改进。3.172014.10.5此版本增加了对IP上USB设备共享的支持,对Xbox One控制器的支持,对Apple的thunderbolt的支持,一个新的sealing API,它限制了对共享内存文件描述符的操作,使开发人员可以更容易地进行共享内存编程,支持perf trace中的页面故障跟踪,在kexec中只支持使用有符号的内核、getrandom()系统调用以生成更安全的随机数以及图形“渲染节点”不再是实验性的。也有新的驱动和许多其他小的改进。3.182014.12.7此版本增加了对overlayfs的支持,它允许在单个装载点组合两个文件系统;支持将用户空间内存映射到Radeon设备上的GPU,一个bpf()系统调用,它允许上载可附加到事件的类似bpf的程序;一个为数据中心优化的TCP拥塞算法;Geneve虚拟化封装,支持在UDP上嵌入IP协议,通过批处理套接字缓冲区提高网络性能,以及可选的多队列SCSI支持。也有新的驱动和许多其他小的改进。3.192015.2.8此版本增加了对Btrfs清理和用RAID 5和6快速替换设备的支持,对帮助阻止缓冲区溢出的Intel内存保护扩展的支持,对AMD HSA体系结构的支持,对调试ARM Coresight子系统的支持,对Altera Nios II CPU体系结构的支持,用于路由和交换卸载的网络基础设施、有助于支持Beaglebone或Raspberry Pi等消费者开发板上的扩展总线的设备树覆盖、NFSv4.2中对穿孔和预分配的支持,以及Android活页夹已从暂存区移到稳定区。也有新的驱动和许多其他小的改进。4.02015.4.12此版本增加了对内核代码进行实况补丁的支持,主要目的是在不重启的情况下修复安全更新;DAX,当文件系统在具有持久内存存储的系统上运行时,避免使用内核缓存的方法;KASAN,一种动态内存错误检测器,允许在空闲和越界bug之后找到使用;lazytime,relatime的一种替代方法,它只会在缓存中进行访问、修改和更改时间更新,并有机会写入磁盘;允许overlayfs具有多个较低层,支持并行NFS服务器体系结构;以及dm-crypt CPU可伸缩性的改进。也有新的驱动和许多其他小的改进。4.12015.6.21此版本增加了对Ext4加密的支持,对管理群集raid阵列的实验性支持,一个记录所有对设备的写入并允许重放它们的新设备映射器目标,一个在块设备中打开持久性内存系统中的内存的驱动程序,对禁用多用户支持的支持,支持基于路径标签而不是长网络地址路由数据包的多协议标签交换,允许将BPF程序附加到kprobes以进行更好的探测,ACPI支持ARM64体系结构,以及允许改进软件rasterizer的虚拟GEM驱动程序。也有新的驱动和许多其他小的改进。4.22015.8.30此版本为现代AMD Radeon硬件添加了一个新的amdgpu驱动程序,一个使用客户机内部主机GPU功能的virtio GPU驱动程序,新的原子模式设置图形API已声明稳定,支持堆叠安全模块,更快和更可扩展的自旋锁实现,cgroup写回支持,以及重新引入H8/300架构。也有新的驱动程序和许多其他小的改进。4.32015.11.1此版本删除ext3文件系统,并保留Ext4作为主Ext文件系统,Ext4还可以挂载ext3文件系统;它还添加了userfaultfd(),一个用于处理用户空间中的页面错误的系统调用;membarrier(),一个用于在一组线程上发出内存屏障的系统调用;一个用于限制cgroup中的PID数量的PID控制器,更易于使用的“环境”功能;空闲页跟踪,更精确地跟踪应用程序使用的内存;支持IPv6标识符定位器寻址;网络轻量级通道、虚拟路由和转发精简版支持,以及许多其他改进和新驱动程序。4.42016.1.10此版本增加了对虚拟GPU驱动程序中3D支持的支持,该驱动程序允许虚拟化客户机中的3D硬件加速图形;对直接I/O和异步I/O的循环设备支持,该支持节省内存并提高性能;对开放通道ssd的支持,该设备共享Flash转换层的职责在操作系统中,TCP侦听器处理是完全无锁的,允许更快和更可扩展的TCP服务器;MD层中的日志RAID5修复了RAID写入漏洞;eBPF程序现在可以由没有特权的用户运行,它们可以被持久化,perf还增加了对eBPF程序的支持;一个新的mlock2()系统调用,允许用户请求在页面错误时锁定内存;并阻止轮询支持,以提高高端存储设备的性能。也有新的驱动和许多其他小的改进。4.52016.3.13此版本添加了一个新的copyfilerange(2)系统调用,允许在不通过用户空间传输数据的情况下复制文件;现代Radeon GPU的实验性Powerplay电源管理;Btrfs可用空间处理的可扩展性改进;支持GCC的未定义行为Sanitizer(-fsanitize=Undefined);设备映射器的verity目标中的转发错误更正支持;在madvise()中支持MADVFREE标志;新的cgroup统一层次结构被认为是稳定的;SOREUSEPORT UDP套接字的可伸缩性改进;epoll的可伸缩性改进,以及内存控制器中套接字的更好的内存计算。也有新的驱动和许多其他小的改进。4.62016.5.15此版本增加了对USB 3.1 SuperSpeedPlus(10 Gbps)的支持、新的分布式文件系统OrangeFS、更可靠的内存不足处理、对Intel内存保护密钥的支持、使应用层协议实现更简单和更快的功能、对802.1AE MAC级加密(MACsec)的支持、对V版的支持BATMAN协议的一个OCFS2在线inode检查器,支持cgroup名称空间,支持pNFS SCSI布局,以及许多其他改进和新的驱动程序。4.72016.7.24此版本增加了对最近RADON RX 480 GPU的支持,支持同一目录中的并行路径名查找,一个新的实验“SeeDuuls'频率调速器,它应该比现有的管理者更快和更精确,支持EFI 'Capsule'升级固件的机制,支持USB/IP中的虚拟USB设备,使模拟的手机像真正的USB设备一样工作;新的安全模块“LoadPin”,确保所有内核模块都从同一个文件系统加载;在ftrace接口中创建事件直方图的接口;支持将BPF程序附加到内核跟踪点;支持调用链perf trace实用程序中的事件,对Android的sync_文件围栏机制的稳定支持,以及许多其他改进和新的驱动程序。4.82016.10.2此版本增加了对在页面缓存中使用透明的大页面的支持,对eXpress Data Path的支持,这是一个高性能、可编程的网络数据路径;对XFS反向映射的支持,它是几个即将推出的功能的构建块;使用强化的usercopy对内存副本进行更严格的检查;支持IPv6安全标签(CALIPSO,RFC 5570);GCC插件支持;virtio vsocks,以方便客户/主机通信;新的Vegas TCP拥塞控制算法;文档已移动到reStructuredText格式,以及许多其他改进和新驱动程序。4.92016.12.11这个版本增加了对共享扩展数据块(cp——reflink支持)和XFS上的写时拷贝支持;虚拟映射的内核栈使内核更加可靠和安全;一个更高效的BPF分析器,使Linux部分地支持Dtrace;基于带宽测量而非数据包丢失的新的可选BBR-TCP拥塞控制算法;使用保护密钥硬件功能的系统调用;对Ara项目中的Greybus总线的支持;用于检测固件引起的延迟的硬件延迟跟踪程序,以及许多其他改进和新的驱动程序。4.102017.2.19此版本增加了对虚拟化GPU的支持,一个用于NUMA系统中缓存行冲突分析的新“perf c2c”工具,一个用于任务调度详细历史记录的新“perf sched timehist”命令,改进的写回管理应该使系统在重写负载下更具响应性,一个新的混合块轮询方法使用更少CPU比纯轮询,支持ARM设备,如Nexus5&6或Allwinner A64,允许将eBPF程序附加到cGroup的功能,一个实验性的MD RAID5写回缓存,支持Intel缓存分配技术,以及许多其他改进和新驱动程序。4.112017.4.30此版本增加了对多队列块层中可插入IO调度程序框架的支持,在关闭write hole的MD RAID5实现中的日志支持,对在SSD中放置的交换进行更可扩展的交换实现,一个新的STATx()系统调用,解决了stat()的缺陷,作为ftrace接口前端的新perf ftrace工具,对实现OPAL存储规范的驱动器的支持,对RFC7609中定义的共享内存通信RDMA协议的支持,所有VGA控制台的持久滚动缓冲区,以及许多新的驱动程序和其他改进。4.122017.7.2此版本包括一个新的BFQ I/O调度程序,它提供了更好的交互体验;它还包括对Radeon RX Vega图形卡的初步支持和对USB Type-C连接器的支持;对实时内核修补功能的改进,对允许关闭RAID5 write hole的Intel IMSM部分奇偶校验日志的支持;支持将OpenChannel ssd公开为设备块,并支持另一个I/O调度程序Kybe,它允许为读写配置延迟目标4.132017.9.3这个版本增加了Ext4对大量目录项的支持,Ext4对64k以下扩展属性的支持,异步I/O的改进,后台写入的错误处理的改进,块层的错误处理的改进,内核TLS加速,以及许多其他改进。4.142017.11.12此版本包括支持x86硬件中更大的内存限制(128PiB虚拟地址空间,4PiB物理地址空间);支持AMD安全内存加密;提供更好内核跟踪和更小内核大小的新放卷机;一种cgroup“线程模式”,允许在一组进程的线程之间分配资源;对zstd压缩算法的支持已添加到Btrfs和Squashfs中;支持从用户内存到套接字的数据零拷贝;更好的异步缓冲I/O支持;支持未来GPU所需的异构内存管理;在某些情况下更好的cpufreq行为;使用PCID CPU特性的更长生命周期的TLB条目;异步非阻塞缓冲读取;以及许多新的驱动程序和其他改进。4.152018.1.28除了处理Meltdown/Spectre的最新代码外,此版本还包括amdgpu驱动程序的模式设置和高级显示功能;改进了对具有SATA积极链路电源管理的系统的电源管理支持;开放RISC-V cpu的端口;对AMD cpu中虚拟内存加密的初始支持;对Intel的支持用户模式指令预防功能;cgroups v2中对CPU控制器的支持;允许直接写入由文件系统管理的持久内存的新mmap(2)标志;以及许多新的驱动程序和其他改进。4.162018.4.1除了处理CPU安全漏洞的最新代码外,此版本还宣布反向映射和reflink功能稳定,membarrier(2)添加了快速支持,SMB3 Direct(RDMA)支持,添加了x86 jailhouse hypervisor,它能够静态地将多核系统划分为多个所谓的单元,支持PowerPC内存保护密钥、AMD安全加密虚拟化的管理程序部分,以及许多新的驱动程序和其他改进。4.172018.6.3此版本增加了对AMD Radeon Vega 12的支持,并在支持的AMD Radeon GPU中默认启用“显示代码”;还添加了内核TLS接收路径;更有效的空闲循环,防止CPU在shallow idle states下花费太多时间;删除了八个未维护的体系结构,另一个,添加了Andes NDS32体系结构;XFS获得了lazytime支持;修改了CPU负载估计;支持Intel Cannonlake gpu并添加了内核内存一致性模型;以及许多新的驱动程序和其他改进。4.182018.8.12此版本包括新的“可重新启动序列”系统调用,它使编写可扩展的用户空间代码变得更容易;对未授权的装载的支持;旨在使用BPF提供netfilter功能的bpfilter项目的开始;零拷贝TCP接收API;对高性能网络的新AF-XDP地址系列的支持;对高通Snapdragon 845 SoC的支持;以及许多新驱动程序和其他改进的支持。4.192018.10.22此版本还增加了:CAKE network queue management用于对抗bufferbloat,其设计初衷是为了从最慢的ISP链路和路由器中挤出最大的带宽和延迟;支持保证cGroup的最小I/O延迟目标;对未来Wi-Fi 6(802.11ax-drafts)的实验性支持;overlayfs用户的内存使用得到了改进;一个实验性的、为只读使用而优化的EROFS文件系统;一个新的异步I/O轮询接口;支持避免对攻击者控制的FIFO或世界上可写的粘性目录中的常规文件的无意写入;支持一个Intel特性,它将部分CPU缓存锁定为一个应用程序;以及许多新的驱动程序和其他改进。4.202018.12.23此版本包括对测量系统负载的新方法的支持;它增加了对未来AMD Radeon Picasso和Raven2的支持,并启用了对Radeon Vega20的非实验性支持;它增加了对C-SKY CPU体系结构和x86 Hygon Dhyana CPU的支持;TLB微优化在某些工作负载中带来了小的性能优势;TCP已经切换到“提前离开时间”模式;一种将memfd区域转换为dma buf的机制允许qemu改进虚拟化图形性能;它还包括针对CPU安全漏洞的最新一轮修复;它还添加了许多新的驱动程序和其他改进。5.02019.3.3此版本包括对energy-aware调度的支持,该调度将任务唤醒到phone中更节能的CPU;它还包括对低功耗设备的adiantum文件系统加密;它增加了对amdgpu驱动程序中AMD Freesync(可变刷新率)的支持;它增加了对UDP中接收卸载和MSG_ZEROCOPY支持的支持;它增加了对ARM指针认证的支持;它增加了对cgroupv2中的cpuset资源控制器(它可以约束任务的CPU和内存节点位置)的支持;它增加了对binderfs的命名空间支持,它允许运行多个android实例;它增加了对btrfs中交换文件的支持;它还增加了许多新的驱动因素和其他改进。5.12019.5.5此版本包括用于异步I/O的高性能接口io_uring;它还增加了fanotify的改进,以提供在大型文件系统上监视更改的可伸缩方式;它增加了一种方法,允许在PID重用的情况下安全地传递信号;持久内存现在可以用作热插拔RAM;Zstd压缩级别可以在Btrfs中配置;它还添加了一个新的cpuidle调控器,比菜单调控器做出更好的电源管理决策;所有32位体系结构都添加了处理y2038问题所需的系统调用;现在可以在没有initramfs的情况下引导到设备映射器设备;而实时补丁增加了对创建累积补丁的支持。一如既往,还有许多其他新的驱动因素和改进。5.22019.7.7此版本包括Sound Open Firmware,这是一个将开源固件引入到DSP音频设备的项目;还包括许多英特尔产品的开放固件。此版本还改进了Pressure Stall Information资源监控,使其可供Android使用;通过新的系统调用重新设计了mount API;BFQ I/O调度程序获得了一些性能改进;新的CLONEPIDFD标志允许CLONE(2)返回PIDFDsend_signal(2)可用的pidfs;Ext4已经获得了对不区分大小写的名称查找的支持;还有一个新的设备映射器目标,它模拟有失败扇区和/或读取失败的设备;已经添加了ARM Mali t4xx和更新的6xx/7xx的开源驱动程序。一如既往,有最新的CPU错误(MDS)和许多其他新的驱动程序和改进。5.32019.9.15此版本包括对AMD Navi gpu的支持;对umwait x86指令的支持,该指令允许进程在短时间内等待而无需spinning loops;一种“利用率限制”机制,用于增强手机中使用的功率不对称cpu的交互性;一个新的PIDFDXOPEN(2)系统调用,完成了让用户处理PID重用问题的工作;在0.0.0.0/8范围内提供了16百万个新的IPv4地址;支持Zaxin x86 CPU;支持英特尔速度选择,以便在Xeon服务器中更容易地进行电源选择;以及支持轻量级管理程序ACRN,这是为嵌入式物联网设备构建的。一如既往,还有许多其他新的驱动和改进。5.42019.11.24此版本包括kernel lockdown mode,旨在加强UID 0和内核之间的边界;virtio fs,一个高性能virtio驱动程序,它允许一个虚拟化的客户机去装载已导出到主机上的目录;fs-verity,用于检测文件篡改,如dm-verity,但是可以在文件上工作,而不是在块设备上工作;dm-clone允许对dm目标进行实时克隆;两个新的madvise()标志用于改进Android上的应用程序内存管理,支持新的Intel/AMD gpu,支持exfat文件系统,并删除EROFS文件系统的实验状态;一个新的haltpoll cpuidle驱动程序和调控器,大大提高了虚拟化客户机在空闲循环中进行客户机端轮询的性能;blk-iocost,一个I/O cgroup控制器,试图更准确地计算I/O的成本。一如既往,还有许多其他新的驱动和改进。由此可见Linux内核不断支持新的功能,不断变得更加的复杂。二、openEuler 特性华为服务器操作系统内部代号为 EulerOS,有近10年的技术积累,已广泛用于华为内部产品配套。同时,华为基于对鲲鹏处理器的深刻理解,在性能、可靠性、安全性等方面对 EulerOS 进行了深度优化。为促进多样性计算产业发展及生态建设,华为将把服务器领域的技术积累进行开源。2019年1月7日华为正式推出了鲲鹏920处理器,并开始着力构建鲲鹏生态。华为开发了基于鲲鹏处理器的TaiShan服务器,并开源了其内部代号为EulerOS的服务器操作系统[8],社区开源版被命名为“openEuler”。openEuler是一款开源操作系统。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。在之后的连载过程中,我们会逐步分析openEuler对ARM架构的支持、进程机制、内存管理机制、文件系统、网络通信、虚拟化与容器技术、系统安全技术、设备驱动程序以及初始化过程,整个连载预计192期,通过本连载的持续学习,您将对openEuler的内核有一个较为细致的了解。为了为读者提供一些实践的机会,本连载在每章之后会有一些对本章知识应用方法的介绍,帮助大家能把知识运用于实际。三、巨人的肩膀其实,除了之前提到的Minix系统外,Linux系统本身也是站在巨人的肩膀上,在它发布之前操作系统就已经经过了长期的发展,下表展现了Linux更深的渊源[7]:时间事件20世纪60年代MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;主机负责运算,而终端负责输入输出。1965年Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了。刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过。(Multics:Multiplexed Information and Computing Service)1969年Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型。因为汇编语言对于硬件的依赖性,因此只能针对特定硬件。这么做只是为了移植一款“太空旅游”的游戏。1973年Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核 。其中90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可。1977年Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution),Bill Joy是Sun公司的创始人。1979年Unix发布System V,用于个人计算机。1984年因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学。1984年Stallman开始GNU(GNU’s Not Unix)项目,创办FSF(Free Software Foundation)基金会。自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权。产品:GCC、Emacs、Bash Shell、GLIBC。1985年为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明。1988年MIT为了开发GUI,成立了XFree86的组织。1991年芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核。1994年Torvalds发布Linux-v1.0。1996年Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅。在上面这张表中,有两个重要的项目对Linux的诞生产生了重要的影响,它们是Unix系统和GNU项目。在下面两篇连载中,我们将简要介绍Unix系统和GNU项目。下图展示了与Linux有关的操作系统发展史:四、结语本小节中我们简要回顾了Linux内核的发展历史。Linux的成功不但让Linus还清了其DIY个人计算机的欠款,而且还让他收获了爱情——一位叫朵芙(Tove)的姑娘向他发来邮件,邀请他去约会。不知道Linus赴约的时候是否知道,邀请他的这个女生曾六次获得芬兰空手道冠军。“朵芙是第一个通过互联网方式接近我的女人,而我干脆就把她娶回了家。”多年以后,Linus回忆这一段经历,十分得意[1]。最后献上一句Linus的话与大家共勉[2]:“做自己喜欢的、并对其他人也有帮助的事情很重要。”参考文献[1]http://tech.sina.com.cn/csj/2019-07-26/doc-ihytcitm4728357.shtml?cre=tianyi&mod=pchp&loc=4&r=0&rfunc=43&tj=none&tr=12[2]https://www.sohu.com/a/251078953_355140[3]https://baijiahao.baidu.com/s?id=1611958048582090280&wfr=spider&for=pc[4]https://blog.csdn.net/xiebingsuccess/article/details/91861871[5]https://www.oschina.net/news/101070/linux-kernel-4-19-released[6]https://kernelnewbies.org/Linux_4.19[7]https://www.cnblogs.com/alantu2018/p/8991158.html[8]http://baijiahao.baidu.com/s?id=1645207733241546990&wfr=spider&for=pc
-
译者:AI研习社(话左)双语原文链接:Top Python Libraries for Deep Learning, Natural Language Processing & Computer Vision请注意,下面的图示由Gregory Piatetsky绘制,每个库都有其类别,按星标和贡献者对其进行绘制,符号大小则以该库在Github上的提交次数的对数表示。图1:深度学习,自然语言处理和计算机视觉的顶级Python库按星级和贡献者数量绘制;按提交数的对数表示相对大小那么事不宜迟 ,下面就是由KDnuggets员工精心挑选的30个可用于深度学习,自然语言处理和计算机视觉顶级Python库。深度学习1. TensorFlow星标:149000,提交数:97741,贡献者:754TensorFlow是针对机器学习的端对端开源平台。它具备综合灵活的工具、库和社区资源,可以帮助研究者推动先进的机器学习技术的发展以及开发者更轻松地开发和发布由机器学习支持的应用。2. Keras星标:50000,提交数:5349,贡献者:864 Keras是由python编写的机器学习API,其运行在机器学习的顶级平台TensorFlow上。3. PyTorch星标:43200,提交数:30696,贡献者:1619 使用Python实现的张量和动态神经网络,并带有强大的GPU加速。4. fastai星标:19800,提交数:1450,贡献者:607 通过利用当下最佳的技术实践,fastai极快地简化了训练过程也加速了神经网络。5. PyTorch Lightning星标:9600,提交数:3594,贡献者:317 针对高性能AI研究的封装轻量版PyTorch。可缩小你的模型,而不是提供小的样板。6. JAX星标:10000,提交数:5708,贡献者:221 Python+NumPy程序的组合变换:区分、向量化、在GPU/TPU上的JIT等等。7. MXNet星标:19100,提交数:11387,贡献者:839 带有动态和突变感知的数据流管理调度程序的轻量、便捷、灵活的分布式/移动机器学习库:支持Python、R、Julia、Scala、Go、JavaScript等等。8. Ignite星标:3100,提交数:747,贡献者:112 可灵活透明地训练评估PyTorch神经网络的高级别库。自然语言处理9. FastText星标:21700,提交数:379,贡献者:47fastText是一个可高效学习单词表意和句子分类的库。10. spaCy星标:17400,提交数:11628,贡献者:482 使用Python和Cython实现的工业级自然语言处理库(NLP)11. gensim星标:11200,提交数:4024,贡献者:361gensim通过使用大型语料库进行主题建模、文档索引和相似性检索。目标受众是自然语言处理(NLP)和信息检索(IR)社区12. NLTK星标:9300,提交数:13990,贡献者:319NLTK——自然语言工具箱——是一整套针对自然语言处理研究和开发的开源Python模块、数据集和教程13. Datasets(Huggingface)星标:4300,提交数:568,贡献者:64用于自然语言处理的使用PyTorch,TensorFlow,NumPy和Pandas工具的快速,高效,开放式数据集和评估指标 14. Tokenizers(Huggingface)星标:3800,提交数:1252,贡献者:30 针对研究和生产的快速顶级的分词器15. Transformers(Huggingface)星标:3500,提交数:5480,贡献者:585Transformers:针对Pytorch和TensorFlow 2.0 的顶级自然语言处理库 16. Stanza星标:4800,提交数:1514,贡献者:19针对很多人类语言的正式标准NLP Python库 17. TextBlob星标:7300,提交数:542,贡献者:24简单,Python风格,文本处理-情感分析,词性标记,名词短语提取,翻译等等。 18. PyTorch-NLP星标:1800,提交数:442,贡献者:15用于PyTorch自然语言处理(NLP)的基础实用工具19. Textacy星标:1500,提交数:1324,贡献者:23 用于执行各种自然语言处理(NLP)任务的Python库,构建在一个高性能spaCy库之上。 20. Finetune星标:626,提交数:1405,贡献者:13 Finetune是一个库,它允许用户利用最新的预训练NLP模型来执行各种下游任务。 21. TextHero星标:1900,提交数:266,贡献者:17 文本预处理、表示和可视化,从零到精通。22. Spark NLP星标:1700,提交数:4363,贡献者:50 Spark NLP是建立在Apache Spark ML之上的自然语言处理库。 23. GluonNLP星标:2200,提交数:712,贡献者:72 GluonNLP这个工具包,可简化文本预处理,数据集加载和神经模型构建,以帮助您加快对自然语言处理(NLP)的研究。计算机视觉24. Pillow星标:7800,提交数:10799,贡献者:303Pillow是个对用户十分友好的PIL分支。PIL是Python图像库25. OpenCV星标:49600,提交数:29453,贡献者:1234 开源计算机视觉库26. scikit-image星标:4000,提交数:12352,贡献者:403 用Python做图像处理27. Mahotas星标:644,提交数:1273,贡献者:25 Mahotas是个包含了最快的计算机视觉算法(所有算法用C++实现保证运行速度)的库,针对numpy数组运行28. Simple-CV星标:2400,提交数:2625,贡献者:69 SimpleCV是一个针对开源机器视觉的架构,使用了OpenCV和Python编程语言。29. GluonCV星标:4300,提交数:774,贡献者:101 GluonCV提供了计算机视觉中最先进(SOTA)的深度学习模型。30. Torchvision星标:7500,提交数:1286,贡献者:334 Torchvision包包含了流行的数据集、模型架构和计算机视觉中常用的图像转换方法。AI研习社是AI学术青年和AI开发者技术交流的在线社区。我们与高校、学术机构和产业界合作,通过提供学习、实战和求职服务,为AI学术青年和开发者的交流互助和职业发展打造一站式平台,致力成为中国最大的科技创新人才聚集地。如果,你也是位热爱分享的AI爱好者。欢迎与译站一起,学习新知,分享成长。
-
12个城市的接力狂欢——MindCon极客周活动,今天正式启动啦! 12月14日 上海 首棒开跑的城市是上海,点Star通道已开启,今天(12.14)7:00-24:00在Gitee和GitHub上MindSpore新增的Star数将算入上海城市积分,每个Star为10积分。上海场我们邀请到亚马逊上海人工智能研究院应用科学家王敏捷,通过线上分享的方式,为大家带来主题为Building Efficient Systems for Deep Learning on Graphs的演讲。微信扫描上方二维码报名,上海打call! 12月15日长沙 接力第二棒的城市是火辣湘情——长沙明天(12.15)7:00-24:00在Gitee和GitHub上MindSpore新增的Star数将算入长沙城市积分,每个Star为10积分。「MindCon极客周」——点亮城市,微信扫描上方二维码报名,为长沙打call!12月16日 武汉 接力第三棒的城市武汉有两位MSG组织者为武汉召集小伙伴们点亮城市,为武汉加油~后天(12.16)7:00-24:00在Gitee和GitHub上MindSpore新增的Star数将算入武汉城市积分,每个Star为10积分。「MindCon极客周」——点亮城市,微信扫描上方二维码报名,为武汉打call!「MindCon极客周」可获得积分的活动内容分为三部分,想在12个城市中积分排名最高,需要您仔细阅读下面的规则,借鉴下文中的例子结合自身优势,充分发挥赢取积分的能力!点Star(新增star积10分)Bugfix(完成bugfix积100分)模型大赛(完成青铜赛段任务积200分) 01点Star活动内容 12个城市接力开启‘点Star’通道,每个城市‘点Star’活动时间为17小时(当天7:00-24:00),后台将统计17小时的活动时间里,MindSpore在Gitee和GitHub官网主仓新增的Star数,用每天的star新增数乘以10所得积分,记为参与‘点Star’活动内容所获得的积分。开启各个城市‘点Star’通道的日期表↓ 参与方式 在Gitee官网为MindSpore点Star:https://gitee.com/mindspore/mindspore在GitHub官网为MindSpore点Star:https://github.com/mindspore-ai/mindspore 举例 1 活动时间:12月14日(7:00-24:00)活动城市:上海Gitee官网新增Star数:200个GitHub官网新增Star数:200个上海的‘点Star’活动得分 =(200 + 200)* 10 = 4000分02Bugfix 活动内容 活动期间(12.14-12.25)将分为两个阶段(阶段一:12.14-12.19;阶段二:12.19-12.25)。第一阶段,每个MSG城市群会有专属任务:提交2个可被合入的bugfix,12个城市共计需完成24个bugfix;第二阶段,12个城市争夺抢分任务:集体参与解决第一阶段各个城市未完成的专属任务,在截止时间抢先提交的bugfix被合入可为所在城市赢得积分。 可获得积分 = bugfix数 * 100即每解决一个bug积100分,bug全部修复可获得2400个积分(24 * 100 = 2400分)。 参与方式 阶段一(12.14-12.19):专属任务· 12月14日 09:00小助手将在每个MSG城市的活动群发布该城市的专属任务(待解决的2个bug),每个MSG城市活动群接收到的任务不同;· 截止到12月19日 09:00完成任务(修复2个bug),即提交bugfix被合入的城市可获得积分 = 2 * 100 = 200分;阶段二(12.19-12.25):抢分任务· 12月19日 10:00若在第一阶段截止时间(12月19日 09:00前)2个bug均未修复或仅修复1个bug,小助手将在12月19日 10:00向12个MSG活动群公布未解决的Bugfix题目;· 截止到12月25日 24:00抢先提交可合入的bugfix数越多积分越高,在抢分任务阶段能争分夺秒的为所在城市赢得更多积分! 举例 2 阶段一 完成专属任务12月14日 09:00 - 12月19日 09:00上海MSG成员提交1个可合入的bugfix,有1个bug未解决在此期间上海积分 = 1 * 100 = 100分阶段二 完成抢分任务12月19日 10:00 - 12月25日 24:0012.19 小助手在12个MSG城市群公布了6个未解决bug,截止时间前MSG上海群抢先解决了其中的3个bug,将获得积分 = 3 * 100 = 300分 上海的‘Bugfix’活动得分 = 100 + 300 = 400分 03模型大赛 活动内容 12月25日 24:00前 完成‘青铜段位赛’可获得200积分。还可获得青铜徽章礼盒、HUAWEI WATCH GT 2Pro、500元京东卡、码豆、DevRun 开发者纪念品哟!*青铜段位赛的任务:完成模型训练脚本的迁移启动成功并完成单Step训练。 参与方式 在12月14日-25日期间完成昇腾模型王者挑战赛中的‘青铜段位赛’任务。微信扫描下方二维码关注「昇腾开发者」获取参赛细则↓ 举例 3 MSG上海群成员完成青铜赛段任务上海的‘模型大赛’活动得分 = 200分MindCon极客周活动截止时间12月25日 24:0012月28日公布12个城市积分排行榜和各个城市获得的总积分结合上面3个活动内容的例子上海总积分 = 4000 + 400 + 200 = 4600分MSG上海组织者可获得MindCon激励奖「价值2000元的索尼耳机+价值300元的官方定制卫衣一件」在「MindCon极客周」活动截止前(12月25日24:00)完成Bugfix任务(下文有详细任务介绍),即提交bugfix被合入的报名者将拥有优先进阶为「MindSpore优秀开发者」的权利,MindSpore社区团队会全力协助您完成「MindSpore优秀开发者」考核项目,评选通过后可享有如下「MindSpore优秀开发者」权益:i. 优秀开发者名单官网展示 ii. 获取专属礼品(价值1500元)iii. 官方大会门票、线下meetup等「MindCon极客周」活动期间(12.14-12.25)通过积分评比方式从12个城市选出积分最高的城市,这个城市的MSG组织者将获得惊喜好礼:我们希望在全世界范围征集对AI、深度学习框架MindSpore感兴趣,想学习更多知识,或者想结识更多有意思的人,为开源社区贡献一份力量的开发者,加入MindSpore社区成为MSG的组织者,MindSpore帮助您更快实现目标。有志于成为MSG组织者的朋友们,在公众号后台发送‘MSG组织者’即可报名!无论您是AI研究领域的资深玩家,还是对新奇事物充满好奇的AI零基础小白,欢迎大家报名「MindCon极客周」活动,点亮城市计划——助力城市获得更多积分、赢取惊喜大奖!微信添加下方小助手为好友报名记得备注:城市MindSpore官方资料GitHub:https://github.com/mindspore-ai/mindsporeGitee:https://gitee.com/mindspore/mindspore官方QQ群: 871543426海报制作:吴佳聪责任编辑:程旭总策划:胡晓曼长按下方二维码加入MindSpore项目↓
-
Cloud Native Days China由CNCF携手华为云联合主办,聚焦云原生领域,专注技术探讨和趋势挖掘。自2018年启动以来已走过北京、上海、广州、成都、杭州、武汉等10多个城市,覆盖线下与线上的云原生爱好者5万+,共同享悦云原生技术。 12月19日(星期六),Volcano社区联合CNCF、云原生产业联盟将在北京举办一场关于【云原生AI大数据】Meetup , 本场Meetup聚焦AI、大数据等高性能计算场景在云原生领域的落地实践。 诚挚邀请您届时参会!活动邀请了来自华为云、腾讯、中科类脑和华宇的技术大咖与大家面对面,共话高性能批量计算技术的现状和未来、CNCF首个批量计算平台Volcano的技术架构与落地、云原生在互联网与司法领域的实践经验分享等。时间:12月19日(星期六)13:00-18:00 地点:中国信息通信研究院 地址:北京市海淀区花园北路52号中国信息通信研究院科研楼2层工业互联网展厅 报名方式:识别下方二维码即可马上报名 立刻报名,现场有丰富奖品等你来拿 活动礼品 社区贡献者专属礼品(凭Github ID领取)打开下方链接,即可为社区做贡献:Github地址:https://github.com/volcano-sh/volcano官网地址:https://volcano.sh/zh/ 转发活动,也有神秘礼品相送规则:将活动文章转发到朋友圈,截图发给小助手,转发的第6位、第18位、第36位、第66位、第100位可获得神秘礼品 注意:参与时间截止12月18日18:00前 备注:小助手二维码见文末 交通指南按分享位置到达信通院北门——主会场的位置在正南方向黄色大楼(科研楼)二楼大厅 备注:报名用户直接在一楼前台提供姓名,审核后即可进入,若遇特殊情况,可联系小助手(小助手微信见文末) Q1:怎么确认报名是否成功?报名成功后,系统会自动发送报名成功提示信息,入场凭信息签到即可。Q2:门票是免费的吗?门票是免费领取的哦!Q3: Meetup有交流群吗?如何加入?长按下方二维码,添加小助手微信回复“活动报名”即可入群,优先获取抽奖资格。识别二维码添加小助手Q4:有线上直播吗?活动当天,我们会在B站同步直播,扫描下方二维码,关注Volcano云原生社区账号,即可预约观看。扫一扫,关注B站直播账号
-
关于小熊派抄袭我司开源项目代码行为的谴责声明我先做一下自我介绍,我是润和HiHope团队的许思维。今天我向大家介绍一下——南京小熊派智能科技有限公司抄袭我们开源项目代码的相关事件。事发背景昨天(12月9号)下午,微信群里有华为的朋友说小熊派已经在HPM平台上发了一个鸿蒙的发行版,随后给我发了一个链接。从这里开始,才有了后文的故事。原来是上周,小熊派有两个年轻人,在华为的鸿蒙包管理平台(https://hpm.harmonyos.com/#/cn/home)上发布了几个HPM组件包,制作了一个发行版。发现违规按照HPM页面上的命令,我把他们的发行版下载下来了。下载下来之后,我在他们Wi-Fi相关的目录中,发现了两个文件——wifi_scan_demo.c, wifi_connect_demo.c。我一看内容,这是抄我们直播课的代码的吗?Beyond Compare一比较,还真是!连拼写错误都一样啊!我们课程代码已经在码云开源了,你抄没关系,毕竟,“读书人的事能叫偷吗”?再往上一看,Copyright和原始LICENSE文本被他们给删掉了!这就过分了啊!不讲武德啊!你如果留着Copyright和原始LICENSE文本,那就是“参与开源”,大家可以和谐相处、愉快玩耍!可你不是,你删了我们的Copyright和原始LICENSE,还好意思加上自己的公司的签名???要点脸好吗???说实在的,大家玩开源,把代码放出来让别人免费用,很多时候图的就是一个名声,仅此而已。你这吃相可真够难看的啊!另外,因为这两个文件中的这一行为影响了我的心情,导致我没有心思继续看他们的东西,不确定他们的其他组件和文件中是否存在类似行为!谴责声明本人仅以HiHope团队成员、润和软件员工、深鸿会群友、鸿蒙开发者,以及 码云用户的身份,向南京小熊派智能科技有限公司表示强烈谴责!同时要求你们:尽快整改你们在码云代码仓和HPM平台发布的代码,恢复我们原来的Copyright和LICENSE声明;好自为之,好好反思,以后不要再犯这样的聪明,小聪明,啊!要以和为贵,要讲武德!另外,华为鸿蒙和码云平台均强力反对他们的这种违规侵权行为,同时提醒你们:我们暂时还没有在HPM和码云发起举报流程,望你们尽快整改,耗子尾汁!我们保留在HPM和码云平台的举报,以及进一步追究相关责任的权利。事件回放9月25号,我们HiHope的《 Harmony OS物联网应用开发实战》课程资料 项目在码云开源,链接是:https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development我们代码仓创建的时候,就在码云项目创建页面勾选了LICENSE文件——BSD 3-Clause License。我们的代码仓一创建就有LICENSE文件,后续所有源代码文件的头部注释也添加了一行Copyright和一份LICENSE声明文本。9月29号,我们在项目的README.md文件中添加了“许可与版权”说明,主要是为了防止文字的部分被拿去商用(出付费课程、书籍之类的):本课程所有代码使用BSD 3-Clause License许可证发布;本课程所有文档使用CC BY-NC-SA许可证发布,即《知识共享许可证》的“署名-非商业性使用-相同方式共享”版本;9月30号,我们提交了 wifi_scan_demo.c 文件,链接是:https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/commit/92ad7cef87eee81e7463e5b449a5a5d55540ddaa10月8号,我们提交了 wifi_connect_demo.c 文件,链接是:https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/commit/7780342888bc9901edd7e606523f534485f22f8b12月3号(昨天查看到的是12月3号,今天他们已重新发布,发布时间已变为12月10号),他们小熊派在发布了 bearpi_hm_nano_sample_app 组件包,链接是:https://hpm.harmonyos.com/#/cn/bundles/@bearpi%2Fbearpi_hm_nano_sample_app (可以用hpm命令:hpm init -t dist; hpm i @bearpi/bearpi_hm_nano_sample_app 下载这个组件的代码)12月10号(今天),我在他们的组件介绍页找到了他们的码云代码仓:https://gitee.com/bearpi/bearpi-hm_nano ,大家也可以去这里查看他们的代码。这个代码仓中也存在同样的违规行为——使用了我们开源项目的代码,但删除了我们的原始Copyright和LICENSE文本。证据备份今天上午,我已向润和软件股份有限公司相关领导反馈了这一情况。今天中午,我在“深鸿会”QQ群中吐槽了小熊派的这一“不讲武德”的行为。今天下午,通过钊哥帮助,相关情况已反馈到华为官方人员,官方人员已通知小熊派整改。截止发文前,为防止他们伪造码云提交记录(方法很多,最简单就是直接把代码仓删掉重新创建,或者本地.git目录删掉重新提交force-push),我已在CSDN、GitHub、GitLab三个代码平台“导入”了他们的码云代码仓,留做备份,链接分别如下。CSDN:https://codechina.csdn.net/xusiwei1236/bearpi-hm_nanoGitHub:https://github.com/xusiwei/bearpi-hm_nanoGitLab:https://gitlab.com/xusiwei/bearpi-hm_nano原本准备使用码云的CopyCat功能扫描他们的代码和我们代码仓之间的相似度,但因为码云该功能尚不完善,在扫描两个代码仓时发生超时,遂放弃了继续深入调查取证。感兴趣的同学,可以用我们的码云代码仓 https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development (我们的代码仓在GitHub也有备份)和我三个备份中的任意一个进行对比。后续发展10号下午,他们收到华为的通知之后,只是修改了变量命名,提交了一下,还是没有加我们的copyright和license声明,真够鸡贼的!12月11号,他们真的删除了代码仓,重新提交了整个代码仓,伪造了提交记录,不敢面对自己犯下的错误!还好,我留了一手,备份了他们10号中午之前的代码仓,以及本地留存了9号他们的HPM包。由于他们代码仓把整个鸿蒙源码树都添加上去了,代码仓比较大,导致码云CopyCat检测超时。今天,我把他们示例代码单独在码云上传了一个代码仓,和我的课程代码进行了比较,生生了比对报告。详见附件,欢迎下载查看。大家也可以尝试,访问 https://copycat.gitee.com/ 两边分别填入:https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Developmenthttps://gitee.com/swxu/bearpi-hm_nano_sample
-
时间走至2020年末,但似乎有关这一年“余额不足”的讨论,并不及往年多。年初flag未能实现的焦虑,多被这不顺意的一年即将过去的庆幸替代。回想这即将匆匆而过的2020,有收获、有遗憾,最重要的是我们能从过去的经历更加了解现在的自己并让我们倍感找寻共识的重要性与必要性。因此,在即将告别2020之际,参加「MindCon极客周」与志趣相同的伙伴们一起分享学习心得,修复社区bug,参加模型王者挑战赛赢取奖励!12个城市接力狂欢,用我们的热情将城市点亮,一直high到圣诞,一切尽在「MindCon极客周」!优秀开发者直通车在「MindCon极客周」活动截止前(12月25日24:00)完成Bugfix任务(下文有详细任务介绍),即提交bugfix被合入的报名者将拥有优先进阶为「MindSpore优秀开发者」的权利,MindSpore社区团队会全力协助您完成「MindSpore优秀开发者」考核项目,评选通过后可享有如下「MindSpore优秀开发者」权益:i. 优秀开发者名单官网展示 ii. 获取专属礼品(价值1500元)iii. 官方大会门票、线下meetup等活动积分规则「MindCon极客周」可获得积分的活动内容分为三部分,想在12个城市中积分排名最高,需要您仔细阅读下面的规则,借鉴下文中的例子结合自身优势,充分发挥赢取积分的能力!点Star(新增star积10分)Bugfix(完成bugfix积100分)模型大赛(完成青铜赛段任务积200分) 01点Star活动内容 12个城市接力开启‘点Star’通道,每个城市‘点Star’活动时间为17小时(当天7:00-24:00),后台将统计17小时的活动时间里,MindSpore在Gitee和GitHub官网主仓新增的Star数,用每天的star新增数乘以10所得积分,记为参与‘点Star’活动内容所获得的积分。开启各个城市‘点Star’通道的日期表↓ 参与方式 在Gitee官网为MindSpore点Star:https://gitee.com/mindspore/mindspore在GitHub官网为MindSpore点Star:https://github.com/mindspore-ai/mindspore 举例 1 活动时间:12月14日(7:00-24:00)活动城市:上海Gitee官网新增Star数:200个GitHub官网新增Star数:200个上海的‘点Star’活动得分 =(200 + 200)* 10 = 4000分02Bugfix 活动内容 活动期间(12.14-12.25)将分为两个阶段(阶段一:12.14-12.19;阶段二:12.19-12.25)。第一阶段,每个MSG城市群会有专属任务:提交2个可被合入的bugfix,12个城市共计需完成24个bugfix;第二阶段,12个城市争夺抢分任务:集体参与解决第一阶段各个城市未完成的专属任务,在截止时间抢先提交的bugfix被合入可为所在城市赢得积分。 可获得积分 = bugfix数 * 100即每解决一个bug积100分,bug全部修复可获得2400个积分(24 * 100 = 2400分)。 参与方式 阶段一(12.14-12.19):专属任务· 12月14日 09:00小助手将在每个MSG城市的活动群发布该城市的专属任务(待解决的2个bug),每个MSG城市活动群接收到的任务不同;· 截止到12月19日 09:00完成任务(修复2个bug),即提交bugfix被合入的城市可获得积分 = 2 * 100 = 200分;阶段二(12.19-12.25):抢分任务· 12月19日 10:00若在第一阶段截止时间(12月19日 09:00前)2个bug均未修复或仅修复1个bug,小助手将在12月19日 10:00向12个MSG活动群公布未解决的Bugfix题目;· 截止到12月25日 24:00抢先提交可合入的bugfix数越多积分越高,在抢分任务阶段能争分夺秒的为所在城市赢得更多积分! 举例 2 阶段一 完成专属任务12月14日 09:00 - 12月19日 09:00上海MSG成员提交1个可合入的bugfix,有1个bug未解决在此期间上海积分 = 1 * 100 = 100分阶段二 完成抢分任务12月19日 10:00 - 12月25日 24:0012.19 小助手在12个MSG城市群公布了6个未解决bug,截止时间前MSG上海群抢先解决了其中的3个bug,将获得积分 = 3 * 100 = 300分 上海的‘Bugfix’活动得分 = 100 + 300 = 400分 03模型大赛 活动内容 12月25日 24:00前 完成‘青铜段位赛’可获得200积分。还可获得青铜徽章礼盒、HUAWEI WATCH GT 2Pro、500元京东卡、码豆、DevRun 开发者纪念品哟!*青铜段位赛的任务:完成模型训练脚本的迁移启动成功并完成单Step训练。 参与方式 在12月14日-25日期间完成昇腾模型王者挑战赛中的‘青铜段位赛’任务。微信扫描下方二维码关注「昇腾开发者」获取参赛细则↓ 举例 3 MSG上海群成员完成青铜赛段任务上海的‘模型大赛’活动得分 = 200分MindCon极客周活动截止时间12月25日 24:0012月28日公布12个城市积分排行榜和各个城市获得的总积分结合上面3个活动内容的例子上海总积分 = 4000 + 400 + 200 = 4600分MSG上海组织者可获得MindCon激励奖「价值2000元的索尼耳机+价值300元的官方定制卫衣一件」MSG组织者的特别答谢「MindCon极客周」活动期间(12.14-12.25)通过积分评比方式从12个城市选出积分最高的城市,这个城市的MSG组织者将获得惊喜好礼:我们希望在全世界范围征集对AI、深度学习框架MindSpore感兴趣,想学习更多知识,或者想结识更多有意思的人,为开源社区贡献一份力量的开发者,加入MindSpore社区成为MSG的组织者,MindSpore帮助您更快实现目标。有志于成为MSG组织者的朋友们,在公众号后台发送‘MSG组织者’即可报名!无论您是AI研究领域的资深玩家,还是对新奇事物充满好奇的AI零基础小白,欢迎大家报名「MindCon极客周」活动,点亮城市计划——助力城市获得更多积分、赢取惊喜大奖!微信添加下方小助手为好友报名记得备注:城市MindSpore官方资料GitHub:https://github.com/mindspore-ai/mindsporeGitee:https://gitee.com/mindspore/mindspore官方QQ群: 871543426海报制作:吴佳聪责任编辑:程旭总策划:胡晓曼长按下方二维码加入MindSpore项目↓
-
Caffe为多媒体科学家和从业人员提供了一个干净且可修改的框架,用于最新的深度学习算法和参考模型的集合。该框架是具有BSD许可的C ++库,具有Python和MATLAB绑定,可在商品架构上有效地训练和部署通用卷积神经网络和其他深度模型。 Caffe通过CUDA GPU计算满足了行业和互联网规模的媒体需求,每天在单个K40或Titan GPU上处理超过4000万张图像(每幅图像≈2.5 ms)。通过将模型表示与实际实现分离,Caffe允许在平台之间进行实验和无缝切换,以简化从原型机到云环境的开发和部署。 Caffe由伯克利视觉与学习中心(BVLC)在GitHub上活跃的贡献者社区的帮助下进行维护和开发。它为正在进行的研究项目,大规模工业应用以及视觉,语音和多媒体中的启动原型提供动力。 下载地址:https://arxiv.org/pdf/1408.5093v1.pdf
-
编者荐语:硬件极客们:「昇腾开发者」公众号正式启动啦!关注「昇腾开发者」感受最炫酷的Playground ,来体验用MindSpore+Jina建立的昇腾开源游乐场!以下文章来源于昇腾开发者 ,作者Ascend昇腾开发者华为昇腾开发者社区对AI感兴趣,却无从入手?偶然间看到有趣的图片想搜索更多类似的图却不知该如何操作?想知道快速识别录入大量手写数据信息的方法?希望简化AI集群资源管理以及任务调度的相关工作?「昇腾开源游乐场」帮您一步一步实现以上想法,为了向广大开发者提供基于昇腾软件栈的交互式AI体验demo,我们开发了「昇腾开源游乐场」(http://ascend.gitee.io/playground/)↓在「昇腾开源游乐场」中,您可以通过我们所提供的小型程序,体验到一些基于昇腾环境非常有趣的AI应用,如昇腾找同款、昇腾助力HPC等。在「昇腾开源游乐场」界面中,您可以拖拽一张内置的蘑菇图片或者手动上传一张全新的蘑菇图片,由搜索程序进行识别并返回最接近的蘑菇图片;还可实现手写一个中文数字,由系统识别返回结果的功能。为了能让大家对「昇腾开源游乐场」有比较直观的感受,首先带大家一起体验下它提供的两款AI小程序:昇腾找同款和昇腾助力HPC。昇腾找同款:手写中文数字查询(点击上图,可跳转至原文中观看视频)手写汉字识别有着极为广泛的应用场景,在大规模的数据记录(人口普查等)中,往往需要输入大量的用户信息,以前需要人工手动输入会耗费大量的人力和物力,如今有了AI技术的帮助,这类汉字识别可以通过机器自动进行识别与录入。下面以简单的中文数字识别为例,向大家展示用小程序识别手写汉字数字(如:一,二等),让机器帮您查询并返回和您手写的中文数字最相似的结果。识别步骤如下:1. 访问「昇腾开源游乐场」主页面:http://ascend.gitee.io/playground/2. 在”配置区” -> “查询节点”下拉框选择“LeNet手写中文数字样例”;3. 在“Preview”界面黑色面板内手写单个中文汉字,暂时仅支持“零至十,百,千,万,亿”等15个中文数字,示例面板为手写中文数字“二”;4. 点击“查询”按钮会返回与手写“二”最为相似的三张结果图。△昇腾找同款中文数字识别昇腾找同款:毒蘑菇搜索(点击上图,可跳转至原文中观看视频)大千世界蘑菇种类数不胜数,是否可以通过AI技术来鉴别蘑菇毒性呢?通过「昇腾开源游乐场」只需将任一张蘑菇图片拖拽到交互区,昇腾找同款应用就会从检索库保存的数千张蘑菇图片中搜索出50张同类或最相似的蘑菇图片,听上去是不是很酷炫?!想要亲自上手体验一下的话,只需打开http://ascend.gitee.io/playground页面,配置区选择ResNet50毒蘑菇样例,然后您可以从查询样例中选择一张蘑菇图片拖拽到右侧的搜索区即可,应用展示效果如下:△昇腾找同款毒蘑菇搜索效果展示昇腾助力HPC:集群资源管理当您准备或已经在HPC(High Performance Computing)等大规模计算场景使用了昇腾AI集群,希望简化集群资源管理以及任务调度的相关工作,那么可以使用由北大团队合作贡献到昇腾开源社区的slurm plugin项目(https://gitee.com/ascend/slurm-atlas-plugin)1. 查询集群状态:2. 查询节点资源:3.查询分区资源:刚刚和大家一起体验了「昇腾开源游乐场」 有趣的应用,相信您一定还想知道更加详细的知识,接下来我们一起来看下整体方案的实现原理,值得一提的是整个游乐场都是用开源软件搭建的!△「昇腾开源游乐场」方案架构前端交互界面1. 先了解下如何实现炫酷的UI界面?我们的前端服务采用了HTML + CSS + JavaScript等技术,基于jinabox.js项目( https://github.com/jina-ai/jinabox.js/ )实现了可视化的操作页面,用户只需在页面上轻松的动动手,比如手写一个中文汉字或拖拽一张蘑菇图片,发送查询就可以返回结果了。2. 前端交互界面和后台服务之间如何通信?如上图所示,前端页面会根据用户的操作发送相应的http请求,并通过RESTful API与后端的三个服务器站点建立通信。其RESTful API格式如下:· http://{host_ip}:{port}/api/search,POST操作· http://{host_ip}:{port}/cluster,GET操作· http://{host_ip}:{port}/nodes,GET操作· http://{host_ip}:{port}/partitions,GET操作后台搜索服务我们的后台搜索服务主要采用了Jina服务(https://github.com/jina-ai/jina)+ MindSpore框架(https://www.mindspore.cn/) + Ascend后端的对接方案,同时通过Jina内置的Gateway服务实现外部监听功能。在Jina中,我们可以使用Flow来描述流水线的任务。以手写中文数字应用为例,查询过程中涉及Index和 Query 两个Flow,它们的使用yaml文件定义如下: 左:Index Flow yaml文件定义 右:Query Flow yaml文件定义两个Flow过程都由craft,encode,vec,doc 4个yaml文件构成,大致可以概括为读取数据,将数据转换为模型可处理的矩阵矢量格式,加载模型,对矢量数据进行处理,最后建立索引结果。即:将手写的中文数字“二”图片数据,经处理后输入28*28大小的图片,然后经encode转换为[-1, 1, 28, 28 ]的矢量数据,形如NCHW格式,为MindSpore LeNet可处理的矩阵数据格式,加载已经预先训练中文汉字数据集生成的MindSpore LeNet checkpoint文件,处理矩阵数据,最后可生成结果索引文件,查询数据集中与用户输入图片最为相似的结果返回。集群资源管理在介绍昇腾集群资源管理方案之前,先来补充下相关知识点:1. 首先,什么是Slurm?Slurm(Simple Linux Utility for Resource Management)是一套用于Linux集群的开源集群管理和作业调度系统,(敲黑板)注意重点是Linux工具、集群管理和作业调度。Slurm中包含几个重要的实体概念:· 集群(cluster):由单个或多个节点构成的一种计算节点集合· 节点(node):用于表示物理机或虚拟机,通常以主机名命名· 分区(partition):跨越多个节点的逻辑区域· 作业(job):执行某一段特定程序的任务· 队列(queue):当提交的作业资源超出可用配额时,将作业放入队列△Slurm集群逻辑架构如上图所示,Slurm包含了如下组件:· slurmctld:监控集群资源和作业状态· slurmd:作为计算节点的守护进程,用于管理compute节点和与control节点的通信· slurmdbd:用于在数据库两种记录多个slurm管理集群的作业统计信息(可选)2. 接下来,我们一起看下昇腾资源管理系统是什么样子?△昇腾Slurm集群部署环境如上图所示,我们在「昇腾开源游乐场」后台环境中搭建了一套包含两个节点的Slurm管理集群:其中包含node1和node2两个节点,control和compute两个分区,一个slurmctld和两个slurmd服务。除此之外,为了能和前端交互界面保持通信,我们启动了slurm-http服务用于监听前端发送的http请求。3. 集群资源管理如何与前端交互界面配合的呢?通过「昇腾开源游乐场」方案架构图我们可以看到,当用户通过前端交互界面发送了查询状态请求之后,以查询节点状态为例:slurm-http服务将监听到的RESTful API请求(/nodes, GET操作)转换成slurm工具指令(scontrol show node),该指令会调用Slurm集群管理服务查询当前所有节点的状态信息并上报给slurm-http服务,最终通过交互界面展示结果。点击文章底部‘阅读原文’可快速跳转至「昇腾开源游乐场」主页面,您可以立即体验上述提到的AI小程序,如果您对昇腾硬件及基础软件栈感兴趣的话,我们还提供了昇腾开源小课堂,让您在与AI应用程序交互的同时也能学习更多昇腾硬件的理论知识。△昇腾开源小课堂想要更全面了解昇腾并收获更多新奇体验,可以通过扫描下图二维码加入昇腾开源社区,在这里您可以通过Issue建立直达Commiter的交流渠道,快速闭环问题和需求,还能参加社区活动,回复Issue,获取激励,更多收获可参考下图↓△扫描二维码加入Ascend组织
-
本贴是对ModelArts AI市场算法CenterNet-HG的构建与使用介绍此模型是对Objects as Points 中提出的CenterNet进行结果复现(原论文Table 2 最后一行)。在COCO数据集上进行训练可在COCO test-dev上最高达到45.7的mAP。代码结构如下src/ ├── pre-trained_weights │ └── ExtremeNet_500000.pth ├── trained_model │ ├── coco_classes.py │ ├── config.json │ ├── customize_service.py │ ├── epoch_50_mAP_42.7.pth │ ├── _init_paths.py │ └── lib ├── train.py ├── evaluation.py ├── _init_paths.py ├── lib │ ├── datasets ... │ ├── detectors ... │ ├── external ... │ ├── logger.py │ ├── models ... │ ├── opts.py │ ├── trains ... │ └── utils ... ├── infer_results │ ├── detections_test-dev2017_ctdet-flip-test_results.zip │ └── detections_test-dev2017_ctdet-multi-scale_results.zip └── training_logs ├── jobf9a05f30-job-trainjob-ctdet.0-0-0-det-0_default-stdout.log ├── logs_2020-11-12-22-19 ... └── opt.txt1. 准备数据集本模型基于COCO数据集进行训练。COCO数据集是由微软发布的一个大型的、丰富的物体检测,分割和字幕数据集。就目标检测而言,COCO包含80个类别,有超过33 万张图片,其中20 万张有标注,整个数据集中个体的数目超过150 万个。具体信息可参考COCO官网。COCO数据集是当前主流检测、分割算法必然会进行测试的benchmark,对计算机视觉的发展有着重要的贡献。1.1下载数据集 需要下载的有image 与 annotation 的文件包,下载网页链接:https://cocodataset.org/#download 下载下图中红框中的文件。 将以上文件解压后有如下文件结构coco |-- annotations | |-- instances_train2017.json | |-- instances_val2017.json | |-- person_keypoints_train2017.json | |-- person_keypoints_val2017.json | `-- image_info_test-dev2017.json |-- train2017 | |-- xxx.png | `-- ... |-- val2017 | |-- xxx.png | `-- ... `-- test2017 |-- xxx.png `-- ...为了便于上传,我们将这些下载好的已经解压了的数据再次打包tar -cvf coco.tar ./coco如果想要使用自己的数据集来进行训练,需要将数据组织成如上COCO数据的格式。更多信息可参考COCO官网1.2 安装OBS Browser+并上传数据集ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。具体操作步骤如下:(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;(3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称,比如本文设置桶名为paper-reproduction-06。您设置的桶名必须与此不同,如在下文的操作指导中看到paper-reproduction-06,请主动将桶名替换为您自己的桶名,下文将不再进行提示;(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“datasets",点击“上传”->“添加文件”-> 选择本地下载好的数据集压缩包(之所以选压缩包格式是因为如果数据集比较大,上传压缩包比上传文件夹快很多) –> 确定,如下图所示;注意:这里需要留意你上传数据的路径。比如这里我们将数据上传至了 `obs://paper-reproduction-06/datasets` 这一路径,之后在配置训练任务时需指定该路径。(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度2. 订阅本算法点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功。3. 创建训练作业点击上图中的“创建训练作业”,按照下表填写训练作业参数:参数名参数值算法名称默认值即可,无需修改数据来源数据存储位置,根据1.2节,步骤(4)中数据实际上传路径来设置。示例:obs://paper-reproduction-06/datasets模型输出在obs中创建一个output 路径,将该路径作为本参数的输入。示例:obs://paper-reproduction-06/train_outputbatch_size20master_batch20 (单卡时 master_batch = batch_size 即可,多卡时设置为主gpu上训练的batch size)lr2.5e-4load_weightsrc/pre-trained_weights/ExtremeNet_500000.pthgpus0 (此处为gpu_id, 单卡时设置为0,8卡时设置为0,1,2,3,4,5,6,7)num_epoch50lr_step40作业日志路径创建一个log路径,例如 obs://paper-reproduction-06/train_logs资源池公共资源池规格GPU:8 * nvidia-v100 CPU:64 核 512GiB 32GiB,或者根据自己的需要进行选择。所选算力需要与batch_size的大小匹配计算节点个数1点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成model目录,该目录下需有模型文件、ModelArts平台推理脚本(config.json、customize_service.py)和其他运行模型必备的文件。4. 模型导入准备好模型及相关的必备文件后,您可以将生成的模型导入至ModelArts模型管理。具体操作如下:(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,可以直接从训练中选择,也可以从OBS中选择。如果是从OBS中选择,则需要选择到model目录的上一级目录;例如,本次可选择的目录为obs://paper-reproduction-01/train_output,如下图所示:注意:选择好元模型路径后,“AI引擎”会自动填充。如未能自动填充,请检查元模型路径是否是model目录的上一级目录,或者model目录下是否包含模型配置文件config.json。(2)点击“立即创建”,需要一点时间来等待模型导入和构建,当模型版本状态为“正常”后,即表示模型导入成功。5. 创建在线服务在ModelArts上,可以将模型部署为在线服务,然后上传图片进行预测,直接在网页端观察预测结果。部署为在线服务具体步骤如下:(1)在ModelArts左侧导航栏中选择“部署上线 -> 在线服务”,然后点击页面中的“部署”;(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,计算节点规格选择CPU即可;(3)点击“下一步”,参数确认无误后,点击“提交”。提交后,您可以在在线服务列表中查看部署进度,当状态变为“运行中”后,点击服务名称,进入详情页面,点击“预测”,上传图片进行测试。6. 创建批量服务在ModelArts上,还可以将模型部署为批量服务,从OBS加载测试集图片进行预测,然后将预测结果输出到OBS。部署为批量服务具体步骤如下:(1)在ModelArts左侧导航栏中选择“部署上线 -> 批量服务”,然后点击页面中的“部署”;(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,填写输入数据目录和输出数据目录,计算节点规格选择“CPU 2核 8GB”,计算节点个数设为1;(3)点击“下一步”,参数确认无误后,点击“提交”。提交后,您可以在批量服务列表中查看部署进度,当状态变为“运行中”后,表示正在预测中,当状态变为“运行完成”,表示这批图片已经预测结束,预测结果是一批txt文件,保存在上图指定的OBS输出数据目录位置中,可以前往该目录查看结果。Update:本模型的部署也支持模型参数配置,这里通过添加环境变量的形式来实现。推理模型支持通过添加环境变量的形式来实现模型参数的调整。环境变量赋值说明BATCH_INFERTrue批处理模式,用于之后模型精度验证FLIP_TESTTrue反转测试MULTI_SCALETrue多尺度测试以上选项默认为FALSE,只有在配置服务时通过添加环境变量的形式才能开启。当我们要通过批量服务来推理coco val 或 test 数据集时,需要添加BATCH_INFER 这一环境变量,以便后续评价标准的计算。7. 模型评估7.1 方法一参考本文第2节中的步骤,创建“训练作业”,按照下表设置训练参数:参数名参数值算法名称默认值即可,无需修改数据来源数据存储位置,选择测试集所在路径,如obs://paper-reproduction-01/algorithms/train_input/datasets/val模型输出选择obs://paper-reproduction-01/algorithms/train_outputload_weightsrc/trained_model/epoch_50_mAP_42.7.pthgpus0evalTruekeep_resTrueresumeTrueflip_testTrue (可选参数)test_scales0.5,0.75,1,1.25,1.5 (可选参数)作业日志路径选择obs://paper-reproduction-06/train_logs资源池公共资源池规格GPU:1 * nvidia-v100-pcie-32gb CPU:8 核 64GiB 32GiB,或者根据自己的需要进行选择计算节点个数1点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成pred_results目录和_result.txt文件,其中pred_results目录中是所有图片的预测结果。评价输出日志如下:Loading and preparing results... DONE (t=2.83s) creating index... index created! Running per image evaluation... Evaluate annotation type *bbox* DONE (t=49.03s). Accumulating evaluation results... DONE (t=11.23s). Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.441 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.637 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.480 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.271 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.472 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.581 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.346 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.571 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.605 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.428 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.643 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.757 Copying save data back to OBS... ModelArts post-training work is done!7.2 方法二我们还可以在模型模型完成部署后,利用批量服务的形式完成推理评价。部署批量推理的流程见步骤6.当完成批量推理后,我们会在所指定的obs路径中看到每张图片的推理结果,命名格式为`xxx.jpg_result.txt`。此时我们可以运行评价脚本 `coco_eval.py` 来完成测试python src/coco_eval.py该脚本也支持在华为云上运行。只需将data_url 参数设置为obs 中批量推理的输出路径。好了,到此即将结束了,大家感觉怎么样呢?期待大家在下方分享使用体验和感受,有问题也可以提哦,直接在下方回帖就行,会尽快解答的。
-
想与5代技术代表人物岳麓对话和前浪后浪们在千年岳麓书院回首激荡岁月共话技术大时代想在一段特定的时间内,相聚在一起以我们想要的方式,去做我们想做的事情整个编程的过程几乎没有任何限制或者方向想了解开源治理、社区发展和开源项目和国内外顶级开源大神来一场走心的面对面交流互动2020年10月25日报名参加下列活动MindSpore与您一起感受每一场精彩1MSG·长沙——1024程序员节分论坛100+ 开源技术英雄年度会面来自知名开源项目、厂商、社区、基金会等百万开发者自己的嘉年华众多创新互动体验、专属嘉年华和主题畅玩活动MindSpore邀您走进华为开源技术论坛与资深专家学习探讨深度学习与MindSpore实践相关知识活动信息如下↓2第十一届中国开源黑客松第十一届中国开源黑客松活动将于2020年10月23日-25日在长沙举办黑客松活动将与1024程序员节相结合相信一定能碰撞出不一样的火花活动信息如下↓还有精美礼品等您领取↓3 2020中国开源年会 (COSCon'20) 业界最具影响力的开源年度盛会2020中国开源年会 (COSCon'20) 将于 10月24日-25日由开源社举办COSCon 以其独特定位及日益增加的影响力吸引非常多顶级企业和国际基金会的大力支持MindSpore在这里为大家带来精彩分享深入浅出介绍全场景AI计算框架-MindSpore感兴趣的小伙伴们扫描下方二维码报名哟~MindSpore官方资料GitHub:https://github.com/mindspore-ai/mindsporeGitee:https://gitee.com/mindspore/mindspore官方QQ群: 871543426责任编辑:程旭总策划:胡晓曼长按下方二维码关注↓
-
Composer 镜像包不全,更新不及时。
-
安全与可信的代码质量社区对ONAP的代码质量进行衡量时主要是通过七个维度:鲁棒性、安全性、可伸缩性、性能、韧性、可管理性、可用性。各维度度量指标定义如下。1.鲁棒性鲁棒性又称可靠性,是软件系统最重要的质量指标。根据ISO9000国际质量标准的规定:鲁棒性是指在规定时间内及条件下,软件能维持其性能水平的能力。一般用在一段时间内密集强化输入的测试方式来验证,即输入比正常输入更恶劣(合理程度内的恶劣)的数据,同时尽可能多地覆盖调用的子模块。这种测试方式在软件领域也叫浸泡测试(soak test),即尽量贴近实际使用情况,在一个稳定的、有一定负载的环境上,持续长期测试并实时监控CPU、内存、磁盘IO等指标变化,以发现内存泄漏、频繁GC等性能问题。ONAP对鲁棒性的要求如下:Level 0(0级):在版本发布要求中,无鲁棒性内容。Level 1(1级):版本已执行过72小时组件级浸泡测试(稳定负载下的随机事务测试,且对主要代码分支,代码覆盖率达到80%以上)。Level 2(2级):版本已执行过72小时平台级浸泡测试(稳定负载下随机事务测试,且对主要代码分支,代码覆盖率达到80%以上)。Level 3(3级):在6个月以上长期测试中,出现缺陷率持续降低的测试跟踪记录。2.安全性ONAP采用核心基础设施倡议联盟(Core Infrastructure Initiative,CII)的勋章项目要求作为安全性度量标准。CII Badge(徽章)项目则给出开源软件的安全最佳实践要求及徽章认证。以帮助开源软件提升安全能力。认证分三级:基础认证、银牌认证、金牌认证。对项目的安全认证要求如下(0~3共4个级别):Level 0(0级):无要求。Level 1(1级):项目通过CII基础徽章认证,无业界已知的严重级别或高级别漏洞(>60天的)。Level 2(2级):项目通过CII银级徽章认证且所有内外部通信都是支持加密,且支持基于角色的访问控制与鉴权。Level 3(3级):项目通过CII金级徽章认证。ONAP对整个版本的安全需求定义如下:Level 1(1级):70%项目通过1级认证,剩下项目满足80%条款要求,且需要符合社区安全委员会制定的特定加密标准。Level 2(2级):70%项目通过2级(CII银级徽章认证),剩下项目都已通过CII基础徽章认证,且满足80% CII银级徽章认证的条款要求。Level 3(3级):70%通过3级(CII金级徽章认证),剩下项目都已通过CII银级徽章认证,且满足80% CII金级徽章认证的条款要求。Level 4:所有项目100%通过3级(CII金级徽章认证)。3.可伸缩性可伸缩性(又称可扩展性)是一种衡量软件系统计算处理能力的设计指标,高可伸缩性代表在系统扩展成长过程中(常见的是容量或工作负载增长),软件仍能持续对外提供正常服务的能力,即不出现性能急剧劣化等无法服务的瓶颈限制。ONAP对可伸缩性各级别的定义与要求如下:Level 0(0级):无可伸缩性。Level 1(1级):支持独立于其他组件的单点水平扩缩容能力。Level 2(2级):支持跨地理位置扩缩容能力(在独立于其他组件的条件下)。Level 3(3级):支持跨多ONAP实例间的组件扩缩容能力(包括提供相应的可操作性)。4.性能软件性能是指软件及时响应以满足用户要求的程度。常见性能指标通常包括响应时间、并发数、吞吐量及性能计数器等。狭义地讲,性能是指软件在尽可能少地占用系统资源的前提下,尽可能高地提高运行速度;广义地讲,软件性能关注的不是软件是否能够完成特定功能,而是在完成该功能时展示出来的及时性。在ONAP中对性能的理解是基于狭义定义的,其分为如下3级:Level 0(0级):没有专门的性能测试。Level 1(1级):定义了性能标准基线且有对应测试结果(如针对各组件定义响应时间、事务/消息速率、延迟、占用空间等)。Level 2(2级):针对1级中定义的性能基线,在1个版本中定义改进计划(基于等效功能&等效硬件)。Level 3(3级):对2个或以上连续版本实施性能改进计划。5.韧性韧性又称弹性,描述ONAP软件自身在故障场景下,继续对外服务的能力。ONAP对韧性的各级别定义与要求如下:Level 0(0级):无冗余能力。Level 1(1级):支持在单站点内手动故障检测、重路由或故障恢复;30分钟内完成测试。Level 2(2级):在单个地理站点内支持自动故障检测和重路由,包括定义相关基线(存在无状态组件与有状态组件,可分别定义基线)。Level 3(3级):跨地理站点支持自动故障检测和重路由,包括定义相关基线。6.可管理性可管理性又称易管理性,是指系统在运行过程中衡量便于管理的程度。良好的可管理性可以有效减少系统的管理和维护成本。ONAP对可管理性的定义主要关注在对ONAP进行维护运作时是否能达到方便影响范围控制等要求。Level 1(1级):所有ONAP组件统一使用单一的日志记录,实例化一个简单ONAP系统时,在满足最小资源要求的情况下,时间应小于1小时。Level 2(2级):组件可以独立升级,而不会影响操作交互组件,支持跨组件的分布式事务跟踪,各组件支持以通用方式实现对组件的统一配置。7.可用性易用性是指操作人员在学习或使用系统时的容易程度。易用性的设计重点在于让系统或产品符合使用者的习惯与需求。ONAP对易用性的要求集中在文档与用户界面设计的一致性与便利性上。Level 1:提供了用户指南、部署文档、API文档及代码遵从编码指南。Level 2:整个ONAP中的各个项目都提供一致的用户界面,且进行了可用性测试,提供辅助文档。各版本S3P(Security, Stability,Scalability, Performance)指标目标与满足情况如下:从ONAP R2(Beijing版本)开始,启动这套质量评估机制,各项目基本处于从0到1的过程。R3版本则要求多数指标都需达到2级要求(可伸缩性要求达到1级,部分设计态项目对韧性要求可降低)。R4(都柏林版本)重点在如下领域进行增强:ONAP自身容器镜像优化,包括大幅减少体积、增加对代码的文档说明、集成CNCF的ServiceMesh组件、支持升级、跨地理位置的灾备、统一日志记录等。
-
想做网站却不知道做一个什么样的网站?选择华为云云市场,云速建站 美橙定制,专业网站设计师为您量身定制,全程一对一服务,满意为止。关于美橙互联:14年品牌,7家分公司,300位服务精英,提供高端网站建设与制作。特点:定位+策划+设计+营销,高端大气,功能强,高效销售转化,灵活改版升级扩展,满足个性需求。可单独定制(PC网站、手机站、微信站、小程序、APP),或五站合一,匠心打造!PC站、微信站、商城店铺样样行,小程序、APP一键生成即刻拥有!云速建站 美橙定制的核心价值:核心价值一:帮您找到更多客户1.搜索引擎优化 SEO系统提供的有seo搜索引擎优化功能,通过对网站内部进行优化满足搜索引擎排名的需要,提高搜索结果的排名名次(比如百度搜索结果的排名)、把精准用户带到网站平台、实现在线购买或品牌宣传。2.百度分享访问者可以把网站页面分享至微博、QQ、微信等主流平台、带来更多免费流量,同时能提升网页被百度抓取机率和速度、提高百度排名。3.企业开展微信营销活动的重要性提供多种微信营销工具,帮助企业快速拓展粉丝,增加新客户,比如象:企业微信红包、微助力、微众筹、一元夺宝、朋友代付等。 核心价值二:赢得客户的充分信任1. 精美模板模板包含了pc和手机,是由专业设计师精心设计制作,高端、大气,覆盖了各个行业,能有效的打造企业完美形象,增强客户好感,为企业带来更多咨询客户。2. 产品展示可以运用多媒体方式,图片、声音、动画、视频等全方位展示企业产品和业务,让客户了解的更透彻,增加购买欲望。3.多语言平台系统支持无限语种,不但可以多语种展示,还可以多币种网上交易,让您的网站有能力拓展海外用户。核心价值三:在线咨询支持多种即时沟通工具,提供了客户留言板,以保障二十四小时不错过任何一个意向咨询客户。核心价值四:在线交易1. 强大的商品管理能够对商品添加、分类、编辑、删除、定义商品价格、库存等。2. 友好的购买体验3.多样化的支付方式4. 多币种结算5. 其它交易功能6. 营销活动工具核心价值五:客户维系1. 客户维系的必要性提供多项会员营销功能,能够增进企业与客户之间感情的桥梁,能够把两者紧紧绑定在一起。2. 会员管理功能企业能够根据会员资料和消费数据区分出潜力、普通、和优质会员,制定有针对性的营销方案、提升公司营收;还可以对会员进行级别设定,给予老客户优惠,这样可以增加老客户粘性,保证他能持续消费。3. 积分和优惠券4. 站内通知5. 微信贺卡6. 多种小游戏7. 摇一摇、微现场8. 调研、投票9. 统计报表核心价值六:网络分销提供网络分销功能,快速让企业拥有无限分店,没有任何风险。无限下级、三级返佣的体制能有效提升分销商积极性,有利于下级分销商快速拓展;分销平台还可以一键分享微博、微信 、QQ社交平台,快速传播带来访问流量,带来很好的经济效益。核心价值七:四站合一系统是属于四站合一的系统,即pc、手机、微信、app。覆盖所有客户智能终端平台,宣传价值最大化。同时也是跨平台的,所有平台数据全部同步,节省企业维护时间,高效、快捷! 文中提到的商品:云速建站 美橙定制(云市场严选商城在售)【华为云云市场,助您上云无忧】
-
大家好,经历了八月如火如荼的开发之后,MindSpore带来了本月的更新——v0.7.0-beta(后简称v0.7)版本。按照惯例,接下来给大家解读MindSpore又有了什么新的关键特性~本月最大的惊喜是MindSpore发布了针对手机及IoT场景,端到端的解决方案——MindSpore Lite。从模型开始到最后的编译发布,提供了包括转换工具、Runtime等工具链,帮助用户在手机以及后续的IoT设备上使能MindSpore的AI能力。了解MindSpore Lite:https://www.mindspore.cn/lite在实际使用过程中因为一些原因,譬如使用图像分类应用时,当镜头模糊、光照不足、下雨大雾、拍摄角度等等情况下,实际输入的数据与训练模型时的标准数据集有一些不同。在这种情况下,模型可能出现模型精度答复下降。而在某些极端情况下,可能出现未知的推理失误,引入安全性问题。如在人脸解锁场景,可能因为未知的干扰,而意外解锁。为了更好的评估和提高模型的鲁棒性,同时尽可能激活神经元,减少未知的安全风险,MindArmour提供了Fuzz(模糊)测试工具。测试过程中,工具的Fuzzer Moduler(Fuzz模块)可以对数据集进行增强,如色差、翻转、模糊等,自动化产生测试样例,如下图右侧。在结果输出方面,用户可以看到模糊测试结果,评价了图像的覆盖率指标以及精度下降。下图左侧可以看出在模型出现扰动的情况下,模型精度(Accuracy)下降程度以及神经元激活程度(Coverage Rate)。使用教程:https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/fuzzer.html深度概率编程融合了深度学习和贝叶斯建模,深度概率模型相比于传统的深度神经网络模型,引入了不确定性,提升了模型的鲁棒性和可解释性。MindSpore在v0.7版本中,提供了概率模型的高效编程库,可以与深度学习模型无缝融合,以面向不同需求的开发者。对于熟悉深度学习的同学,支持深度神经网络一键转贝叶斯神经网络;也支持调用封装好的接口,像实现深度神经网络一样实现贝叶斯神经网络和生成网络;并提供不确定性估计工具,方便同学评估模型和数据。对于熟悉概率学习的同学,其提供丰富、通用、模块化的贝叶斯建模和推断方法库,包括概率采样库、贝叶斯神经网络,概率推断算法等,帮助用户更加快速、简洁地进行概率编程。使用教程:https://gitee.com/mindspore/mindspore/tree/r0.7/mindspore/nn/probabilityMindSpore数据处理组件新增了自动数据增强的能力,支持用户在处理数据过程中灵活定制及调整数据增强操作。主要有以下两种特性:• 支持基于概率动态调整数据增强策略根据用户预置策略列表,每次随机选择一个策略,同时同一策略各数据增强算子有不同的概率,按照概率选择算子执行。https://www.mindspore.cn/api/zh-CN/r0.7/api/python/mindspore/mindspore.dataset.transforms.vision.html?highlight=selectsub#mindspore.dataset.transforms.vision.c_transforms.RandomSelectSubpolicy• 支持用户根据pipeline上下文信息或训练结果动态调整数据增强策略支持batch、 epoch粒度调整数据增强策略。https://www.mindspore.cn/api/zh-CN/r0.7/api/python/mindspore/mindspore.dataset.html?highlight=sync_wait#mindspore.dataset.I mageFolderDatasetV2.sync_waitMindSpore迎来首个开源ISV对接!Jina.ai,AI开源新势力Jina.ai是由MindSpore技术治理委员会成员肖涵博士主导的初创公司,致力于提供面向云原生的开源神经网络搜索能力。让我们看一下Jina如何描述他们对AI开源的看法:得益于深度学习框架和现成的预训练模型,端到端应用程序市场中有许多人可以做出重大贡献的机会。随着每天涌现出新的AI算法,如何跟上步伐?项目范围是什么?面对社区的要求时,如何维护项目?这些困难的问题需要一个明确的答案,比如在此前开发bert-as-service时,有很多要求将其扩展到AlBERT,DistilBERT,BioBERT等。我们优先考虑了适合我们的路线图的那些需求进行落地。最好的开源也许不是最闪亮的,但是可以持续生长的开源。可以看到Jina团队对开源开发有着非常成熟的思考,那么与MindSpore的对接是否属于适合Jina路线图的需求呢?Jina助力MindSpore的云原生野望答案是肯定是!就在8月份,Jina社区团队完成了MindSpore框架的初步对接支持,成为了首个对接MindSpore应用集成商。Jina+MindSpore提供了业界少有的完整开源解决方案,Jina.ai将在近期推送详细的技术介绍博文,我们也会在第一时间转载推送,心急的同学可以先来关注几个主要的PR:• https://github.com/jina-ai/jina/pull/836• https://github.com/jina-ai/examples/pull/155• https://github.com/jina-ai/examples/issues/154One More Thing:MindSpore 8月新增了2个新的SIG和2个新的WG!特殊兴趣组(Special Interest Group,简称SIG)以及工作组(Working Group,简称WG)是开源社区开发中常见的项目组织形式。由于MindSpore社区采取开放治理架构[0],除了把握大的发展方向的技术治理委员会(Technical Steering Committee,简称TSC)之外,日常的模块开发为了兼顾开放协作和迭代效率,通常通过SIG的形式由开发者自由组队,并通过推举SIG Lead的方式来产生模块开发的负责人,管理日常工作,有关注过MindSpore邮件列表的同学应该会留意到经常会有SIG负责人换届的公开邮件。工作组WG则主要是负责一些涉及到多个SIG的需求传递、设计讨论等工作。当然不是!SIG/WG的创建总是为了应对具体的开发或协作的问题而产生的,一个开源社区的SIG/WG的数目,在客观上不说明任何社区健康度或者活跃度的问题。关键还是要看SIG/WG本身的内容和质量,比如在之前MindSpore社区开源后成立的第一个新SIG-AKG,就为开发者带来了图算融合这样非常黑魔法的特性。8月份社区迎来的这4个新组织都非常各具特色,我们将会在接下来通过4篇独立的文章分别介绍:SIG-MSLITEMindSpore社区8月份端侧特性大版本更更新,现在大家使用的华为手机中支撑HMS Core里面AI应用的MindSpore Lite模块,已经在社区所见即所得了!立项文档可参见[1],我们将会在9月1日的公众号文章详细介绍SIG-MSLITE。SIG-DPP由清华大学开源项目珠算团队[2]带来的深度概率编程支持!通过开发MindSpore深度概率编程库,为广大开发者提供与深度学习无缝融合的高效贝叶斯学习编程库。立项文档可参见[3],我们将会在9月2日的公众号文章详细介绍SIG-DPP。WG-MM由深圳湾实验室分子动力学团队带来的非常令人兴奋的需求性工作组。分子动力学如今被广泛应用于广泛应用于物理、化学、生物、材料、医学等领域,可以说是当之无愧的基础核心技术。这个新工作组将聚焦在MindSpore如何帮助加快深度分子模型的创新实现。立项文档可参见[4],我们将会在9月3日的公众号文章详细介绍WG-MMWG-Research是由华为团队发起的基于MindSpore面向未来的十大课题,通过开源社区面向开发者征集好的想法,以及对开发进行必要的资助。立项文档可参见[5],我们将会在9月4日的公众号文章详细介绍WG-Research里面的十大课题都有哪些。参考文献:[0]https://gitee.com/mindspore/community/blob/master/governance.md[1]https://gitee.com/mindspore/community/blob/master/design/meps/mep-mslite/MEP-MSLITE.md[2]https://github.com/thu-ml/zhusuan[3]https://gitee.com/mindspore/mindspore/issues/I1RG6C[4]https://gitee.com/mindspore/community/blob/master/design/meps/mep-mm/MEP-MM.md[5]https://gitee.com/mindspore/community/blob/master/design/meps/mep-research/MEP-RESEARCH.md推荐阅读MindSpore官方资料GitHub:https://github.com/mindspore-ai/mindsporeGitee:https://gitee.com/mindspore/mindspore官方QQ群: 871543426长按下方二维码关注↓
-
【功能模块】华为云CentOS镜像源站,是我哪里设置不对?【操作步骤&问题现象】1、启动最新版本centos的容器docker run -d centos sleep 1000000000002、设置镜像源:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-8-anon.reposed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/CentOS-AppStream.reposed -i "s/mirrorlist=http/#mirrorlist=http/g" /etc/yum.repos.d/CentOS-AppStream.reposed -i "s@http://mirror.centos.org@https://mirrors.huaweicloud.com@g" /etc/yum.repos.d/CentOS-AppStream.repoyum clean allyum makecache3、安装包:yum install -y openssh-server openssh-clients nfs-utils epel-release \ perl-XML-Simple sudo rpm-build openssl-devel \ ncurses-devel pam-devel libXmu-devel java-devel \ javacc ant-junit ant-nodeps swing-layout /usr/include/db.h \ /usr/include/Xm/Xm.h gcc /bin/csh tar4、报错:No match for argument: jemalloc-develAll matches were filtered out by modular filtering for argument: javaccAll matches were filtered out by modular filtering for argument: ant-junitNo match for argument: ant-nodepsNo match for argument: swing-layoutError: Unable to find a match: jemalloc-devel javacc ant-junit ant-nodeps swing-layout【截图信息】【日志信息】(可选,上传日志内容或者附件)
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
回顾中
热门标签