前言

二年级我在参加全国大学生集成电路创新创业大赛的时候,有幸见到了将 CNN 网络 Deploy 到 FPGA 的设计,在这之后我便一直想完成该设计。写下本文的时间是 2020 年 4 月份,三年级寒假刚开始,我便为了完成这项工作开始从头学起 Machine Learning 的理论基础,并且在了解过一些开源的 Verilog-CNN 的项目之后,一直存在着一些疑惑,但由于开发 FPGA 的设备都在校园,所以一直没有机会实践证实。

深度学习已被证明在包括图像分类(Image Classification),目标检测(Object Detection),自然语言处理(Natural Language Processing)等任务上能够取得相当不错的效果。现如今,大量的应用程序都配备了与之相关的深度学习算法,而人们使用这些应用程序甚至无法察觉到这种技术的存在。

目前看到过的将 CNN 网络 Deploy 到 FPGA 上的优秀项目是:CNN-FPGA

Read More

这篇文章给大家分享的是个人用自建图床搭建过程。

图床,也就是专门提供存储图片的地方,我们只要通过图床提供的 API 接口,把图片上传上去,就可以通过外链访问了,我们在 CSDN 发表文章,上传图片,其实就是用的 CSDN 的图床,但 CSDN 的图床有时候也挺不方便的。

比如,在我刚开始写博客的时候,我喜欢先在本地写,博客中的图片我都存储在本地的文件夹里。

Read More

李宏毅老师的作业四也同样是不好对付的,这次我仍然用 TensorFlow 实现一遍,记录踩坑过程。

迫于心疼我的笔电,这次作业在 Kaggle 编写程式、而本次作业的数据集,Kaggle 上也有现成的。

附上课程作业 4 的 Kaggle 地址:点击前往

Read More

第一次做 MachineLearning 的笔记,因为实在是碰到问题了。最近跟着李宏毅老师学习到了很多知识,课程地址:点击前往

第三个作业是 CNN。但是课程网站里的 ExampleCode 给的是 Pytorch 版本的,而我用的是 Tensorflow,懒得再安装 pytorch 环境运行,所以从头到尾自己用 keras 写了一下,在这篇文章里我记录一下我出现的一些问题。

Read More

今天在学习 TensorFlow Basic Api 的时候,碰到了一个有趣的现象。

题目是计算以 2 为基数的等比数列的和, example code 是这样的:

1
2
3
4
5
6
7
8
9
10
11
@tf.function
def converge_to_2(iters_n):
total = tf.constant(0.)
increment = tf.constant(1.)
for _ in range(iters_n):
total += increment
increment /= 2.0
return total

result = converge_to_2(20)
print(result)

我起初以为这代码是错误的,为什么 total 已经被声明成了 tf.constant,但却依然可以被赋值?那 consant 的意义何在呢。可是运行了一下,却输出了正确的结果。

经过我的反复思考,我得到了自己的答案。

首先,Python 的变量类型是动态的,也许这个变量此时还是一个数组,下一个语句执行完了之后它就变成了字典。那既然是这样,Python 就不应该存在真正的 const 类型。

但 Python 是可以存在 const 的,对么,因为 Python 中的一切都是对象,而对象的魔术方法中有专门处理赋值的,我们可以在这里做手脚,实现对想声明为 const 对象的无法赋值操作。

But, Why Constant in Tensorflow do it?

其实我们只要想象一下,为什么 Tf 要定义 constant 这个变量,绝不是让你在平时的科学计算里使用的,当我们在 Train 一个 Neural Network 的时候,要保持一些量不随梯度所改变,而需要随梯度所改变的,我们使用 tf.Variable。所以 tf.constant 没必要对科学计算进行处理,只需要对 tf 内部的某些运算做处理即可。

这篇文章要记录的是南工在线的用户系统上线过程中经历过的风风雨雨,在这个工大几乎人尽皆知的网站的背后有深藏功与名的 Mars 工作室,而我现在是 Mars 的管理人。

在这里插入图片描述

本网站仅支持内网访问

Read More

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×