Tensorflow session.run()不会继续

时间:2017-07-11 04:41:41

标签: python tensorflow

我正在我的机器中运行https://github.com/lordet01/segan/blob/master/train_segan.sh。代码不在下面的行中(在model.py中):

sample_noisy, sample_wav, sample_z = self.sess.run([self.gtruth_noisy[0], self.gtruth_wavs[0], self.zs[0]]) 

作为张量流初学者,这条线似乎只是将节点转换为张量。

你能否提出任何可能的原因,为什么它不能从上面的行开始? 我非常感谢任何评论:)

我的计算环境如下:  Python 3.6.0(由Anaconda安装),TensorFlow 1.2.1,Cuda 8.0,TitanX(x2)

1 个答案:

答案 0 :(得分:1)

由于问题很旧,并且存储库不是原始master分支的最新消息,因此网络的优化无法正常工作。

一些重要的更改是here

从根本上讲,由于所有梯度都存储为列表,因此模型永不收敛(或至少需要很长时间)的原因。

与您的问题相关的

新添加的内容是:

<Button shape="circle"/>

新:

def build_model(self, config):
        all_d_grads = []
        all_g_grads = []
        d_opt = tf.train.RMSPropOptimizer(config.d_learning_rate) #these lines are new
        g_opt = tf.train.RMSPropOptimizer(config.g_learning_rate) #these lines are new

OLD:

# deemphasize
c_res = de_emph(c_res, self.preemph)

#segan/data_loader method
def de_emph(y, coeff=0.95):
    if coeff <= 0:
        return y
    x = np.zeros(y.shape[0], dtype=np.float32)
    x[0] = y[0]
    for n in range(1, y.shape[0], 1):
        x[n] = coeff * x[n - 1] + y[n]
    return x

微小的变化,如整个转换为一个类,并将所有值保留为对象等。