Я пытался внедрить 1-ую свертку с расширением
#keras.layers.Conv1D(filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
# valid , causal , same
conv = layers.Conv1D(1, 3, padding='same',
dilation_rate=1,
bias_initializer=tf.keras.initializers.zeros)
Я хочу понять, как эта 1-мерная свертка на самом деле затягивает вывод
скажем, у нас есть вход с
np.squeeze(sequence.numpy())
array([0. , 0.32380696, 0.61272254, 0.83561502, 0.96846692])
и у нас есть сверточный фильтр с
np.squeeze(conv.trainable_variables[0].numpy())
array([-0.56509803, 0.89481053, 0.6975754 ])
и когда мы пройдем свертку, результат будет
output = conv(sequence)
np.squeeze(output.numpy())
array([0. , 0.22587977, 0.71716606, 0.94819239, 1.07704752])
попробуйте реализовать 1-вольтовую свертку с расширением
Я хочу знать, как рассчитывается это выходное значение
и что, если размер фильтра и размер ядра изменятся на другое число?
conv = layer.Conv1D (2, 3, padding = 'causal',
dilation_rate = 1,
bias_initializer = tf.keras.initializers.zeros)
conv = layer.Conv1D (3, 3, padding = 'causal',
dilation_rate = 1,
bias_initializer = tf.keras.initializers.zeros)
conv = layer.Conv1D (1, 3, padding = 'causal',
dilation_rate = 2,
bias_initializer = tf.keras.initializers.zeros)
conv = layer.Conv1D (2, 3, padding = 'same',
dilation_rate = 1,
bias_initializer = tf.keras.initializers.zeros)
conv = layer.Conv1D (3, 3, padding = 'same',
dilation_rate = 1,
bias_initializer = tf.keras.initializers.zeros)
conv = layer.Conv1D (1, 3, padding = 'same',
dilation_rate = 2,
bias_initializer = tf.keras.initializers.zeros)