Я решаю проблему классификации текста, ссылаясь на статью ( Ким, 2014 ).И тогда я обнаружил, что между двумя нижеприведенными моделями модель слева (Модель 1) занимает примерно в 2,5 раза больше времени, чем модель справа (Модель 2).Я думаю, что количество весовых параметров двух моделей одинаково.Почему разница во времени между двумя моделями?
* Содержимое входных данных двух моделей одинаковое.Просто изменил форму.
Я использовал tf.nn.conv2d .И формы фильтров и шаг следующие:
модель 1: 3x9x1 с количеством фильтров, шаг 3
модель 2: 1x9x3 с количеством фильтров, шаг 1
И остальные вещи такие же
*На изображении выше ширина означает «self.embedding_dim», а высота означает «self.max_length».
pooled_outputs = []
with tf.name_scope("conv-maxpool-3"):
# Convolution Layer
filter_shape = [3, self.embedding_dim, 1, self.num_filters]
W = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name="W")
b = tf.Variable(tf.constant(0.1, shape=[self.num_filters]), name="b")
conv = tf.nn.conv2d(
self.embedded_chars_expanded,
W,
strides=[1, 1, 3, 1],
padding="VALID",
name="conv")
# Apply nonlinearity
h = tf.nn.relu(tf.nn.bias_add(conv, b), name="relu")
# Maxpooling over the outputs
pooled = tf.nn.max_pool(
h,
ksize=[1, self.max_length - 3 + 1, 1, 1],
strides=[1, 1, 1, 1],
padding='VALID',
name="pool")
pooled_outputs.append(pooled)
----------------------------------------------------------------------
pooled_outputs = []
with tf.name_scope("conv-maxpool-1"):
# Convolution Layer
filter_shape = [1, self.embedding_dim, 3, self.num_filters]
W = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name="W")
b = tf.Variable(tf.constant(0.1, shape=[self.num_filters]), name="b")
conv = tf.nn.conv2d(
self.embedded_chars_expanded,
W,
strides=[1, 1, 1, 1],
padding="VALID",
name="conv")
# Apply nonlinearity
h = tf.nn.relu(tf.nn.bias_add(conv, b), name="relu")
# Maxpooling over the outputs
pooled = tf.nn.max_pool(
h,
ksize=[1, self.max_length - 1 + 1, 1, 1],
strides=[1, 1, 1, 1],
padding='VALID',
name="pool")
pooled_outputs.append(pooled)