Waikato / wekaDeeplearning4j

Weka package for the Deeplearning4j java library
https://deeplearning.cms.waikato.ac.nz/
GNU General Public License v3.0
185 stars 202 forks source link

Maven build error #5

Closed holmbergius closed 6 years ago

holmbergius commented 8 years ago

I am receiving this build error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project deeplearning4j-examples: Compilation failure [ERROR] /C:/deep4j/wekaDeeplearning4j/src/main/java/weka/dl4j/ShufflingDataSetIterator.java:[11,8] weka.dl4j.ShufflingDataSetIterator is not abstract and does not override abstract method remove() in java.util.Iterator [ERROR] -> [Help 1] [ERROR]

Is there a required version of Java? I am using JDK 7.

Thanks, Jason

DestyNova commented 8 years ago

In Java 8, interfaces can have default implementations, and the iterator interface has a default implementation of the remove method (which actually just throws an exception).

You could either reimplement this method, or switch to Java 8.

christopher-beckham commented 8 years ago

Hmm, that's an interesting error, because ShufflingDataSetIterator is not abstract, and it's not meant to be abstract either (it's an actual class). I do happen to be using Java 8 however, and that must be the required Java version for DL4J as well.

holmbergius commented 8 years ago

Switched to JDK 8. No love. :(

$ mvn clean install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building DeepLearning4j Examples 0.4-rc0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ deeplearning4j-examples --- [INFO] Deleting C:\deep4j\wekaDeeplearning4j\target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ deeplearning4j-examples --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\deep4j\wekaDeeplearning4j\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ deeplearning4j-examples --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 17 source files to C:\deep4j\wekaDeeplearning4j\target\classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /C:/deep4j/wekaDeeplearning4j/src/main/java/weka/dl4j/ShufflingDataSetIterator.java:[11,8] weka.dl4j.ShufflingDataSetIterator is not abstract and does not override abstract method remove() in java.util.Iterator [INFO] 1 error [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.642 s [INFO] Finished at: 2016-02-07T23:52:29-05:00 [INFO] Final Memory: 31M/291M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project deeplearning4j-examples: Compilation failure [ERROR] /C:/deep4j/wekaDeeplearning4j/src/main/java/weka/dl4j/ShufflingDataSetIterator.java:[11,8] weka.dl4j.ShufflingDataSetIterator is not abstract and does not override abstract method remove() in java.util.Iterator [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

$ java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b18) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

holmbergius commented 8 years ago

Fixed by adding this simple method:

public void remove(){throw new UnsupportedOperationException();}

DestyNova commented 8 years ago

Did you actually specify 1.8 in the build config source/target options in pom.xml, or just change your path to use Java 8 (which probably won't affect Maven's choice of Java version)?

christopher-beckham commented 8 years ago

Personally, my $PATH variable points to Java 8 but I realised now that pom.xml actually says 1.7 for the source and target. @holmbergius can you change 1.7 to 1.8 in pom.xml and do a mvn clean install again?

ARFS1988 commented 8 years ago

I have this following error in installation. Can someone help me ?

BUILD FAILED /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:66: Compile failed; see the compiler error output for details.

Total time: 1 second ./build.sh: linha 16: cd: dist: File or directory not found Error : Could not find or load the main class weka.core.WekaPackageManager

christopher-beckham commented 8 years ago

Make a folder called "dist" in that directory and try again. Also make sure you have weka.jar in your classpath, since I also see you have the error "Could not find or load the main class weka.core.WekaPackageManager" :)

ARFS1988 commented 8 years ago

I created the directory 'dir ' . My CLASSPATH is already on the path of weka.jar . Even with all this generates these errors !

init_all:

clean: [delete] Deleting directory /home/alan/Downloads/wekaDeeplearning4j-master/build

BUILD FAILED /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:269: Unable to delete directory /home/alan/Downloads/wekaDeeplearning4j-master/build/classes

Total time: 0 seconds Buildfile: /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml

init_all:

init_compile:

compile: [javac] /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:66: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 17 source files to /home/alan/Downloads/wekaDeeplearning4j-master/build/classes [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6 [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:9: error: package org.deeplearning4j.datasets.iterator does not exist [javac] import org.deeplearning4j.datasets.iterator.DataSetIterator; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:10: error: package org.deeplearning4j.nn.api does not exist [javac] import org.deeplearning4j.nn.api.OptimizationAlgorithm; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:11: error: package org.deeplearning4j.nn.conf does not exist [javac] import org.deeplearning4j.nn.conf.MultiLayerConfiguration; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:12: error: package org.deeplearning4j.nn.conf does not exist [javac] import org.deeplearning4j.nn.conf.NeuralNetConfiguration; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:13: error: package org.deeplearning4j.nn.conf.NeuralNetConfiguration does not exist [javac] import org.deeplearning4j.nn.conf.NeuralNetConfiguration.ListBuilder; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:14: error: package org.deeplearning4j.nn.conf does not exist [javac] import org.deeplearning4j.nn.conf.Updater; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:15: error: package org.deeplearning4j.nn.conf.layers.setup does not exist [javac] import org.deeplearning4j.nn.conf.layers.setup.ConvolutionLayerSetup; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:16: error: package org.deeplearning4j.nn.multilayer does not exist [javac] import org.deeplearning4j.nn.multilayer.MultiLayerNetwork; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:17: error: package org.nd4j.linalg.api.ndarray does not exist [javac] import org.nd4j.linalg.api.ndarray.INDArray; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:18: error: package org.nd4j.linalg.dataset does not exist [javac] import org.nd4j.linalg.dataset.DataSet; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:20: error: cannot find symbol [javac] import weka.classifiers.RandomizableClassifier; [javac] ^ [javac] symbol: class RandomizableClassifier [javac] location: package weka.classifiers [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:22: error: package weka.classifiers.rules does not exist [javac] import weka.classifiers.rules.ZeroR; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:23: error: package weka.core does not exist [javac] import weka.core.BatchPredictor; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:24: error: package weka.core does not exist [javac] import weka.core.Instance; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:25: error: package weka.core does not exist [javac] import weka.core.Instances; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:26: error: package weka.core does not exist [javac] import weka.core.OptionHandler; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:27: error: package weka.core does not exist [javac] import weka.core.OptionMetadata; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:36: error: package weka.filters does not exist [javac] import weka.filters.Filter; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:37: error: package weka.filters.supervised.attribute does not exist [javac] import weka.filters.supervised.attribute.NominalToBinary; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:38: error: package weka.filters.unsupervised.attribute does not exist [javac] import weka.filters.unsupervised.attribute.Normalize; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:39: error: package weka.filters.unsupervised.attribute does not exist [javac] import weka.filters.unsupervised.attribute.ReplaceMissingValues; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:40: error: package weka.filters.unsupervised.attribute does not exist [javac] import weka.filters.unsupervised.attribute.Standardize; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:47: error: cannot find symbol [javac] public class Dl4jMlpClassifier extends RandomizableClassifier implements BatchPredictor { [javac] ^ [javac] symbol: class RandomizableClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:47: error: cannot find symbol [javac] public class Dl4jMlpClassifier extends RandomizableClassifier implements BatchPredictor { [javac] ^ [javac] symbol: class BatchPredictor [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:49: error: cannot find symbol [javac] private ReplaceMissingValues m_replaceMissing = null; [javac] ^ [javac] symbol: class ReplaceMissingValues [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:50: error: cannot find symbol [javac] private Filter m_normalize = null; [javac] ^ [javac] symbol: class Filter [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:52: error: cannot find symbol [javac] private NominalToBinary m_nominalToBinary = null; [javac] ^ [javac] symbol: class NominalToBinary [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:53: error: cannot find symbol [javac] private ZeroR m_zeroR = new ZeroR(); [javac] ^ [javac] symbol: class ZeroR [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:55: error: cannot find symbol [javac] private MultiLayerNetwork m_model = null; [javac] ^ [javac] symbol: class MultiLayerNetwork [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/layers/Layer.java:5: error: package weka.core does not exist [javac] import weka.core.OptionHandler; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/layers/Layer.java:7: error: cannot find symbol [javac] public abstract class Layer implements Serializable, OptionHandler { [javac] ^ [javac] symbol: class OptionHandler [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:97: error: cannot find symbol [javac] private OptimizationAlgorithm m_optimAlgorithm = OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT; [javac] ^ [javac] symbol: class OptimizationAlgorithm [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:100: error: cannot find symbol [javac] public OptimizationAlgorithm getOptimizationAlgorithm() { [javac] ^ [javac] symbol: class OptimizationAlgorithm [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:104: error: cannot find symbol [javac] public void setOptimizationAlgorithm(OptimizationAlgorithm optimAlgorithm) { [javac] ^ [javac] symbol: class OptimizationAlgorithm [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:130: error: cannot find symbol [javac] public Updater m_updater = Updater.NESTEROVS; [javac] ^ [javac] symbol: class Updater [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:133: error: cannot find symbol [javac] public Updater getUpdater() { [javac] ^ [javac] symbol: class Updater [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:137: error: cannot find symbol [javac] public void setUpdater(Updater updater) { [javac] ^ [javac] symbol: class Updater [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:7: error: package org.deeplearning4j.datasets.iterator does not exist [javac] import org.deeplearning4j.datasets.iterator.DataSetIterator; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:8: error: package org.nd4j.linalg.dataset does not exist [javac] import org.nd4j.linalg.dataset.DataSet; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:10: error: package weka.core does not exist [javac] import weka.core.Instances; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:11: error: package weka.core does not exist [javac] import weka.core.Option; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:12: error: package weka.core does not exist [javac] import weka.core.OptionHandler; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:13: error: package weka.core does not exist [javac] import weka.core.OptionMetadata; [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:16: error: cannot find symbol [javac] public abstract class AbstractDataSetIterator implements OptionHandler, Serializable { [javac] ^ [javac] symbol: class OptionHandler [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:180: error: cannot find symbol [javac] public void buildClassifier(Instances data) throws Exception { [javac] ^ [javac] symbol: class Instances [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:284: error: cannot find symbol [javac] public double[] distributionForInstance(Instance inst) throws Exception { [javac] ^ [javac] symbol: class Instance [javac] location: class Dl4jMlpClassifier [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/layers/Layer.java:11: error: package org.deeplearning4j.nn.conf.layers does not exist [javac] public abstract org.deeplearning4j.nn.conf.layers.Layer getLayer(); [javac] ^ [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:26: error: cannot find symbol [javac] public abstract int getNumAttributes(Instances data) throws Exception; [javac] ^ [javac] symbol: class Instances [javac] location: class AbstractDataSetIterator [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:28: error: cannot find symbol [javac] public abstract DataSetIterator getIterator(Instances data, int seed) throws Exception; [javac] ^ [javac] symbol: class Instances [javac] location: class AbstractDataSetIterator [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:28: error: cannot find symbol [javac] public abstract DataSetIterator getIterator(Instances data, int seed) throws Exception; [javac] ^ [javac] symbol: class DataSetIterator [javac] location: class AbstractDataSetIterator [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:30: error: cannot find symbol [javac] public abstract DataSetIterator getTestIterator(Instances data, int seed, int testBatchSize) throws Exception; [javac] ^ [javac] symbol: class Instances [javac] location: class AbstractDataSetIterator [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:30: error: cannot find symbol [javac] public abstract DataSetIterator getTestIterator(Instances data, int seed, int testBatchSize) throws Exception; [javac] ^ [javac] symbol: class DataSetIterator [javac] location: class AbstractDataSetIterator [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/dl4j/iterators/AbstractDataSetIterator.java:55: error: cannot find symbol [javac] public Enumeration

BUILD FAILED /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:66: Compile failed; see the compiler error output for details.

Total time: 1 second Error : Could not find or load the main class weka.core.WekaPackageManager

ARFS1988 commented 8 years ago

updating the error ! I did the update maven !

init_all:

clean: [delete] Deleting directory /home/alan/Downloads/wekaDeeplearning4j-master/build

BUILD FAILED /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:269: Unable to delete directory /home/alan/Downloads/wekaDeeplearning4j-master/build/classes

Total time: 0 seconds Buildfile: /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml

init_all:

init_compile:

compile: [javac] /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:66: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 17 source files to /home/alan/Downloads/wekaDeeplearning4j-master/build/classes [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6 [javac] /home/alan/Downloads/wekaDeeplearning4j-master/src/main/java/weka/classifiers/functions/Dl4jMlpClassifier.java:47: error: error while writing Dl4jMlpClassifier: could not create parent directories [javac] public class Dl4jMlpClassifier extends RandomizableClassifier implements BatchPredictor { [javac] ^ [javac] 1 error

BUILD FAILED /home/alan/Downloads/wekaDeeplearning4j-master/build_package.xml:66: Compile failed; see the compiler error output for details.

Total time: 2 seconds Error : Could not find or load the main class weka.core.WekaPackageManager

ALANRAFAEL18 commented 8 years ago

The error was only the variable WEKA_HOME . Thank you!

ALANRAFAEL18 commented 8 years ago

What is the solution for this error?

Problem evaluating a buffer of length<=0;

christopher-beckham commented 8 years ago

Hi. Sorry for the delay, I will try and look at this next week since I'll have time again to dig into the codebase and see if there are any problems. Since the package uses Maven (and therefore gets the latest DL4J), I am not sure if recent changes to DL4J have made changes to my own code.

christopher-beckham commented 8 years ago

@ALANRAFAEL18 how did you obtain the error "Problem evaluating a buffer of length<=0;"? I just fixed a bug related to image loading at test time, in case that error is related somehow.

ARFS1988 commented 8 years ago

I will check! send feedback!

braun-steven commented 6 years ago

Closing, since the package has been restructured by now.