今天在学习 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 内部的某些运算做处理即可。

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

在这里插入图片描述

本网站仅支持内网访问

Read More

在之前的一篇文章里讲述了如何为 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

Your browser is out-of-date!

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

×