我正在我的机器中运行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)
答案 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
微小的变化,如整个转换为一个类,并将所有值保留为对象等。