title: Error in training CNN for binary classification
body: <p>Hello Just to get familiar with the CNN I have prepared the code for the binary classification Aircraft (760 images) or non-aircraft (750).</p>
  
  <p>Here is my MATLAB Code</p>
  
  <pre><code>Npos =  numel(possitive_regions);
  Nneg =  numel(negative_regions);
  
  Npos_train = floor(0.25* Npos); 
  Npos_val = floor(0.25*Npos);
  Npos_test = floor(0.50*Npos);
  
  Nneg_train = floor(0.25*Nneg); 
  Nneg_val = floor(0.25*Nneg);
  Nneg_test = floor(0.50*Nneg);
  
  for i=1:Npos
      im= imresize (single(possitive_regions{i,:}),[50,50]);
      imdb.images.data(:,:,:, i) = im;
      imdb.images.labels(i) = 1;
  
          if i &lt;= Npos_train
              imdb.images.set(i) = 1;
          elseif i &lt;= Npos_train+Npos_val
              imdb.images.set(i) = 2;
          else
              imdb.images.set(i) = 3;
          end
  end
  
  % for negative samples
  for i=1:Nneg
      im= imresize (single(negative_regions{i,:}),[50,50]);
      imdb.images.data(:,:,:, i+Npos) = im;
      imdb.images.labels(i+Npos) = 0;
  
          if i &lt;= Nneg_train
              imdb.images.set(Npos+i) = 1;
          elseif i &lt;= Nneg_train+Nneg_val
                imdb.images.set(Npos+i) = 2;
          else
                imdb.images.set(Npos+i) = 3;                       
          end
  end
  imdb.meta.sets = {'train', 'val', 'test'} ;
  %% Network
  opts.inputSize = [50 50 3] ;
  opts.train.batchSize = 50;
  opts.train.numEpochs = 10;
  opts.train.continue = true;
  % opts.train.useGpu = false;
  opts.train.learningRate = 0.01;
  % opts = vl_argparse(opts, []);
  f = 0.01;
  
  f=1/100 ;
  net.layers = {} ;
  net.layers{end+1} = struct('type', 'conv','weights', {{f*randn(5,5,3,20, 'single'), zeros(1, 20, 'single')}},'stride', 1,'pad', 0);
  net.layers{end+1} = struct('type', 'pool','method', 'max', 'pool', [2 2], 'stride', 2, 'pad', 0) ;
  net.layers{end+1} = struct('type', 'conv', 'weights', {{f*randn(5,5,20,50, 'single'),zeros(1,50,'single')}}, 'stride', 1, 'pad', 0) ;
  net.layers{end+1} = struct('type', 'pool', 'method', 'max', 'pool', [2 2], 'stride', 2, 'pad', 0) ;
  net.layers{end+1} = struct('type', 'conv', 'weights', {{f*randn(4,4,50,500, 'single'),  zeros(1,500,'single')}}, 'stride', 1, 'pad', 0) ;
  net.layers{end+1} = struct('type', 'relu') ;
  net.layers{end+1} = struct('type', 'conv', 'weights', {{f*randn(1,1,500,10, 'single'), zeros(1,10,'single')}}, 'stride', 1, 'pad', 0) ;
  net.layers{end+1} = struct('type', 'softmaxloss') ;
  disp( 'Net is Ok.' );
  % [net, info] = trainfn(net, imdb, getBatch(opts), 'expDir', opts.expDir, net.meta.trainOpts,  opts.train, 'val', find(imdb.images.set == 3)) ;
  
  [net, info] = cnn_train( net, imdb, @getBatch, opts.train, 'val', find( imdb.images.set == 2 ) ) ;
  </code></pre>
  
  <p>The Network part I took it from the MINST example. I have saved this file and getBatch function in the MatConvNet example folder.
  When I run the <code>cnn_train</code> I am getting this output and error.</p>
  
  <p><a href="https://i.stack.imgur.com/JozTD.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JozTD.jpg" alt="enter image description here"></a>
  Anyone, please help me to resolve this error.
  Also, I have searched about this error, i found that I need to check the mex files and also compile using vl_compilenn('verbose', 1).
  I also got an error in compiling that:</p>
  
  <blockquote>
    <p>Error using mex</p>
    
    <p>LINK : fatal error LNK1104: cannot open file
    'C:\Users\z5085693\Downloads\matconvnet-1.0-beta23\matconvnet-1.0-beta23\matlab\mex\vl_nnconv.mexw64'</p>
    
    <p>Error in vl_compilenn>mex_link (line 547) mex(mopts{:}) ;</p>
    
    <p>Error in vl_compilenn (line 498)   mex_link(opts, objs, mex_dir,
    flags.mexlink) ;</p>
  </blockquote>