【发布时间】:2023-01-28 00:36:48
【问题描述】:
晚上好!
对于背景: 对于大学,我正在尝试重现 CryoGAN 网络(带有 GAN 的 CryoEM)。 目标是重现蛋白质的 3D 结构;给定的数据是真实蛋白质的投影图像。对于 CryoGAN,生成器本身并不包含神经网络,而是由一个体积(用于蛋白质)和一个物理模拟器组成,后者创建 3d 体积的 2D 投影。物理模拟器是一个工作程序,所以我唯一想训练的是体积本身。 该体积是 128x128x128 体素的 3D 张量。
我的想法是,为体积创建一个张量,并将其用作学习的参数。代码运行通过,但音量不更新:( 你碰巧有什么想法吗?我在下面附加了相关行。 提前致谢!
class Generator(nn.Module):
def __init__(self):
super().__init__()
self.gen = nn.Parameter(torch.rand(128, 128, 128))
def forward(self, x):
return self.gen(x)
gen = Generator(projection_pixels)
opt_gen = optim.Adam(gen.parameters(), lr=lr)
loss_criterion = nn.BCELoss()
#...feeding discriminator with projections from fake and real protein, calculating loss for generator
gen.zero_grad()
lossG.backward()
opt_gen.step()
我已经尝试将卷的初始化更改为
self.gen = nn.Parameter(torch.FloatTensor(128,128,128).uniform_())
但这并没有改变任何事情。
【问题讨论】:
标签: pytorch generative-adversarial-network