暂时未有相关云产品技术能力~
博客地址:https://alanhou.org
我们已经学习了如何在单个模块中使用包,接下来该学习如何集成第三方模块及其中的包。然后,我们会学习如何发布自己模块并添加版本,以及Go的中央服务:pkg.go.dev、模块代理和校验和(checksum)数据库。
我们已学习过变量和函数,下面来快速了解下指针的语法。然后我们通过将Go中的指针与其它语言中的类进行对比来讲清指针的原理。我们还会学习如何以及何时使用指针、Go中如何分配内存以及正确使用指针及值是如何使Go程序变得更快速、更高效的。
在上一篇文章中,我们学习了一些字面量和预声明变量类型:数值、布尔值和字符串。本文中我们会学习 Go 中的复合类型、内置的支持函数以及使用的最佳实践。
前面我们已经讲解了变量、常量和内置类型,下一步要学习程序逻辑和组织方式了。我们会先讲解代码块,以及代码块如何控制某个标识符的可用性。然后我们一起学习Go语言的控制结构:if、for和switch。最后我们会讨论goto,以及使用它的场景。
录制和播放视频对用户来说和拍照、显示图片一样重要。和图片一样,Apple框架中内置了播放视频和创建自定义播放器的工具。
Foveated rendering听起来好像是非常复杂的技术。但实际上注视点(foveation)的底层概念非常直接。使用人注视屏幕的信息,可以减少生成场景的运算资源,方式是使用高分辨率渲染人眼观看的小区哉,而场景外的其它区域(人的四周)采用更小的分辨率和更少的细节。注视点渲染主要用于显示技术,如VR头显和AR眼镜,对些场景资源优化至关重要。
本例选择了《天空之城》的25张照片,组成5x5的照片墙)。首先我们在setupContentEntity方法中构建了一个纹理数组,将这25张照片添加到数组images中。其中封装了setup方法,借助于visionOS对沉浸式空间的支持,我们创建了三个平面,组成具有立体感的照片墙。
在前面的示例中,我们在屏幕上展示了图片,但也可以将其存储到文件或数据库中。另外有时使用相机将照片存储到设备的相册薄里会很有用,这样可供其它应用访问。UIKit框架提供了如下两个保存图片和视频的函数。 •
在学习本书前,你应该了解一些 Python 编程的基础知识,比如基础语法、变量类型、元组数据类型、列表字典、函数、字符串和方法。在python.org/downloads/上有3.7.2和2.7.15两个版本可供下载。本书中我们将使用3.7这一版本来作为代表示例和包的安装。
通过前面的学习我们已经知道setupContentEntity用于初始化实体对象,getTargetEntity用于根据模型的名称查找到指定模型。addCube(name: String, position: SIMD3<Float>, color: UIColor)中包含三个参数,name用于指定所创建盒子的名称,position用于指定盒子所处的位置,同样是按人所处位置为参照坐标,color用于指定盒体的颜色。
在之前的学习中我们在空间中添加了3D模型,但在初始摆放后就无法再对其进行移动或做出修改。本节我们在Day 5显示和隐藏的基础上让我们模型可以实现拖拽效果,同时对纯色的立方体实现点击随机换色的功能。
本文中我们会通过纹理和材质对这个立方体的六个面分别进行不同的绘制。首先我们将ImmersiveView分拆出来,先新建一个ImmersiveView.swift文件,这是一个视图文件,所以请选择User Interface下的Swift View完成创建,其中的内容待我们编写完ViewModel中的代码后再进行修改。
我们在Day1中学习了如何创建一个visionOS应用,但在第一个Demo应用中我们的界面内容还是2D的,看起来和其它应用并没有什么区别。接下来我们先学习如何展示3D素材,苹果为方便开发人员,推出了RealityKit,接下来看如何使用。
截至目前visionOS还未在Xcode稳定版中开放,所以需要下载Xcode Beta版。比如我们可以下载Xcode 15.1 beta 2,注意Xcode 15要求系统的版本是macOS Ventura 13.5或更新,也就是说2017年的MacBook Pro基本可以勉强一战,基本上还是推荐使用M系列芯片的电脑进行开发。
沉浸式空间为内容提供了一个无界的区域,可在空间内控制内容的大小和摆放位置。在获取用户的授权后,我们还可以使用开启了沉浸空间的ARKit来将内容集成到周遭环境中。例如,可以使用ARKit场景重建来获取家具的网格(mesh)及其附近的对象,让内容可以与网格进行交互。
本文中我们学习如何创建一个iOS应用,让用户可以 点击屏幕将3D内容放到真实环境中。读者将学习如何将3D资源文件加载到RealityKit实体中,并将其锚定到真实世界的物理位置。本指南的最后有应用完整版的下载链接。
如今,个人设备主要用于处理图片、视频和声音,苹果的设备也不例外。SwiftUI可以通过Image视图显示图片,但需要其它框架的支持来处理图片、在屏幕上展示视频或是播放声音。本章中我们将展示Apple所提供的这类工具。
对于某些应用,Safari视图控制器中包含的自定义选项还不够。为此Apple又提供WebKit框架这一选项。借助于这个框架,我们可以在视图内展示网页内容。该视图通过UIView类的子类WKWebView定义。这个类提供了如下管理内容的属性和方法。 •
苹果的产品遍布一百多个国家,使用几十种语言和方言发行应用,但通常我们只能创建一个版本的应用,所以就需要对不同市场进行适配。这不仅仅是翻译,还有用户界面中元素的排列、数字的格式等等。这一客制化的过程称为本地化。在SwiftUI中,大多数本地化会自动完成。例如,SwiftUI视图的内容采用靠前(leading)和靠后(trailing)约束来根据文字顺序(从左到右或从右到左读)的不同来表示左和右,日期和充其量单位等值会自动根据所在地进行格式化(参见示例4-32)。但文本还是需要我们来翻译。为此Xcode提供了字符串名录(String Catalogs)。
SwiftUI是一套新框架,因此并没有包含我们构建专业应用所需的所有工具。这意味着我们会需要求助于UIKit(移动设备)和AppKit(Mac电脑)等原生框架所提供的工具。
Odoo提供了一个快速应用开发框架,尤其适合构建商业应用。这类应用通常用于保存业务记录和工作流。Odoo 不仅简化了这类应用的构建,还提供了看板、日历、图表等视图的丰富组件,用于创建难以抗拒的用户界面。
App可以让用户访问网页,但实现的方式有不止一种。我们可以让用户通过链接在浏览器中打开文档、在应用界面中内嵌一个预定义的浏览器或是在后台下载并处理数据。
苹果系统借助现代处理器的多核可同步执行多条代码,提升同一时间内程序所能执行的任务。例如,一段代码从网上下载文件,另一段代码可以在屏幕上显示进度。此时,我们不能等待第一个执行完后再执行第二个,而必须要同步执行这两个任务。
异步任务对于希望释放资源让系统可以执行其它任务的场景非常有用,比如更新界面,但在希望同步执行两个任务时,就需要用到并发。为此,Swift标准库定义了async let语句。
经过前面的学习,我们已配置好了环境,下面就要学习Go语言的特性以及如何最好地使用。在探寻到“最好”的方式之前,有一条首要原则:按照清晰表达意图的方式编写代码。在讲解这些特性的过程中,我们会看来哪些选择以及为什么某个方法能产生更整洁的代码。
AR框架的一个核心是含能够理解特征的场景和各种类型的锚点。锚点有很多种,可根据特定场景来摆放3D模型 ,甚至可以真人来做距离测量(ARBodyAnchor)。并且这些框架不容忽视的优势是具有进行场景重建和人形遮挡(occlusion)的32位尝试数据。
每种编程语言都需要有开发环境,Go自然也不例外。如果读者之前已经写过Go程序,那么一定已经有环境了,但可能会漏掉一些最新技术和工具。如果是第一次在电脑上配置Go,也不必担心,Go及其支持工具非常简单。在配置好环境并验证后,我们会构建一个简单程序,学习几种构建和运行Go的方式,然后涉足一些简化Go开发的工具和技巧。
文本分类是自然语言处理中最常见的任务之一,它可用于各种应用,例如将客户反馈标记为不同的类别,或者根据语言分发工单。电子邮件程序的垃圾邮件过滤器很有可能正在使用文本分类来保护收件箱免受大量不需要的垃圾邮件的侵扰!
2017年,Google的研究人员发表了一篇论文,提出了一种新的用于序列建模(sequence modeling)的神经网络架构[1]。称之为Transformer,这种架构在机器翻译任务中的表现无论在翻译质量还是训练成本层面均优于循环神经网络(RNN)。
在前面的章节中,我们使用预测准确率来评估各机器学习模型,通常这是用于量化模型表现很有用的指标。但还有其他几个性能指标可以用于衡量模型的相关性,例如精确率、召回率、F1分数和马修斯相关系数(MCC)等。
本节中,我们来看两个非常简单但强大的诊断工具,可帮助我们提升学习算法的性能:学习曲线和验证曲线,在接下的小节中,我们会讨论如何使用学习曲线诊断学习算法是否有过拟合(高方差)或欠拟合(高偏置)的问题。另外,我们还会学习验证曲线,它辅助我们处理学习算法中的常见问题。
在前面的章节中,我们学习了用于分类的基本机器学习算法以及如何在喂给这些算法前处理好数据。下面该学习通过调优算法和评估模型表现来构建良好机器学习模型的最佳实践了。本章中,我们将学习如下内容: 评估机器学习模型表现 诊断机器学习算法常见问题 调优机器学习模型 使用不同的性能指标评估预测模型 通过管道流程化工作流
虽然上一小节中繁琐的介绍有助于我们了解PCA的内部原理,但我们还是要谈谈scikit-learn中实现的PCA类。 PCA类是scikit-learn中又一个变换器类,我们在使用相同模型参数谈的训练数据和测试集前先使用训练数据拟合模型。下面对葡萄酒训练数据集使用scikit-learn中的PCA类,通过逻辑回归分类变换后的样本,再使用第2章 为分类训练简单机器学习算法中定义的plot_decision_regions函数可视化决策区域:
在第4章 构建优秀的训练数据集 – 数据预处理中,我们学习了使用特征选择技术对数据集降维的不同方法。特征选择以外的另一种降维方法是特征提取。本章中我们会学习两种基本技术,可帮助我们通过将其变换为比原来更低维度的特征子空间总结出数据集中的信息内容。数据压缩是机器学习中非常重要的课题,它有助于我们存储和分析现代技术时代生产和收集的与日俱增的数据。
我们在第1章 赋予计算机学习数据的能力和第3章 使用Scikit-Learn的机器学习分类器之旅中简单地介绍了将数据集划分为训练集和测试集的概念。在测试集中比较预测标签和真实标签可以看成是发布上线前对模型的无偏差性能评估。本节中,我们会准备一个新的数据集,葡萄酒数据集。在预处理完数据集后,我们会探讨不同的特征选择技术来对数据集降维。
数据质量及所包含的有用信息量是决定机器学习算法能学到多好的关键因素。因此,在将数据集喂给机器学习算法前对其进行检查和预处理绝对很重要。本章中,我们会讨论一些基本数据预处理技术,有助于我们构建很好的机器学习模型。
另一种强大又广泛使用的学习算法是支持向量机(SVM),可看成是对感知机的扩展。使用感知机算法,我们最小化误分类错误。但在SVM中,我们的优化目标是最大化间隔(margin)。间隔定义为分隔的超平面(决策边界)之间的距离,距离超平面最近的训练样本称为支持向量。
本章中,我们会学习一些学术界和工业界常用的知名强大机器学习算法。在学习各种用于分类的监督学习算法的不同时,我们还会欣赏到它们各自的优势和劣势。另外,我们会开始使用scikit-learn库,它为高效、有生产力地使用这些算法提供了用户友好且一致的接口。
官方默认的 layout 目录已其实已经包含第三方包,但proto 文件仍然会出现红色波浪线,如`import "google/api/annotations.proto";`,以 VS Code 为例,只需要添加如下文件及配置:
前一节中,我们学习了Rosenblatt感知机规则的原理,下面使用Python进行实现并使用第1章 赋予计算机学习数据的能力中介绍的鸢尾花数据集进行训练。
本章中我们会使用所讲到的机器学习中的第一类算法中两种算法来进行分类:感知机(perceptron)和自适应线性神经元(adaptive linear neuron)。我们先使用Python逐步实现感知机,然后对鸢尾花数据集训练来分出不同花的品种。这有助于我们理解用于分类的机器学习算法概念以及如何用Python进行有效的实现。
前面我们讨论了机器学习的三大分类:监督学习、无监督学习和强化学习,下面来学习本书中会用到一些基本术语。下面的一小节中包含用于表示数据集各方面的常用术语,以及可实现更精准高效沟通的数学符号。
在作者的心目中,机器学习这一解释推理数据的应用和算法科学,是计算机科学中最令人振奋的领域!我们生活在数据多到泛滥的时代,使用机器学习领域的自学习算法 ,可以将数据转换为知识。借助近些年来开发的众多开源库,我们迎来了进入机器学习领域最好的时代,可以学习利用强大的算法来一窥数据的模式并对未来事件进行预测。