mirror of
https://github.com/xiph/opus.git
synced 2025-05-17 17:08:29 +00:00
wip...
This commit is contained in:
parent
211435f5d3
commit
b6af21f31c
2 changed files with 17 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
||||||
from keras import backend as K
|
from keras import backend as K
|
||||||
from keras.engine.topology import Layer
|
from keras.engine.topology import Layer
|
||||||
from keras.layers import activations, initializers, regularizers, constraints, InputSpec, Conv1D
|
from keras.layers import activations, initializers, regularizers, constraints, InputSpec, Conv1D, Dense
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
class GatedConv(Conv1D):
|
class GatedConv(Conv1D):
|
||||||
|
@ -42,13 +42,16 @@ class GatedConv(Conv1D):
|
||||||
self.out_dims = filters
|
self.out_dims = filters
|
||||||
self.nongate_activation = activations.get(activation)
|
self.nongate_activation = activations.get(activation)
|
||||||
|
|
||||||
def call(self, inputs, memory=None):
|
def call(self, inputs, cond=None, memory=None):
|
||||||
if memory is None:
|
if memory is None:
|
||||||
mem = K.zeros((K.shape(inputs)[0], self.mem_size, K.shape(inputs)[-1]))
|
mem = K.zeros((K.shape(inputs)[0], self.mem_size, K.shape(inputs)[-1]))
|
||||||
else:
|
else:
|
||||||
mem = K.variable(K.cast_to_floatx(memory))
|
mem = K.variable(K.cast_to_floatx(memory))
|
||||||
inputs = K.concatenate([mem, inputs], axis=1)
|
inputs = K.concatenate([mem, inputs], axis=1)
|
||||||
ret = super(GatedConv, self).call(inputs)
|
ret = super(GatedConv, self).call(inputs)
|
||||||
|
if cond is not None:
|
||||||
|
d = Dense(2*self.out_dims, use_bias=False, activation='linear')
|
||||||
|
ret = ret + d(cond)
|
||||||
ret = self.nongate_activation(ret[:, :, :self.out_dims]) * activations.sigmoid(ret[:, :, self.out_dims:])
|
ret = self.nongate_activation(ret[:, :, :self.out_dims]) * activations.sigmoid(ret[:, :, self.out_dims:])
|
||||||
if self.return_memory:
|
if self.return_memory:
|
||||||
ret = ret, inputs[:, :self.mem_size, :]
|
ret = ret, inputs[:, :self.mem_size, :]
|
||||||
|
|
|
@ -4,6 +4,7 @@ import math
|
||||||
from keras.models import Model
|
from keras.models import Model
|
||||||
from keras.layers import Input, LSTM, CuDNNGRU, Dense, Embedding, Reshape, Concatenate, Lambda, Conv1D, Add, Multiply, Bidirectional, MaxPooling1D, Activation
|
from keras.layers import Input, LSTM, CuDNNGRU, Dense, Embedding, Reshape, Concatenate, Lambda, Conv1D, Add, Multiply, Bidirectional, MaxPooling1D, Activation
|
||||||
from keras import backend as K
|
from keras import backend as K
|
||||||
|
from keras.initializers import VarianceScaling
|
||||||
from mdense import MDense
|
from mdense import MDense
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import h5py
|
import h5py
|
||||||
|
@ -34,12 +35,20 @@ def new_wavenet_model(fftnet=False):
|
||||||
rfeat = rep(cfeat)
|
rfeat = rep(cfeat)
|
||||||
#tmp = Concatenate()([pcm, rfeat])
|
#tmp = Concatenate()([pcm, rfeat])
|
||||||
tmp = pcm
|
tmp = pcm
|
||||||
|
init = VarianceScaling(scale=1.5,mode='fan_avg',distribution='uniform')
|
||||||
for k in range(10):
|
for k in range(10):
|
||||||
res = tmp
|
res = tmp
|
||||||
tmp = Concatenate()([tmp, rfeat])
|
|
||||||
dilation = 9-k if fftnet else k
|
dilation = 9-k if fftnet else k
|
||||||
c = GatedConv(units, 2, dilation_rate=2**dilation, activation='tanh')
|
'''#tmp = Concatenate()([tmp, rfeat])
|
||||||
tmp = Dense(units, activation='relu')(c(tmp))
|
c = GatedConv(units, 2, dilation_rate=2**dilation, activation='tanh', kernel_initializer=init)
|
||||||
|
tmp = Dense(units, activation='relu')(c(tmp, cond=rfeat))'''
|
||||||
|
|
||||||
|
tmp = Concatenate()([tmp, rfeat])
|
||||||
|
c1 = CausalConv(units, 2, dilation_rate=2**dilation, activation='tanh')
|
||||||
|
c2 = CausalConv(units, 2, dilation_rate=2**dilation, activation='sigmoid')
|
||||||
|
tmp = Multiply()([c1(tmp), c2(tmp)])
|
||||||
|
tmp = Dense(units, activation='relu')(tmp)
|
||||||
|
|
||||||
if k != 0:
|
if k != 0:
|
||||||
tmp = Add()([tmp, res])
|
tmp = Add()([tmp, res])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue