Technical

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

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

@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 内部的某些运算做处理即可。

在之前的一篇文章里讲述了如何为 ESXI 系统上的虚拟机挂载新的存储,由此我又想到了另外一件事情,如何为 ESXI 系统本身挂载存储呢?

恰好,这件事情我还真的做过,一年前为我们工作室的 MacPro 置备了新的 2TB 机械硬盘,上面运行的也是 ESXI 系统,为此也踩了一些小坑,俾如说尝试了通过 ssh 链接到到 MacPro 上,但是找不到已经插上去的物理磁盘,经过百般折腾后终于找到了正确的姿势:为了给 ESXI 系统挂载磁盘,我们仍然需要使用 VsPhere Client。

Read More

最近我维护的某内网网站,已经吃了 20 个 T 的资源,现在面临存储不够的问题。好在上个学期老师又给了我们 20 个 T 的存储,现在是时候挂载到服务器上了,这篇文章则记录了我挂载的过程。

我们的站点,存在着多个安装在 ESXI 系统中的虚拟机作为文件服务器,现在对其中一个进行硬盘的扩容。

Read More

人到大三、也不想考研。在留在大学有限的时间里,想做一些有意义的事情。第一个想法是开发一个应用,可以查课表、成绩、空教室等等,毕竟在我的学校大多数人使用的超级课程表,面对那么多用户,那么多高校的教务系统,所以难免会有些高延迟。如果我们缩小用户范围,仅仅面对我们学校,那速度肯定会快很多的,但是询问过学校的信息中心,发现高校用的教务系统是外包给外面的公司管理的,并没有 API 接口。于是首要任务变成了提供 API 接口

Read More

2019 年在实验室的主机上安装了黑苹果,迫于体验极佳,在 19 年的最后一个月入了 MacBookPro 替代原来的游戏本提高生产力,这一篇文章也因此而来。

不得不说,Mac 剪辑视频、写 Web 都是极佳的利器,但我作为一名电子专业的学生,平时需要使用的一些 EDA 软件。他们有很多仅支持 Windows,或者仅在 Windows 上能够破解,这成为了令很多电子类专业用 MacBook 的同学一个脑阔疼的问题,最简单直接的办法是安装双系统,大部分人都是如此。但我在买笔记本之前就已经想好退路了,要我在 Mac 上装双系统是不可能的,接下来要介绍的是 How to Develop Stm32 with MacOS?

Read More

今天剪辑视频的时候,在 Bilibili 看到了想要的素材。想着白嫖是多么的舒服,于是研究了几个小时碰瓷 Bilibili 视频的方法。
网上是有挺多的,什么在 bilibili 前面加 i,加 jj,一些乱七八糟的,奈何我是尊贵的 Mac 用户,以上方法统统免疫。
最后,我研究出了自己的一套方案。

Read More

Your browser is out-of-date!

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

×