从 Swift 到机器学习 - 王巍
glmClassifier 开始定义 pipeline 输⼊入 299x299 保留留特性的同时限制处理理时间 内置模型 (特征提取) 2048 个特征的数组 (1, 2048) ⼴广义线性模型 (GLM) (2048, 1),与特征点乘得到结果 发⽣生了了什什么 Turi Turi • 2013, 成⽴立 • 2016, Apple 以 2 亿美元收购 • 2017 Category) • 简单,⽆无脑,拖拽式得到可⽤用模型 • 对⼯工程师友好,可以在 client 本机编译 (下载更更新模型) 总结 ? • 只适⽤用于特定任务 (图⽚片分类/⾃自然语⾔言处理理/回归分析) • TuriCreate 只能有限扩展 (使⽤用第三⽅方模型, ⻛风格化图 ⽚片滤镜等) • ⽆无法处理理⾃自定义模型,或者更更⼀一般化的任务 ⼀一些资源 Awesome Core0 码力 | 64 页 | 4.32 MB | 1 年前3Hello 算法 1.0.0b1 Swift版
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 10. 查找算法 155 10.1. 线性查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.2. 二分查找 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 时间复杂度:线性阶 func algorithmB(n: 相比直接统计算法运行时间,时间复杂度分析的做法有什么好处呢?以及有什么不足? 时间复杂度可以有效评估算法效率。算法 B 运行时间的增长是线性的,在 ? > 1 时慢于算法 A ,在 ? > 1000000 时慢于算法 C 。实质上,只要输入数据大小 ? 足够大,复杂度为「常数阶」的算法一定优于 「线性阶」的算法,这也正是时间增长趋势的含义。 时间复杂度的推算方法更加简便。在时间复杂度分析中,我们可以将统计「计算操作的运行时间」简化为统计0 码力 | 190 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b2 Swift版
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 10. 查找算法 155 10.1. 线性查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.2. 二分查找 次,算法运行时间随着 ? 增大成线性增长。此算法的时间复杂度被称为 「线性阶」。 ‧ 算法 C 中的打印操作需要循环 1000000 次,但运行时间仍与输入数据大小 ? 无关。因此 C 的时间复杂 度和 A 相同,仍为「常数阶」。 // 算法 A 时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 时间复杂度:线性阶 func algorithmB(n: 相比直接统计算法运行时间,时间复杂度分析的做法有什么好处呢?以及有什么不足? 时间复杂度可以有效评估算法效率。算法 B 运行时间的增长是线性的,在 ? > 1 时慢于算法 A ,在 ? > 1000000 时慢于算法 C 。实质上,只要输入数据大小 ? 足够大,复杂度为「常数阶」的算法一定优于 「线性阶」的算法,这也正是时间增长趋势的含义。 时间复杂度的推算方法更加简便。在时间复杂度分析中,我们可以将统计「计算操作的运行时间」简化为统计0 码力 | 199 页 | 15.72 MB | 1 年前3Hello 算法 1.1.0 Swift版
是该求和函数的流程框图。 第 2 章 复杂度分析 hello‑algo.com 20 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 379 页 | 18.47 MB | 1 年前3Hello 算法 1.2.0 简体中文 Swift 版
www.hello‑algo.com 20 图 2‑1 是该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 www.hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 379 页 | 18.48 MB | 9 月前3Hello 算法 1.0.0 Swift版
复杂度分析 hello‑algo.com 20 图 2‑1 是该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 复杂度分析 hello‑algo.com 29 // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } // 算法 C 的时间复杂度:常数阶 func algorithmC(n: A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 378 页 | 17.59 MB | 1 年前3Hello 算法 1.0.0b5 Swift版
hello‑algo.com 19 图 2‑1 展示了该求和函数的流程框图。 图 2‑1 求和函数的流程框图 此求和函数的操作数量与输入数据大小 ? 成正比,或者说成“线性关系”。实际上,时间复杂度描述的就是 这个“线性关系”。相关内容将会在下一节中详细介绍。 2. while 循环 与 for 循环类似,while 循环也是一种实现迭代的方法。在 while 循环中,程序每轮都会先检查条件,如果条 ,给定三个算法 函数 A、B 和 C : // 算法 A 的时间复杂度:常数阶 func algorithmA(n: Int) { print(0) } // 算法 B 的时间复杂度:线性阶 func algorithmB(n: Int) { for _ in 0 ..< n { print(0) } } 第 2 章 复杂度分析 hello‑algo.com 27 // A 只有 1 个打印操作,算法运行时间不随着 ? 增大而增长。我们称此算法的时间复杂度为“常数 阶”。 ‧ 算法 B 中的打印操作需要循环 ? 次,算法运行时间随着 ? 增大呈线性增长。此算法的时间复杂度被称 为“线性阶”。 ‧ 算法 C 中的打印操作需要循环 1000000 次,虽然运行时间很长,但它与输入数据大小 ? 无关。因此 C 的时间复杂度和 A 相同,仍为“常数阶”。 图 2‑70 码力 | 376 页 | 30.70 MB | 1 年前3Swift for TensorFlow - 莲叔
(X)) • Simplify to matrix form: The method above is also be called Logistic Regression 对数⼏几率回归 Coding Time typealias FloatTensor = Tensorlet matplot = Python.import("matplotlib.pyplot") 0 码力 | 56 页 | 3.03 MB | 1 年前3Hello 算法 1.2.0 繁体中文 Swift 版
雜湊衝突 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 right‑child0 码力 | 379 页 | 18.79 MB | 9 月前3
共 9 条
- 1