type
status
date
slug
summary
tags
category
icon
password
Property
Jan 29, 2023 11:06 AM
And you run,'Cause life is too short
起
白雪又一次覆盖这个平凡的小镇,明明是个旧年未去、新年未来的时刻,但不知为什么我的脑袋突然崩出来了写博客的念头,想来惭愧,写博客这个念头自从高中毕业就一直在我心头起起伏伏,来来回回几次折腾也是搭完就抛掷脑后了,每当想要下笔,就觉得肚子里挤不出什么墨水,实在想不出什么主题可写,近几日,忽然想到要不就尝试下周报的形式,来点流水账般的碎碎念好了,ok,那就试试吧。
关于学习
Dlsys-hw2的一次debug
在实现(抄写)hw2中Adam算子时,最后的计算图内存check一直过不掉,只好一步步去查是哪一个layer或者op实现过程有问题,最终定位到broadcast_to这个op算子的实现上。当前实现(抄的)方式是这样的:
class BroadcastTo(TensorOp): def __init__(self, shape): self.shape = shape def compute(self, a): return array_api.broadcast_to(a, self.shape) def gradient(self, out_grad, node): ### BEGIN YOUR SOLUTION ipt = node.inputs[0] grad = out_grad for _ in range(len(out_grad.shape) - len(ipt.shape)): grad = summation(grad, axes=0) for i, dim in enumerate(ipt.shape): if dim == 1: grad = grad.cached_data.sum(axis=i, keepdims=True) grad = Tensor(grad) grad = reshape(grad, ipt.shape) return [grad] ### END YOUR SOLUTION
可以看到,在反向对grad做summation这一操作时,采用了循环多次调用summation这一算子,而每一次都会在计算图中新生成一个节点,在看到另外的大佬实现时,发现其实可以将循环缩减到一次summation的,省去多余的节点,优化后内存check就过掉啦。
class BroadcastTo(TensorOp): def __init__(self, shape): self.shape = shape def compute(self, a): return array_api.broadcast_to(a, self.shape) def gradient(self, out_grad, node): ### BEGIN YOUR SOLUTION input_shape = node.inputs[0].shape input_shape_len = len(input_shape) - 1 self.reduce_dim = [] for idx in range(len(out_grad.shape)-1, -1, -1): if input_shape_len < 0: self.reduce_dim.append(idx) continue broadcast_dim_size = self.shape[idx] input_dim_size = input_shape[input_shape_len] if broadcast_dim_size != input_dim_size: self.reduce_dim.append(idx) input_shape_len -= 1 return reshape(summation(out_grad, tuple(self.reduce_dim)), input_shape) ### END YOUR SOLUTION
重新搭了一下blog
在去年想到能不能Notion去做blog后,我就做过一些尝试,当时notion还没有官方api,能用的框架也只有几个,虽然勉勉强强搭起来了,但后续很快出了问题也懒得维护了,最近想要重新写博客也就又去找了下,果然如今方案就十分成熟了,简单易用,在此推荐大家尝试NotionNext这个方案,只需几分钟,就可以搭个和本站一样的blog了,十分方便
尝试入门TensorRT
目前搜了一堆视频,学习资料,但还是一片混沌中,下周有了进度后再写写
关于生活
本周最重要的当然是,一下子从清零时代迈入共存时代了,在经历近乎一百多天的封控后,这忽如一夜春风来,属实扫去了不少阴霾,anyway,向前看吧,冬天总会过去的。
还有就是昨天趁着双12冲了一台3070ti的笔记本,因为 😷学校的服务器也整的我在家没法好好使用,等下周电脑到了就可以把环境放到本机,好好学习(游戏)喽~
终
碎碎念大概就这些了,下周见吧(可能从此又鸽了),ma ta ne(またね)~
- 作者:Difer
- 链接:https://difer.cn/article/0cfc22f3-a355-48f1-9967-791409181d2a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。