deeplearning4j / deeplearning4j/deeplearning4j-examples

RL4J Malmo Pixels example not working

Open
#987 1 comment 0 reactions 1 assignee Claimed by @saudet View on GitHub
bug
Dominant language
Java
Stars
2.5k
Forks
1.8k
PR merge metrics
No merged PRs in 30d

Description

Deeplearning4j version: 1.0.0-beta-7

Issue Description:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid size: cannot get size of dimension 2 for rank 1 NDArray

The observation "MalmoBox" is a rank 1 array of double while QLearningDiscreteConv expects a rank 3 array.

So that was any fix, I created a custom observation class for game pixel data,and passed a rank 3 array in the form of [x * y pixels * channels, 1, 1] - that's the only configuration that work, but then I get an out of bounds error.

Rank: 3, DataType: DOUBLE, Offset: 0, Order: c, Shape: [1200,1,1], Stride: [1,1,1]
Exception in thread "main" java.lang.IndexOutOfBoundsException: 176
at org.bytedeco.javacpp.indexer.Indexer.checkIndex(Indexer.java:94)
at org.bytedeco.javacpp.indexer.UByteRawIndexer.put(UByteRawIndexer.java:95)
at org.bytedeco.javacpp.indexer.UByteRawIndexer.put(UByteRawIndexer.java:119)
at org.bytedeco.javacpp.indexer.UByteIndexer.putDouble(UByteIndexer.java:146)
at org.bytedeco.javacpp.indexer.UByteIndexer.putDouble(UByteIndexer.java:33)
at org.datavec.image.loader.NativeImageLoader.asMat(NativeImageLoader.java:846)
at org.datavec.image.loader.NativeImageLoader.asFrame(NativeImageLoader.java:775)
at org.deeplearning4j.rl4j.observation.transform.legacy.EncodableToImageWritableTransform.transform(EncodableToImageWritableTransform.java:43)
at org.deeplearning4j.rl4j.observation.transform.legacy.EncodableToImageWritableTransform.transform(EncodableToImageWritableTransform.java:37)
at org.deeplearning4j.rl4j.observation.transform.TransformProcess.transform(TransformProcess.java:106)
at org.deeplearning4j.rl4j.util.LegacyMDPWrapper.reset(LegacyMDPWrapper.java:118)
at org.deeplearning4j.rl4j.learning.sync.qlearning.QLearning.refacInitMdp(QLearning.java:158)
at org.deeplearning4j.rl4j.learning.sync.qlearning.QLearning.trainEpoch(QLearning.java:94)
at org.deeplearning4j.rl4j.learning.sync.SyncLearning.train(SyncLearning.java:96)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.