光棍节转正了?

刚看了下手机上的日历,发现11月11日被标记为了光棍节,随后又翻看了其他月份,节气显示倒也正常。 像什么感恩节、圣诞节被标记在日历里我倒是还能理解,毕竟人家也算是国外正经的节日。可为什么光棍节也能标在上面呢。印象中小时候没有所谓这个节日,记得其来源还是在高中时代,有些人本着好玩的心理,因为11.11号是四个1,代表单身,故将其戏称为光棍节,或者它本身就是淘 …

《无耻之徒》第四季劝退

目前看到第5季第2集,前面看着还好,到第4季的时候就越看越不舒服。 前三季虽然日子过得不怎么样,但是总让人觉得一家人在菲欧娜的照顾下还算温馨和谐,第四季就感觉突然大变样了,甚至有点让人觉得活该,特别是菲欧娜。也可能是编剧想表现孩子们都长大的叛逆心理,第四季反正就是各种吵架,各种不回家,所有人都天天在外面了,确实没有一家人的感觉了:菲奥娜入狱、lip上大学、伊 …

摄影中的对焦及虚化原理

为什么会出现虚化 凸透镜会将平行光汇聚在一点,但正常情况下,物体的每个点都会像各个方向反射光线,类似于点光源。 如图,有橙色和蓝色两个物体,他们离镜头距离不同,从它们顶端发出的点光源经过凸透镜分别汇聚与B、A两点,过这两点后光线会继续分散开来。 而镜头位置恰好在B焦点所在位置,而蓝色光线经过焦点A后继续发散,到镜头时已经分散成一个光斑了(称为弥散斑)。这就是 …

pytorch中的gather方法

gather的本质是构建一个索引矩阵来获取数据 gather需要两个参数(dim, index),其中index为一个索引列表,里面元素为要修改为的索引。其形状和最终生成的结果形状一致,且与要修改矩阵的位置一一对应(如上图)。dim表示要修改哪一个维度的索引,例如,对于二维矩阵来说,dim=0则修改索引第一维,dim=1则修改第二维(如上图)

DQN中的一些问题

模型始终不收敛 这篇文章使用DQN网络训练agent平衡杆的游戏,代码可以正常运行 此时,若删除target_net,只保留eval_net,多次运行后发现,有时候模型一直都不会收敛(长时间训练后,agent仍然不能维持杆的平衡,表现仍和随机action一样)。 异常情况 正常情况 为什么DQN需要两个网络 通常在网上找到的DQN代码一般都有两个网络 …

Double DQN

为什么需要DDQN DQN使用QFunction拟合QTable,既然是拟合,就会出现和真实QValue不一致的情况。 QFunction迭代更新的方程是一个递归方程 $$ Q^{new}(s, a) = reward + λ\*max(Q^{old}(s', \*)) $$可以看到,更新 s 状态下 a 对应动作的qValue需要用到下一个状态 s’ 所有 …

关于pytorch强化学习教程的一些注释

pytorch官网给出了一个使用DQN网络实现自平衡杆的demo:https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html,以下为一些注释: 初看这段话会有些懵,它说的是policy gradient里面的一个trick。 在执行完某个策略产生的一个action序列后(例 …

OpenAI的DALL·E2体验

DALL·E是OpenAI公司开发的一个可以根据语言描述创建图片的一个AI系统,前不久升级到了2代,并邀请人们体验。我也凑热闹申请了。 申请通过后它会给你发一个链接,要求填写姓名电话号码等信息,电话号码是用来接收验证短信的,故不能乱填,遗憾的是,其目前并不支持国内的电话号码注册。但可以使用在线接收短信的服务,比如我使用的就是这个 …

模型训练一段时间后意外终止了

我在同一台电脑上同时使用cpu训练两个神经网络模型(模型并不复杂),在运行大概23个小时之后,两个同时报错了: # Program 1 error: ... RuntimeError: Caught RuntimeError in DataLoader worker process 0. ... RuntimeError: Couldn\'t open …

对torch.cuda.stream的理解

cpu个gpu是两个独立的计算单元,也就是说他们可以做设备级别并行计算 而对cpu或gpu来说,他们可能有多个核,即他们本身也可以实现并行计算 一般来说,使用cpu将数据和计算方式传给gpu,由gpu做完计算再传回给cpu(因为gpu的计算能力更强) 不管是cpu还是gpu,其数据来源和计算结果都一定在自己的设备上(cpu是内存,gpu是显存) 所以在 …