'Tensorflow parallel execution of convolutions

I have implemented convolutional network with separated convolution branches, but I am not sure if it is executed in parallel right now or is it sequential because of my code. If this is not parallel, how can I achieve that then?

import tensorflow as tf


def build_cnn() -> tf.keras.Model:

    inputs = tf.keras.layers.Input((1024, ))
    x = tf.keras.layers.Embedding(input_dim=1024, output_dim=16)(inputs)

    c1 = tf.keras.layers.Conv1D(filters=128, kernel_size=2, padding="valid")(x)
    c1 = tf.keras.layers.BatchNormalization()(c1)
    c1 = tf.keras.layers.Conv1D(filters=128, kernel_size=2, padding="valid")(c1)
    c1 = tf.keras.layers.Lambda(lambda x: tf.reduce_sum(x, axis=1))(c1)

    c2 = tf.keras.layers.Conv1D(filters=192, kernel_size=3, padding="valid")(x)
    c2 = tf.keras.layers.BatchNormalization()(c2)
    c2 = tf.keras.layers.Conv1D(filters=192, kernel_size=3, padding="valid")(c2)
    c2 = tf.keras.layers.Lambda(lambda x: tf.reduce_sum(x, axis=1))(c2)

    c3 = tf.keras.layers.Conv1D(filters=256, kernel_size=3, padding="valid")(x)
    c3 = tf.keras.layers.BatchNormalization()(c3)
    c3 = tf.keras.layers.Conv1D(filters=256, kernel_size=3, padding="valid")(c3)
    c3 = tf.keras.layers.Lambda(lambda x: tf.reduce_sum(x, axis=1))(c3)

    c4 = tf.keras.layers.Conv1D(filters=512, kernel_size=3, padding="valid")(x)
    c4 = tf.keras.layers.BatchNormalization()(c4)
    c4 = tf.keras.layers.Conv1D(filters=512, kernel_size=3, padding="valid")(c4)
    c4 = tf.keras.layers.Lambda(lambda x: tf.reduce_sum(x, axis=1))(c4)

    concat_output = tf.keras.layers.Concatenate()([c1, c2, c3, c4])
    concat_output = tf.keras.layers.BatchNormalization()(concat_output)
    concat_output = tf.keras.layers.Dense(128 + 192 + 256 + 512, activation="relu")(concat_output)
    concat_output = tf.keras.layers.BatchNormalization()(concat_output)
    concat_output = tf.keras.layers.Dense(128 + 192 + 256 + 512, activation="relu")(concat_output)
    concat_output = tf.keras.layers.BatchNormalization()(concat_output)
    outputs = tf.keras.layers.Dense(100, activation="sigmoid")(concat_output)

    model = tf.keras.Model(inputs, outputs)

    return model


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source