PyConChina2022-上海-基于Python的深度学习框架设计与实现-刘凡平基于Python的深度学习框 架设计与实现 主讲人: 刘凡平 介绍大纲 一、背景 二、原理:深度学习框架的一般性结构 三、设计 四、应用案例 五、思考 一、背景 深度学习框架是包含深度学习模型设计、训练和验证的一套标准接口、特性库和工具包,集成深度学习 的算法封装、数据调用以及计算资源的使用,同时面向开发者提供了开发界面和高效的执行平台,是算法工 程师的必备工具之一。 美国 决方案或一般性方法。 提供模型生命周期中 科配置的各类功能组件。 实现框架最基础、最 核心的功能,帮助开发者 屏蔽底层硬件技术细节。 三、设计:最小化的深度学习框架 从模型的设计者角度思考,一个模型设计的最小使用内容。 三、设计:最小MVP深度学习框架的层次逻辑 � � � � Datasets DataLoader ABCDataset ABCDataLoader � � 训练10个epoch后的效果对比图: 预测后分类区域图 测试数据分布 五、思考 n 为什么要设计一个深度学习框架? 切勿以造轮子的初衷去设计深度学习框架,一切均需围绕业务进行。脱离业务的技术体系价值不大。 n 是否存在完美的深度学习框架? 一切以落地场景为根基,满足业务使用即可,不要过度设计,过度设计将会导致框架越来越复杂、 臃肿。 n 实现的深度学习框架与目前主流开源的结果计算结果不一致怎么办?0 码力 | 15 页 | 2.40 MB | 1 年前3
Python与高中技术课程教学 以声音制造为例 罗丹 edu.cn 目录 CONTENTS 案例教学设计思路 Python 的角色 中学STEAM课程设计 思考 案例设计背景 北大附中技术课程设置模式: 1. 不设置独立的信息技术和 通用技术课程 2. 课程设计以项目制为主 3. 教师享有较大的课程设计 自主权 案例设计背景 案例教学设计思路 1. 结合教师个人经历,学校课程设计规 划,教育部颁布的课程标准制定教学 内容和方式 内容和方式 2. 融合中学主干学科知识,明确研究对 象,训练学生研究性学习的能力 3. 打通中学学科知识和大学专业知识之 间的屏障,帮助学生拓展视野,制定 未来职业规划 声音制造教学设计 该项目以研究声音信号为核心任务,学生通过 1. 了解声音 2. 分析声音 3. 制造声音 4. 处理声音 5. 传播声音 五大研究模块来全面和深入地了解与声音信号相 关的工程物理知识和数学模型并进行相关的实践 活动 向学生介绍计算机在数据处理上的特点和局限性 3. 学习使用Python绘制简单的声音信号图像 4. 学习使用Python生成音频信号 5. 设计声音控制参数,并用Python程序实现对输出声音信号 的调整 6. 利用智能硬件平台和简单的通信方法使电子乐器和计算机 协同工作 7. 鼓励学生头脑风暴,设计不同的信号触发机制并和人机交 流方式 Python 的角色: 信号生成和处理的核心工具 Python 生成声音信号0 码力 | 12 页 | 731.76 KB | 1 年前3
Python 标准库参考指南 3.7.13 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或仅支 持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相同的方 法。好的设计强制要求这种方法在每个情况下具有相同的调用签名(因为调用顺序是在运行时确定的, 也因为该顺序要适应类层级结构的更改,还因为该顺序可能包含在运行时之前未知的兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.7.13 多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大 量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通 过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有,在静态编译语言或 仅支持单继承的语言中是不存在的。这使得实现“菱形图”成为可能,在这时会有多个基类实现相 同的方法。好的设计强制要求这种方法在每个情况下具有相同的调用签名(因为调用顺序是在运行 时确定的,也因为该顺序要适应类层级结构的更改,还因为该顺序可能包含在运行时之前未知的兄 弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式 明确指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要 的细节以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 1846 页 | 9.09 MB | 9 月前3
Python 标准库参考指南 3.8.20 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时确定的,也 因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 2052 页 | 9.74 MB | 9 月前3
Python 标准库参考指南 3.8.20 多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大 量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通 过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 确定的,也因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的 兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式 明确指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要 的细节以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大 量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通 过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 确定的,也因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的 兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式 明确指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要 的细节以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.10.15 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时确定的,也 因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.10.15 多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大 量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通 过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码 语言或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方 法。好的设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时 确定的,也因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的 兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式 明确指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要 的细节以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 23 The Python Library Reference, 发布 3.10.15 class tuple([iterable])0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.9.20 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。 Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 的用法非常相似。 第二个用例是在动态执行环境中支持协作多重继承。此用例为 Python 所独有而不存在于静态编码语言 或仅支持单继承的语言当中。这使用实现“菱形图”成为可能,即有多个基类实现相同的方法。好的 设计强制要求这样的方法在每个情况下都具有相同的调用签名(因为调用顺序是在运行时确定的,也 因为这个顺序要适应类层级结构的更改,还因为这个顺序可能包括在运行时之前未知的兄弟类)。 对于以上两个用例,典型的超类调用看起来是这样的: 并不限于在方法内部使用。两个参数的形式明确 指定参数并进行相应的引用。零个参数的形式仅适用于类定义内部,因为编译器需要填入必要的细节 以正确地检索到被定义的类,还需要让普通方法访问当前实例。 对于有关如何使用super() 来如何设计协作类的实用建议,请参阅 使用 super() 的指南。 class tuple([iterable]) 虽然被称为函数,但tuple 实际上是一个不可变的序列类型,参见在元组 与序列类型 ---0 码力 | 2146 页 | 10.17 MB | 9 月前3
共 131 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14













