Created
August 19, 2015 13:05
-
-
Save Seppo420/836a160424be3c9c540f to your computer and use it in GitHub Desktop.
dl4j issues
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Exception in thread "main" java.lang.IllegalArgumentException: Shape must be <= buffer length | |
| at org.nd4j.linalg.api.ndarray.BaseNDArray.<init>(BaseNDArray.java:133) | |
| at org.nd4j.linalg.jblas.NDArray.<init>(NDArray.java:65) | |
| at org.nd4j.linalg.jblas.JblasNDArrayFactory.create(JblasNDArrayFactory.java:229) | |
| at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:2919) | |
| at org.nd4j.linalg.api.ndarray.BaseNDArray.create(BaseNDArray.java:3305) | |
| at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3348) | |
| at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3372) | |
| at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3605) | |
| at org.deeplearning4j.nn.conf.preprocessor.RnnToFeedForwardPreProcessor.preProcess(RnnToFeedForwardPreProcessor.java:42) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.activationFromPrevLayer(MultiLayerNetwork.java:450) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.feedForward(MultiLayerNetwork.java:513) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.feedForward(MultiLayerNetwork.java:499) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:1250) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:1266) | |
| at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.predict(MultiLayerNetwork.java:1143) | |
| at testicle.LSTMTest.main(LSTMTest.java:130) | |
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
| at java.lang.reflect.Method.invoke(Method.java:483) | |
| at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static void main(String... args)throws Exception { | |
| /* | |
| final int numRows = 1; | |
| final int numColumns = 1; | |
| int outputNum = 1; | |
| int numSamples = 10; | |
| int batchSize = 10; | |
| int iterations = 1; | |
| int seed = 123; | |
| int listenerFreq = iterations/5; | |
| //log.info("Loading data..."); | |
| //MnistDataFetcher fetcher = new MnistDataFetcher(true); | |
| log.info("Building model..."); | |
| NeuralNetConfiguration conf = new NeuralNetConfiguration.Builder() | |
| .layer(new LSTM()) | |
| .nIn(numRows * numColumns) | |
| .nOut(numRows * numColumns) | |
| .activationFunction("sigmoid") | |
| .optimizationAlgo(OptimizationAlgorithm.LBFGS) | |
| .constrainGradientToUnitNorm(true) | |
| .lossFunction(LossFunctions.LossFunction.RMSE_XENT) | |
| .build(); | |
| Layer model = LayerFactories.getFactory(conf.getLayer()).create(conf); | |
| model.setListeners(Arrays.asList((IterationListener) new ScoreIterationListener(listenerFreq))); | |
| log.info("Training model..."); | |
| // for(int i=0 ; i < (numSamples/batchSize); i++) { | |
| DataSet mnist = getDataSet(); | |
| model.fit(mnist.getFeatureMatrix()); | |
| //} | |
| // Generative model - unsupervised and its time series based which requires different evaluation technique | |
| */ | |
| Nd4j.getRandom().setSeed(12345L); | |
| int timeSeriesLength = 2; | |
| int nIn = 1; | |
| int layerSize = 2; | |
| int nOut = 1; | |
| int miniBatchSize = 11; | |
| MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() | |
| .weightInit(WeightInit.DISTRIBUTION).dist(new NormalDistribution(0,0.1)) | |
| .regularization(false) | |
| .updater(Updater.NONE) | |
| .seed(12345L) | |
| .list(2) | |
| .layer(0, new GravesLSTM.Builder().nIn(nIn).nOut(layerSize).activation("tanh").build()) | |
| .layer(1, new OutputLayer.Builder(LossFunction.MCXENT).activation("softmax").nIn(layerSize).nOut(nOut).build()) | |
| .inputPreProcessor(1, new RnnToFeedForwardPreProcessor(timeSeriesLength)) | |
| .pretrain(false).backprop(true) | |
| .build(); | |
| MultiLayerNetwork mln = new MultiLayerNetwork(conf); | |
| mln.init(); | |
| //huutaa niin vitusti jtn helper palikkaa tahan | |
| Random r = new Random(12345L); | |
| INDArray input = Nd4j.zeros(miniBatchSize,nIn,timeSeriesLength); | |
| for( int i=0; i<miniBatchSize; i++ ){ | |
| for( int j=0; j<nIn; j++ ){ | |
| for( int k=0; k<timeSeriesLength; k++ ){ | |
| input.putScalar(new int[]{i,j,k},r.nextDouble()-0.5); | |
| } | |
| } | |
| } | |
| INDArray labels = Nd4j.zeros(miniBatchSize*timeSeriesLength,nOut); //Would be this shape after reshaping 3d -> 2d for output layer | |
| for( int i=0; i<labels.size(0); i++){ | |
| int idx = r.nextInt(nOut); | |
| labels.putScalar(new int[]{i,idx}, 1.0f); | |
| } | |
| //DataSet ds = new DataSet(input,labels); | |
| mln.fit(input,labels); | |
| log.info("los tulos: {}",mln.predict(Nd4j.zeros(1,nIn))); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment