Git Product home page Git Product logo

Comments (2)

likyoo avatar likyoo commented on July 27, 2024

感谢提问。
在Line25中对exchange_mask进行了batch维度的扩充。

exchange_map = torch.arange(c) % self.p == 0
exchange_mask = exchange_map.unsqueeze(0).expand((N, -1))

因此,在交换时直接省略了batch维。您可以用以下代码进行验证:

import torch

x1  = torch.arange(1, 128+1).reshape(4, 8, 2, 2)
x2  = torch.arange(1, 128+1).reshape(4, 8, 2, 2) * -1
p = 2

N, c, h, w = x1.shape
        
exchange_map = torch.arange(c) % p == 0
exchange_mask = exchange_map.unsqueeze(0).expand((N, -1))

out_x1, out_x2 = torch.zeros_like(x1), torch.zeros_like(x2)
out_x1[~exchange_mask, ...] = x1[~exchange_mask, ...]
out_x2[~exchange_mask, ...] = x2[~exchange_mask, ...]
out_x1[exchange_mask, ...] = x2[exchange_mask, ...]
out_x2[exchange_mask, ...] = x1[exchange_mask, ...]

exchange_mask = exchange_map
out_x11, out_x22 = torch.zeros_like(x1), torch.zeros_like(x2)
out_x11[:, ~exchange_mask, ...] = x1[:, ~exchange_mask, ...]
out_x22[:, ~exchange_mask, ...] = x2[:, ~exchange_mask, ...]
out_x11[:, exchange_mask, ...] = x2[:, exchange_mask, ...]
out_x22[:, exchange_mask, ...] = x1[:, exchange_mask, ...]

print(torch.all(out_x1 == out_x11), torch.all(out_x2 == out_x22))

from open-cd.

GH-W5 avatar GH-W5 commented on July 27, 2024

谢谢,学习了一波

from open-cd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.