vlfeat / matconvnet-fcn

A MatConvNet-based implementation of the Fully-Convolutional Networks for image segmentation
Other
175 stars 125 forks source link

fcntrain.m code does not run out of the box fix #2

Closed sjayasur closed 9 years ago

sjayasur commented 9 years ago

Hi,

First off, thanks guys for making a great package for deep learning (MatConvNet).

So when I tried to run fcntrain.m after downloading matconvnet-fcn, I ran into several errors where lines using sprintf function where not working as below:

Warning: Control Character '\J' is not valid. See 'doc sprintf' for control characters valid in the format string.

In getBatch at 50 In fcnTrain>@(imdb,batch)getBatch(imdb,batch,opts,'prefetch',nargout==0) at 104 In cnn_train_dag>process_epoch at 164 In cnn_train_dag at 84 In fcnTrain at 97 Warning: Control Character '\S' is not valid. See 'doc sprintf' for control characters valid in the format string. In getBatch at 51 In fcnTrain>@(imdb,batch)getBatch(imdb,batch,opts,'prefetch',nargout==0) at 104 In cnn_train_dag>process_epoch at 164 In cnn_train_dag at 84 In fcnTrain at 97 Warning: could not read image 'data oc11' Error using imread (line 349) File "data oc11" does not exist.

It turns out lines with this: lb = imread(sprintf(imdb.paths.classSegmentation, imdb.images.name{train(i)})) ;

can be replaced with this: lb = imread([imdb.paths.classSegmentation(1:end-6),imdb.images.name{train(i)},'.png']) ;

and then the code runs as intended. I'm operating on Matlab2014a on Windows 7 64 bit with a GPU NVIDIA Quadro K1200.

vedaldi commented 9 years ago

Hi, thanks for the information. Odd error! I guess I will have to double check all the code on Windows :-/

On 13 Oct 2015, at 20:44, sj498 notifications@github.com wrote:

Hi,

First off, thanks guys for making a great package for deep learning (MatConvNet).

So when I tried to run fcntrain.m after downloading matconvnet-fcn, I ran into several errors where lines using sprintf function where not working as below:

Warning: Control Character '\J' is not valid. See 'doc sprintf' for control characters valid in the format string.

In getBatch at 50 In fcnTrain>@(imdb,batch)getBatch(imdb,batch,opts,'prefetch',nargout==0) at 104 In cnn_train_dag>process_epoch at 164 In cnn_train_dag at 84 In fcnTrain at 97 Warning: Control Character '\S' is not valid. See 'doc sprintf' for control characters valid in the format string. In getBatch at 51 In fcnTrain>@(imdb,batch)getBatch(imdb,batch,opts,'prefetch',nargout==0) at 104 In cnn_train_dag>process_epoch at 164 In cnn_train_dag at 84 In fcnTrain at 97 Warning: could not read image 'data�oc11' Error using imread (line 349) File "data�oc11" does not exist.

It turns out lines with this: lb = imread(sprintf(imdb.paths.classSegmentation, imdb.images.name{train(i)})) ;

can be replaced with this: lb = imread([imdb.paths.classSegmentation(1:end-6),imdb.images.name{train(i)},'.png']) ;

and then the code runs as intended. I'm operating on Matlab2014a on Windows 7 64 bit with a GPU NVIDIA Quadro K1200.

— Reply to this email directly or view it on GitHub https://github.com/vlfeat/matconvnet-fcn/issues/2.

tanger830 commented 9 years ago

Hi, I faced the similar error:

Warning: Control Character '\J' is not valid. See 'doc sprintf' for control characters valid in the format string. In vocSetup>getImageSizes at 165 In vocSetup at 57 In fcnTrain at 43 Error using imfinfo (line 99) File"data oc11"does not exist.。

which occured when call imfinfo function:

info = imfinfo(sprintf(imdb.paths.image, imdb.images.name{j})) ;

but cannot fix by the method provided by sj498 I'm operating on Matlab2014a on Windows 7 64 bit with no GPU

lanyizheng commented 8 years ago

good solution thank you. i have the same error as you and solve it by you method.

SihamTabik commented 8 years ago

Hi,

I download 'https://github.com/vlfeat/matconvnet-fcn/matconvnet-fcn-master.zip' and tried to run fcnTrain.m.

  1. First I got the same error reported by sj498 and solved it using the solution proposed by sj498.
  2. Then as "cnn_train_dag.m" is not included in the previous "fcn" zip I copied the one from "matconvnet-1.0-beta15" and run "fcnTrain.m" again but get this error:

Error using vl_argparse (line 87) The value specified for the parameter 'leak' is a structure, but this parameter is not defined as a structure in OPTS.

Error in vl_nnrelu (line 34) opts = vl_argparse(opts, varargin) ;

Error in dagnn.ReLU/forwardAdvanced (line 25) net.vars(out).value = vl_nnrelu(net.vars(in).value, [], obj.opts{:}) ;

Error in dagnn.DagNN/eval (line 80) obj.layers(l).block.forwardAdvanced(obj.layers(l)) ;

Error in cnn_train_dag>process_epoch (line 179) net.eval(inputs, opts.derOutputs) ;

Error in cnn_train_dag (line 84) stats.train(epoch) = process_epoch(net, state, opts, 'train') ;

Error in fcnTrain (line 103) info = cnn_train_dag(net, imdb, getBatchWrapper(bopts), opts.train, ...

Does any one had a similar error and how do you fixed it?

Thank you very much in advance!

Eniac-Xie commented 7 years ago

@SihamTabik I have the same error, it seems that the pre-trained model file you use is new, try to use old one, I fix the error by changing the model file