小编Rog*_*llo的帖子

在Tensorflow中恢复变量子集

我在tensorflow中训练生成对抗网络(GAN),基本上我们有两个不同的网络,每个网络都有自己的优化器.

self.G, self.layer = self.generator(self.inputCT,batch_size_tf)
self.D, self.D_logits = self.discriminator(self.GT_1hot)

...

self.g_optim = tf.train.MomentumOptimizer(self.learning_rate_tensor, 0.9).minimize(self.g_loss, global_step=self.global_step)

self.d_optim = tf.train.AdamOptimizer(self.learning_rate, beta1=0.5) \
                      .minimize(self.d_loss, var_list=self.d_vars)
Run Code Online (Sandbox Code Playgroud)

问题是我首先训练其中一个网络(g)然后,我想一起训练g和d.但是,当我调用load函数时:

self.sess.run(tf.initialize_all_variables())
self.sess.graph.finalize()

self.load(self.checkpoint_dir)

def load(self, checkpoint_dir):
    print(" [*] Reading checkpoints...")

    ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
    if ckpt and ckpt.model_checkpoint_path:
        ckpt_name = os.path.basename(ckpt.model_checkpoint_path)
        self.saver.restore(self.sess, ckpt.model_checkpoint_path)
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

我有这样的错误(有更多的追溯):

Tensor name "beta2_power" not found in checkpoint files checkpoint/MR2CT.model-96000
Run Code Online (Sandbox Code Playgroud)

我可以恢复g网络并继续使用该功能进行训练,但是当我想从头开始标记d,并且从存储的模型中获取g时,我有这个错误.

python tensorflow

15
推荐指数
1
解决办法
2万
查看次数

如何使用sparse_softmax_cross_entropy_with_logits在tensorflow中实现加权交叉熵损失

我开始使用tensorflow(来自Caffe),我正在使用损失sparse_softmax_cross_entropy_with_logits.该函数接受标签,0,1,...C-1而不是onehot编码.现在,我想根据类标签使用加权; 我知道如果我使用softmax_cross_entropy_with_logits(一个热编码),可以用矩阵乘法来完成,有没有办法做同样的事情sparse_softmax_cross_entropy_with_logits

python deep-learning caffe tensorflow cross-entropy

11
推荐指数
2
解决办法
1万
查看次数

使用为不同机器编译的静态库

我已经从作者那里获得了一篇论文的代码.问题是他已经将一些部分编译成静态库(.a)在开始时我无法使用它,因为我遇到了这个错误:

/usr/bin/ld: skipping incompatible ../lib/libmvvt.a when searching for -lmvvt
/usr/bin/ld: cannot find -lmvvt
Run Code Online (Sandbox Code Playgroud)

我意识到这是一个兼容性问题.我编译了其余库的代码,现在我得到它的工作,除了一个他没有提供源代码的库(只有标题).

在使用readelf检查库内部后,我可以看到该机器是MIPS R3000.

我的机器是x86-64.

有没有办法可以在我的机器中使用该库而无需重新编译它(因为我没有代码)?

谢谢!

c c++ gcc compiler-errors compilation

2
推荐指数
1
解决办法
122
查看次数

Minibatch SGD梯度计算-平均值或总和

我试图了解使用 minibatch SGD 时如何计算梯度。我已经在 CS231 在线课程中实现了它,但才意识到在中间层中,梯度基本上是为每个样本计算的所有梯度的总和(在 Caffe 或 Tensorflow 中的实现相同)。只有在最后一层(损失),它们才被样本数量平均。这样对吗?如果是这样,是否意味着因为在最后一层它们被平均,所以在进行反向传播时,所有梯度也会自动平均?谢谢!

machine-learning deep-learning caffe tensorflow

2
推荐指数
1
解决办法
1199
查看次数