docs: public static ComputationGraphConfiguration.GraphBuilder inceptionV1ResC(
                      ComputationGraphConfiguration.GraphBuilder graph, String blockName, int scale,
                      double activationScale, String input) {
          // loop and add each subsequent resnet blocks
          String previousBlock = input;
          for (int i = 1; i <= scale; i++) {
              graph
                              // 1x1
                              .addLayer(nameLayer(blockName, "cnn1", i),
                                              new ConvolutionLayer.Builder(new int[] {1, 1})
                                                              .convolutionMode(ConvolutionMode.Same).nIn(1344).nOut(192)
                                                              .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
                                                              .build(),
                                              previousBlock)
                              .addLayer(nameLayer(blockName, "batch1", i),
                                              new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192)
                                                              .nOut(192).build(),
                                              nameLayer(blockName, "cnn1", i))
                              // 1x1 -> 1x3 -> 3x1
                              .addLayer(nameLayer(blockName, "cnn2", i),
                                              new ConvolutionLayer.Builder(new int[] {1, 1})
                                                              .convolutionMode(ConvolutionMode.Same).nIn(1344).nOut(192)
                                                              .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
                                                              .build(),
                                              previousBlock)
                              .addLayer(nameLayer(blockName, "batch2", i),
                                              new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192)
                                                              .nOut(192).build(),
                                              nameLayer(blockName, "cnn2", i))
                              .addLayer(nameLayer(blockName, "cnn3", i),
                                              new ConvolutionLayer.Builder(new int[] {1, 3})
                                                              .convolutionMode(ConvolutionMode.Same).nIn(192).nOut(192)
                                                              .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
                                                              .build(),
                                              nameLayer(blockName, "batch2", i))
                              .addLayer(nameLayer(blockName, "batch3", i),
                                              new BatchNormalization.Builder(false).decay(0.995).eps(0.001).nIn(192)
                                                              .nOut(192).build(),
                                              nameLayer(blockName, "cnn3", i))
                              .addLayer(nameLayer(blockName, "cnn4", i),
                                              new ConvolutionLayer.Builder(new int[] {3, 1})
                                                              .convolutionMode(ConvolutionMode.Same).nIn(192).nOut(192)
                                                              .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
                                                              .build(),
                                              nameLayer(blockName, "batch3", i))
                              .addLayer(nameLayer(blockName, "batch4", i),
                                              new BatchNormalization.Builder(false).decay(0.995).eps(0.001)
                                                              .activation(Activation.TANH).nIn(192).nOut(192).build(),
                                              nameLayer(blockName, "cnn4", i))
                              // --> 1x1 --> scale -->
                              .addVertex(nameLayer(blockName, "merge1", i), new MergeVertex(),
                                              nameLayer(blockName, "batch1", i), nameLayer(blockName, "batch4", i))
                              .addLayer(nameLayer(blockName, "cnn5", i),
                                              new ConvolutionLayer.Builder(new int[] {1, 1})
                                                              .convolutionMode(ConvolutionMode.Same).nIn(384).nOut(1344)
                                                              .cudnnAlgoMode(ConvolutionLayer.AlgoMode.NO_WORKSPACE)
                                                              .build(),
                                              nameLayer(blockName, "merge1", i))
                              .addLayer(nameLayer(blockName, "batch5", i),
                                              new BatchNormalization.Builder(false).decay(0.995).eps(0.001)
                                                              .activation(Activation.TANH).nIn(1344).nOut(1344).build(),
                                              nameLayer(blockName, "cnn5", i))
                              .addVertex(nameLayer(blockName, "scaling", i), new ScaleVertex(activationScale),
                                              nameLayer(blockName, "batch5", i))
                              // -->
                              .addLayer(nameLayer(blockName, "shortcut-identity", i),
                                              new ActivationLayer.Builder().activation(Activation.IDENTITY).build(),
                                              previousBlock)
                              .addVertex(nameLayer(blockName, "shortcut", i),
                                              new ElementWiseVertex(ElementWiseVertex.Op.Add),
                                              nameLayer(blockName, "scaling", i),
                                              nameLayer(blockName, "shortcut-identity", i));
  
              // leave the last vertex as the block name for convenience
              if (i == scale)
                  graph.addLayer(blockName, new ActivationLayer.Builder().activation(Activation.TANH).build(),
                                  nameLayer(blockName, "shortcut", i));
              else
                  graph.addLayer(nameLayer(blockName, "activation", i),
                                  new ActivationLayer.Builder().activation(Activation.TANH).build(),
                                  nameLayer(blockName, "shortcut", i));
  
              previousBlock = nameLayer(blockName, "activation", i);
          }
          return graph;
      }