0 votes
1 view
in Azure by (5.8k points)

Someone should add "net#" as a tag. I'm trying to improve my neural network in Azure Machine Learning Studio by turning it into a convolution neural net using this tutorial:

https://gallery.cortanaintelligence.com/Experiment/Neural-Network-Convolution-and-pooling-deep-net-2

The differences between mine and the tutorial are I'm doing the regression with 35 features and 1 label and they're doing classification with 28x28 features and 10 labels.

I start with the basic and 2nd example and get them working with:

input Data [35];

hidden H1 [100]

    from Data all;

hidden H2 [100]

    from H1 all;

output Result [1] linear

    from H2 all;

Now the transformation to convolution I misunderstand. In the tutorial and documentation here: https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-azure-ml-netsharp-reference-guide it doesn't mention how the node tuple values are calculated for the hidden layers. The tutorial says:

hidden C1 [5, 12, 12]

  from Picture convolve {

    InputShape  = [28, 28];

    KernelShape = [ 5,  5];

    Stride      = [ 2,  2];

    MapCount = 5;

  }

hidden C2 [50, 4, 4]

   from C1 convolve {

     InputShape  = [ 5, 12, 12];

     KernelShape = [ 1,  5,  5];

     Stride      = [ 1,  2,  2];

     Sharing     = [ F,  T,  T];

     MapCount = 10;

  }

Seems like the [5, 12, 12] and [50,4,4] pop out of nowhere along with the KernalShape, Stride, and MapCount. How do I know what values are valid for my example? I tried using the same values, but it didn't work and I have a feeling since he has a [28,28] input and I have a [35], I need tuples with 2 integers, not 3.

I just tried with random values that seem to correlate with the tutorial:

const { T = true; F = false; }

input Data [35];

hidden C1 [7, 23]

  from Data convolve {

    InputShape  = [35];

    KernelShape = [7];

    Stride      = [2];

    MapCount = 7;

  }

hidden C2 [200, 6]

   from C1 convolve {

     InputShape  = [ 7, 23];

     KernelShape = [ 1,  7];

     Stride      = [ 1,  2];

     Sharing     = [ F,  T];

     MapCount = 14;

  }

hidden H3 [100]

  from C2 all;

output Result [1] linear

  from H3 all;

Right now it seems impossible to debug because the only error code Azure Machine Learning Studio ever gives is:

Exception":{"ErrorId":"LibraryException","ErrorCode":"1000","ExceptionType":"ModuleException","Message":"Error 1000: TLC library exception: Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown.","Exception":{"Library":"TLC","ExceptionType":"LibraryException","Message":"Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown."}}}Error: Error 1000: TLC library exception: Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown. Process exited with error code -2

Lastly, my setup is Azure Machine Learning Setup

Azure Machine Learning Setup

Thanks for the help!

1 Answer

0 votes
by (9.6k points)

The correct network definition is:

const { T = true; F = false; }

input Data [35];

hidden C1 [7, 15]

  from Data convolve {

    InputShape  = [35];

    KernelShape = [7];

    Stride      = [2];

    MapCount = 7;

  }

hidden C2 [14, 7, 5]

   from C1 convolve {

     InputShape  = [ 7, 15];

     KernelShape = [ 1,  7];

     Stride      = [ 1,  2];

     Sharing     = [ F,  T];

     MapCount = 14;

  }

hidden H3 [100]

  from C2 all;

output Result [1] linear

  from H3 all;

Learn more about it on a comprehensive blog on Convolutional Neural Network.

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...