我有一个叫做torch.Size([N, 2**n, 2**n])state的张量,我想应用以下运算:

state[[0,1]] = state[[1,0]]
state[0] = -1*state[0]

这两项都是就地操作.是否有一些不适合我的操作可以替代它们?这些行是inside a for-loop行,所以创建新变量有点困难.

推荐答案

我设法弄明白了!

Replace:

state[[0,1]] = state[[1,0]] # in-place operation

with:

state = state[[1,0]] # out-of-place operation

至于第二行,我们是replace:

state[0] = -1*state[0] # in-place operation

with:

# out-of-place operations
temp = torch.ones(state.shape).type(state.type()).to(state.device)
temp[1] = -1*temp[1]
state = state*temp

这似乎很管用!

Python相关问答推荐

在Windows上启动新Python项目的正确步骤顺序

如何使用Python中的clinicalTrials.gov API获取完整结果?

Python中是否有方法从公共域检索搜索结果

将HTML输出转换为表格中的问题

rame中不兼容的d类型

无法通过python-jira访问jira工作日志(log)中的 comments

Telethon加入私有频道

如何更改分组条形图中条形图的 colored颜色 ?

在np数组上实现无重叠的二维滑动窗口

梯度下降:简化要素集的运行时间比原始要素集长

导入...从...混乱

从嵌套的yaml创建一个嵌套字符串,后面跟着点

在两极中过滤

从Windows Python脚本在WSL上运行Linux应用程序

如何将数据帧中的timedelta转换为datetime

Flask运行时无法在Python中打印到控制台

Python pint将1/华氏度转换为1/摄氏度°°

如何在Gekko中使用分层条件约束

如何重新组织我的Pandas DataFrame,使列名成为列值?

对于标准的原始类型注释,从键入`和`从www.example.com `?