code: def build_onet(self, input_shape=None):
      if input_shape is None:
          input_shape = (48, 48, 3)
  
      o_inp = Input(input_shape)
      o_layer = Conv2D(
          32, kernel_size=(3, 3), strides=(1, 1), padding="valid"
      )(o_inp)
      o_layer = PReLU(shared_axes=[1, 2])(o_layer)
      o_layer = MaxPooling2D(
          pool_size=(3, 3), strides=(2, 2), padding="same"
      )(o_layer)
  
      o_layer = Conv2D(
          64, kernel_size=(3, 3), strides=(1, 1), padding="valid"
      )(o_layer)
      o_layer = PReLU(shared_axes=[1, 2])(o_layer)
      o_layer = MaxPooling2D(
          pool_size=(3, 3), strides=(2, 2), padding="valid"
      )(o_layer)
  
      o_layer = Conv2D(
          64, kernel_size=(3, 3), strides=(1, 1), padding="valid"
      )(o_layer)
      o_layer = PReLU(shared_axes=[1, 2])(o_layer)
      o_layer = MaxPooling2D(
          pool_size=(2, 2), strides=(2, 2), padding="same"
      )(o_layer)
  
      o_layer = Conv2D(
          128, kernel_size=(2, 2), strides=(1, 1), padding="valid"
      )(o_layer)
      o_layer = PReLU(shared_axes=[1, 2])(o_layer)
  
      o_layer = Flatten()(o_layer)
      o_layer = Dense(256)(o_layer)
      o_layer = PReLU()(o_layer)
  
      o_layer_out1 = Dense(2)(o_layer)
      o_layer_out1 = Softmax(axis=1)(o_layer_out1)
      o_layer_out2 = Dense(4)(o_layer)
      o_layer_out3 = Dense(10)(o_layer)
  
      o_net = Model(o_inp, [o_layer_out2, o_layer_out3, o_layer_out1])
      return o_net
  
imports: from tensorflow.keras.layers import Input, Dense, Conv2D, MaxPooling2D, PReLU, Flatten, Softmax
  from tensorflow.keras.models import Model
  import numpy
label_desc: Use image node_id 3 for calling the NetworkFactory obj's underlying member method code with example usage: obj.build_onet(input_shape) and returns: o_net