PyConChina2022-上海-基于Python的深度学习框架设计与实现-刘凡平
基于Python的深度学习框 架设计与实现 主讲人: 刘凡平 介绍大纲 一、背景 二、原理:深度学习框架的一般性结构 三、设计 四、应用案例 五、思考 一、背景 深度学习框架是包含深度学习模型设计、训练和验证的一套标准接口、特性库和工具包,集成深度学习 的算法封装、数据调用以及计算资源的使用,同时面向开发者提供了开发界面和高效的执行平台,是算法工 程师的必备工具之一。 美国 决方案或一般性方法。 提供模型生命周期中 科配置的各类功能组件。 实现框架最基础、最 核心的功能,帮助开发者 屏蔽底层硬件技术细节。 三、设计:最小化的深度学习框架 从模型的设计者角度思考,一个模型设计的最小使用内容。 三、设计:最小MVP深度学习框架的层次逻辑 � � � � Datasets DataLoader ABCDataset ABCDataLoader � � 训练10个epoch后的效果对比图: 预测后分类区域图 测试数据分布 五、思考 n 为什么要设计一个深度学习框架? 切勿以造轮子的初衷去设计深度学习框架,一切均需围绕业务进行。脱离业务的技术体系价值不大。 n 是否存在完美的深度学习框架? 一切以落地场景为根基,满足业务使用即可,不要过度设计,过度设计将会导致框架越来越复杂、 臃肿。 n 实现的深度学习框架与目前主流开源的结果计算结果不一致怎么办?0 码力 | 15 页 | 2.40 MB | 1 年前307 FPGA 助力Python加速计算 陈志勇
,既解决了定制电路 的不足,又克服了原有可编程器件门电路数有限的缺点。 Ø 设计语言:硬件描述语言(HDL)是一种用来设计数字逻辑系统和描述数字电路的语言,常用 的主要有VHDL、Verilog HDL Ø 信号处理:数据可以并行处理 Ø 主要实现功能: Ø 组合逻辑 -》计数器 -》算法实现 -》SOC 设计 Ø 新一代FPGA器件:高速接口、ARM SOC、多个 IP 硬核、大容量存储器等 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 成最终的设计。 Ø 大部分算法工程师经常做的事情 Ø 大量的仿真软件:Matlab,Simulink Ø 数学建模:核心技术 Ø 硬件仿真:使用附加的硬件来替代用户系统的单片机并 完成单片机全部或大部分的功能。使用了附加硬件后用 适合C算法的工程师进行快速硬件验证 Ø 赛灵思提供基于 OpenCV 的库函数,适用于图像处理 Ø 高层次EDA开发工具,C开发者的福音,Xilinx 开发工具的核心引擎。 Ø 怎么用C语言写硬件逻辑设计? Ø 使用C 的编程语法 Ø 借用硬件设计的思路 高层次综合工具 (Vivado HLS) 11 赛灵思 openCV 库:xFopencv - HW Accelerated OpenCV Functions Level0 码力 | 34 页 | 6.89 MB | 1 年前32_FPGA助力Python加速计算_陈志勇
,既解决了定制电路 的不足,又克服了原有可编程器件门电路数有限的缺点。 Ø 设计语言:硬件描述语言(HDL)是一种用来设计数字逻辑系统和描述数字电路的语言,常用 的主要有VHDL、Verilog HDL Ø 信号处理:数据可以并行处理 Ø 主要实现功能: Ø 组合逻辑 -》计数器 -》算法实现 -》SOC 设计 Ø 新一代FPGA器件:高速接口、ARM SOC、多个 IP 硬核、大容量存储器等 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 成最终的设计。 Ø 大部分算法工程师经常做的事情 Ø 大量的仿真软件:Matlab,Simulink Ø 数学建模:核心技术 Ø 硬件仿真:使用附加的硬件来替代用户系统的单片机并 完成单片机全部或大部分的功能。使用了附加硬件后用 适合C算法的工程师进行快速硬件验证 Ø 赛灵思提供基于 OpenCV 的库函数,适用于图像处理 Ø 高层次EDA开发工具,C开发者的福音,Xilinx 开发工具的核心引擎。 Ø 怎么用C语言写硬件逻辑设计? Ø 使用C 的编程语法 Ø 借用硬件设计的思路 高层次综合工具 (Vivado HLS) 11 赛灵思 openCV 库:xFopencv - HW Accelerated OpenCV Functions Level0 码力 | 33 页 | 8.99 MB | 1 年前3FPGA助力Python加速计算 陈志勇
,既解决了定制电路 的不足,又克服了原有可编程器件门电路数有限的缺点。 ➢ 设计语言:硬件描述语言(HDL)是一种用来设计数字逻辑系统和描述数字电路的语言,常用 的主要有VHDL、Verilog HDL ➢ 信号处理:数据可以并行处理 ➢ 主要实现功能: ➢ 组合逻辑 -》计数器 -》算法实现 -》SOC 设计 ➢ 新一代FPGA器件:高速接口、ARM SOC、多个 IP 硬核、大容量存储器等 软件仿真:这种方法主要是使用计算机软件来模拟运行, 用户不需要搭建硬件电路就可以对程序进行验证,特别 适合于偏重算法的程序。软件仿真的缺点是无法完全仿 真与硬件相关的部分,因此最终还要通过硬件仿真来完 成最终的设计。 ➢ 大部分算法工程师经常做的事情 ➢ 大量的仿真软件:Matlab,Simulink ➢ 数学建模:核心技术 ➢ 硬件仿真:使用附加的硬件来替代用户系统的单片机并 完成单片机全部或大部分的功能。使用了附加硬件后用 适合C算法的工程师进行快速硬件验证 ➢ 赛灵思提供基于 OpenCV 的库函数,适用于图像处理 ➢ 高层次EDA开发工具,C开发者的福音,Xilinx 开发工具的核心引擎。 ➢ 怎么用C语言写硬件逻辑设计? ➢ 使用C 的编程语法 ➢ 借用硬件设计的思路 高层次综合工具 (Vivado HLS) 11 赛灵思 openCV 库:xFopencv - HW Accelerated OpenCV Functions Level0 码力 | 34 页 | 4.19 MB | 1 年前3Python与高中技术课程教学 以声音制造为例 罗丹
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 年前3Python3 基础教程 - 廖雪峰
5/531 Python 教程 这是小白的 Python 新手教程,具有如下特点: 中文,免费,零起点,完整示例,基于最新的 Python 3 版本。 Python 是一种计算机程序设计语言。你可能已经听说过很多种流行的编 程语言,比如非常难学的 C 语言,非常流行的 Java 语言,适合初学者 的 Basic 语言,适合网页编程的 JavaScript 语言等等。 那 Python 基础教程【完整版】 http://www.yeayee.com/ 6/531 那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是 的,但是,在非常高的抽象计算中,高级的 Python 程序设计也是非常 难学的,所以,高级程序语言不等于简单。 但是,对于初学者和完成普通任务,Python 语言是非常简单易用的。连 Google 都在大规模使用 Python,你就不用担心学了会没用。 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的 是还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数 字才能处理。最早的计算机在设计时采用 8 个比特(bit)作为一个字节 (byte),所以,一个字节能表示的最大的整数就是 255(二进制 11111111=十进制 255),如果要表示更大的整数,就必须用更多的字 节。比如两个字节可以表示的最大整数是0 码力 | 531 页 | 5.15 MB | 1 年前3Django 官方教程翻译项目
README - 5 - 本文档使用 书栈(BookStack.CN) 构建 初识 Django 初识 Django 设计模型 创建模型 享用便捷的 API 动态生成的管理页面:并非徒有其表 规划 URL 编写视图 设计模板 这只是冰山一角 Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。以下 内容简要介绍了如何使用 Django 实现一个数据库驱动的 pub_date = models.DateField() 13. headline = models.CharField(max_length=200) 初识 Django 设计模型 初识 Django - 6 - 本文档使用 书栈(BookStack.CN) 构建 14. content = models.TextField() 15. reporter contrib import admin 4. 5. from . import models 6. 7. admin.site.register(models.Article) 这样设计所遵循的理念是,站点编辑人员可以是你的员工、你的客户、或者就是你自己——而你大概不 会乐意去废半天劲创建一个只有内容管理功能的后台管理界面。 创建 Django 应用的典型流程是:先建立数据模型0 码力 | 103 页 | 1.86 MB | 1 年前3Hello 算法 1.1.0 Python版
感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; ‧ 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程 数据结构(data structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法需要在规定的输入范围内可靠地求得问题的正确解。 2. 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也0 码力 | 364 页 | 18.42 MB | 1 年前3Hello 算法 1.0.0 Python版
感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; ‧ 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 第 2 章 复杂度分析 hello‑algo.com 18 2.1 算法效率评估 在算法设计中,我们先后追求以下两个层面的目标。 1. 找到问题解法:算法需要在规定的输入范围内可靠地求得问题的正确解。 2. 寻求最优解法:同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 也0 码力 | 362 页 | 17.54 MB | 1 年前3Hello 算法 1.0.0b4 Python版
的角度提出许多宝贵建议,使得本书更适合新 手阅读。 ‧ 感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆。 ‧ 感谢苏潼为本书设计了精美的封面和 LOGO,并在我的强迫症下多次耐心修改。 ‧ 感谢 @squidfunk 提供的写作排版建议,以及杰出的开源项目 Material‑for‑MkDocs 。 在写作过程中,我阅读了 Structure」是计算机中组织和存储数据的方式。为了提高数据存储和操作性能,数据结构 的设计目标包括: ‧ 空间占用尽量减少,节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 1. 初识算法 hello‑algo.com 10 ‧ 提供简洁的数据表示和逻辑信息,以便使得算法高效运行。 数据结构设计是一个充满权衡的过程,这意味着要在某方面取得优势,往往需要在另一方面作出妥协。例如, 从总体上看,算法设计追求以下两个层面的目标: 1. 找到问题解法。算法需要在规定的输入范围内,可靠地求得问题的正确解。 2. 寻求最优解法。同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。 因此,在能够解决问题的前提下,算法效率成为主要的评价维度,主要包括: ‧ 时间效率,即算法运行速度的快慢。 ‧ 空间效率,即算法占用内存空间的大小。 简而言之,我们的目标是设计“既快又省”的0 码力 | 329 页 | 27.34 MB | 1 年前3
共 130 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13