前言 为了便于开展面向FPGA平台的OpenCL教学,本书以人工智能领域中的神经网络为实现目标,通过学习TensorFlow框架下的神经网络训练、神经网络算法的OpenCL描述、神经网络的FPGA实现等内容,帮助读者掌握FPGA实现神经网络算法推理的整个流程,为今后从事人工智能、算法加速、FPGA开发等相关领域的工作奠定基础。 鉴于作者水平,本书未能详尽介绍OpenCL的优化策略以及复杂神经网络算法的实现,作者力争在后续版本中完成相关内容的介绍。 欢迎本领域的相关专家学者、读者批评指正,希望本书能够起到抛砖引玉的效果。 本书的出版受到了华北电力大学“双一流”研究生教材项目及国家自然科学基金项目(52177083)的支持。 本书学习指导 (1) 学习重点是基于OpenCL的FPGA开发流程。 (2) 书中未对API函数(TensorFlow API、OpenCL API)进行语法知识介绍,若想深入了解相关API的参数意义及详尽使用,请利用网络查询或查看数据手册。 (3) 请自行学习Ubuntu操作系统的使用方法并熟练掌握基本命令。 (4) 读者可采用不同的Quartus Prime 版本。 (5) 读者可采用其他FPGA开发板,但需要结合配套的BSP。 (6) 读者需根据实际的路径信息修改本书例子中的路径信息。 (7) 本书的参考学时为32学时,建议采用理论实践一体化的教学模式,各章的参考学时详见如下学时分配表。学时分配表 项目及章节课 程 内 容学时第1章绪论2第2章TensorFlow基础知识及运行环境搭建2实验1TensorFlow基础命令1第3章TensorFlow实现神经网络模型训练与测试2续表 项目及章节课 程 内 容学时实验2TensorFlow实现简易神经网络模型的训练与测试1实验3TensorFlow实现卷积神经网络模型的训练与测试1实验4TensorFlow实现MNIST数据集转换1实验5读取tfrecords格式数据并实现MNIST手写字体识别1第4章OpenCL 基础2第5章面向Intel FPGA的OpenCL运行平台搭建2实验6DE10_nano开发板运行OpenCL程序1实验7DE10_nano与PC交换数据1实验8OpenCL程序编译1实验9编写第一个OpenCL程序1第6章单层神经网络算法模型的FPGA实现流程2实验10单层神经网络算法模型的FPGA实现流程2第7章单层神经网络算法的kernel程序实现方式分析比较2实验11单层神经网络算法的kernel程序的不同实现方式1第8章具有一个隐形层的神经网络算法模型的OpenCL实现2实验12具有一个隐形层的神经网络算法模型的OpenCL实现1第9章简易卷积神经网络的OpenCL实现2实验13简易卷积神经网络算法模型的OpenCL实现1扫描下方二维码,即可加入本教材的QQ交流群。 编者2021年11月