为了账号安全,请及时绑定邮箱和手机立即绑定

Keras 只使用一个内核

Keras 只使用一个内核

杨魅力 2021-11-09 14:35:00
我在 Tensorflow 后端使用 Keras。问题是我的 CPU 中只有一个核心在训练期间被积极使用。我以下列方式声明我的模型:class GAN():    def __init__(self):        with k.backend.name_scope("Discriminator"):            self.discriminator = build_discriminator(input_shape,                                                      discriminanator_units)            self.discriminator.compile(optimizer=k.optimizers.Adam(0.0005),                                       loss=k.losses.binary_crossentropy,                                       metrics=[k.metrics.binary_accuracy])        with k.backend.name_scope("Generator"):            discriminator_frozen = k.Model(self.discriminator.inputs,                           self.discriminator.outputs,                           name="Disc_frozen")            discriminator_frozen.trainable = False            ... # declare input placeholders            self.generator = build_generator(input_shape, generator_units)            self.prediction = self.generator(inputs=input_list)            ...  # some Lambda layers            evaluation = discriminator_frozen(self.positions_pelvis_relative)            self.combined = k.Model(inputs=[*input_list,                                            self.mask,                                            self.adjacency],                                    outputs=[evaluation])            self.combined.compile(optimizer=k.optimizers.Adam(0.0015),                                  loss=self.gan_loss,                                  metrics=[self.displacement_loss,                                           self.discriminator_loss,                                           self.adjacency_loss])当我预训练时self.discriminator,所有 CPU 内核都在使用,但是当我与生成器交替训练时,只使用了 1 个内核。
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

结果发现,在生成器训练阶段有一个随机抽样操作,导致了整个过程的瓶颈。在使用所有 CPU 内核之后,我创建了一个随机噪声数据集并从中采样。


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信