复现代码还是得理解代码,想着记录一下过程,也方便以后查看
从main.py开始
1、在开头加上from future import print_function这句之后,即使在python2.X,使用print就得像python3.X那样加括号使用。python2.X中print不需要括号,而在python3.X中则需要。
2、from model import SEGAN, SEAE 从模型里把SEGAN, SEAE拿出来给我,直接指明东西
import model:把模型给我,之后用到要model.
3、可以使用scipy.io.wavfile.read(somefile)来读取.wav音频文件。它会返回一个元组,第一项为音频的采样率,第二项为音频数据的numpy数组。
用法:
from scipy.io import wavfile
fs, data = wavfile.read(’./output/audio.wav’)
4、import os 是导入标准库os
5、DataLoader它为我们提供的常用操作有:batch_size(每个batch的大小), shuffle(是否进行shuffle操作), num_workers(加载数据的时候使用几个子进程)
6、Pre-emphasis,预加重。与之对应的是De-emphasis去加重。是噪声整形技术在模拟信号的处理中,一项关于噪声整形技术原理的技术。
7、在执行main函数之前首先进行flags的解析,也就是说TensorFlow通过设置flags来传递tf.app.run()所需要的参数。
8、url = ‘http://downloadorg/models/imagene’
name = url.split(’/’)[-1] #以‘/ ’为分割f符,保留最后一段
print(name)
结果是:imagene
from __future__ import print_function
import tensorflow as tf
import numpy as np
from model import SEGAN, SEAE
import os
from tensorflow.python.client import device_lib
from scipy.io import wavfile#读取.wav音频文件
from data_loader import pre_emph
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"#选定GPU
devices = device_lib.list_local_devices()
flags = tf.app.flags#分别为整形、布尔型、浮点、字符串。第一个是参数名称,第二个参数是默认值,第三个是参数描述
flags.DEFINE_integer("seed",111, "Random seed (Def: 111).")
flags.DEFINE_integer("epoch", 150, "Epochs to train (Def: 150).")
flags.DEFINE_integer("batch_size", 150, "Batch size (Def: 150).")
flags.DEFINE_integer("save_freq", 50, "Batch save freq (Def: 50).")
flags.DEFINE_integer("canvas_size", 2**14, "Canvas size (Def: 2^14).")
flags.DEFINE_integer("denoise_epoch", 5, "Epoch where noise in disc is "
"removed (Def: 5).")
flags.DEFINE_integer("l1_remove_epoch", 150, "Epoch where L1 in G is "
"removed (Def: 150).")
flags.DEFINE_boolean("bias_deconv", False,
"Flag to specify if we bias deconvs (Def: False)")
flags.DEFINE_boolean("bias_downconv",