 2 使用Python训练和部署低精度模型 张校捷使用Python训练和部署低精度模型 (TensorFlow版) 张校捷 2019/9/21 目录 CONTENTS 低精度的概念和意义 TensorFlow的FP16模型 TensorRT的FP16/Int8模型 总结 1 低精度的概念和意义 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 深度学习模型中实数的表示 FP32: E8M23 FP16:0 码力 | 24 页 | 981.45 KB | 1 年前3 2 使用Python训练和部署低精度模型 张校捷使用Python训练和部署低精度模型 (TensorFlow版) 张校捷 2019/9/21 目录 CONTENTS 低精度的概念和意义 TensorFlow的FP16模型 TensorRT的FP16/Int8模型 总结 1 低精度的概念和意义 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 深度学习模型中实数的表示 FP32: E8M23 FP16:0 码力 | 24 页 | 981.45 KB | 1 年前3
 3 在AWS部署与发布你面向全球的Python Serverless应用 谢洪恩0 码力 | 53 页 | 24.15 MB | 1 年前3 3 在AWS部署与发布你面向全球的Python Serverless应用 谢洪恩0 码力 | 53 页 | 24.15 MB | 1 年前3
 07 FPGA 助力Python加速计算 陈志勇MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 Ø 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite Ø AI inference IP: xDNN Ø AI development tools: xfDNN Ø 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 34 页 | 6.89 MB | 1 年前3 07 FPGA 助力Python加速计算 陈志勇MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 Ø 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite Ø AI inference IP: xDNN Ø AI development tools: xfDNN Ø 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 34 页 | 6.89 MB | 1 年前3
 2_FPGA助力Python加速计算_陈志勇MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 Ø 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite Ø AI inference IP: xDNN Ø AI development tools: xfDNN Ø 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 33 页 | 8.99 MB | 1 年前3 2_FPGA助力Python加速计算_陈志勇MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 Ø 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite Ø AI inference IP: xDNN Ø AI development tools: xfDNN Ø 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 33 页 | 8.99 MB | 1 年前3
 FPGA助力Python加速计算 陈志勇 MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 ➢ 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite ➢ AI inference IP: xDNN ➢ AI development tools: xfDNN ➢ 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 34 页 | 4.19 MB | 1 年前3 FPGA助力Python加速计算 陈志勇 MHz 1 clock cycle = 600 MSPS C8 C128 126 loops needed to process samples FPGA 运行频率 DSP 运行频率 6 ➢ 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 Machine learning suite ➢ AI inference IP: xDNN ➢ AI development tools: xfDNN ➢ 在云端的AI 应用,可以接受 python 语言进行部署,做数据预处理和后处理工作。 29 Python in Xilinx ML Framework xDNN CNN Processing Engine xfDNN Middleware, Tools0 码力 | 34 页 | 4.19 MB | 1 年前3
 Hello 算法 1.0.0b4 Python版除了以上表格内容,搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无需任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 二分查找 ‧ 适用于大 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适合对查询效率 要求较高且无需范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 Java)的内置排序函数都采用了插入排序,大致思路为:对于长数组,采用基 于分治的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序。这是因为: ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 329 页 | 27.34 MB | 1 年前3 Hello 算法 1.0.0b4 Python版除了以上表格内容,搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无需任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 二分查找 ‧ 适用于大 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适合对查询效率 要求较高且无需范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 Java)的内置排序函数都采用了插入排序,大致思路为:对于长数组,采用基 于分治的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序。这是因为: ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 329 页 | 27.34 MB | 1 年前3
 Hello 算法 1.1.0 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 hello‑algo 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 364 页 | 18.42 MB | 1 年前3 Hello 算法 1.1.0 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 hello‑algo 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 364 页 | 18.42 MB | 1 年前3
 Hello 算法 1.0.0b5 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 二分查找 ‧ 适用于 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适合对查询效率 要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 Java)的内置排序函数都采用了插入排序,大致思路为:对于长数组,采用基 于分治的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 361 页 | 30.64 MB | 1 年前3 Hello 算法 1.0.0b5 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 二分查找 ‧ 适用于 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适合对查询效率 要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 Java)的内置排序函数都采用了插入排序,大致思路为:对于长数组,采用基 于分治的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 361 页 | 30.64 MB | 1 年前3
 Hello 算法 1.0.0 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 hello‑algo 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 362 页 | 17.54 MB | 1 年前3 Hello 算法 1.0.0 Python版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 hello‑algo 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 362 页 | 17.54 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Python 版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 www 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 364 页 | 18.43 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Python 版有序 有序 无序 搜索算法的选择还取决于数据体量、搜索性能要求、数据查询与更新频率等。 线性搜索 ‧ 通用性较好,无须任何数据预处理操作。假如我们仅需查询一次数据,那么其他三种方法的数据预处理 的时间比线性搜索的时间还要更长。 ‧ 适用于体量较小的数据,此情况下时间复杂度对效率影响较小。 ‧ 适用于数据更新频率较高的场景,因为该方法不需要对数据进行任何额外维护。 第 10 章 搜索 www 在特定数据结构中快速定位目标元素。此类算法效 率高,时间复杂度可达 ?(log ?) 甚至 ?(1) ,但通常需要借助额外数据结构。 ‧ 实际中,我们需要对数据体量、搜索性能要求、数据查询和更新频率等因素进行具体分析,从而选择合 适的搜索方法。 ‧ 线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效 率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。 大致思路为:对于长数组,采用基于 分治策略的排序算法,例如快速排序;对于短数组,直接使用插入排序。 虽然冒泡排序、选择排序和插入排序的时间复杂度都为 ?(?2) ,但在实际情况中,插入排序的使用频率显 著高于冒泡排序和选择排序,主要有以下原因。 ‧ 冒泡排序基于元素交换实现,需要借助一个临时变量,共涉及 3 个单元操作;插入排序基于元素赋值实 现,仅需 1 个单元操作。因此,冒泡排序的计算开销通常比插入排序更高。0 码力 | 364 页 | 18.43 MB | 10 月前3
共 124 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13














