This section shall provide solutions for issues that may appear.
CUDA: GOMP Version 4.0 not found
Issue: Starting the
Dl4jMlpClassifier while using the GPU version of the package results in something similar to:
Caused by: java.lang.UnsatisfiedLinkError: /home/user/.javacpp/cache/nd4j-cuda-8.0-0.9.1-linux-x86_64.jar/org/nd4j/nativeblas/linux-x86_64/libjnind4jcuda.so: /usr/lib/x86_64-linux-gnu/libgomp.so.1: version `GOMP_4.0' not found (required by /home/user/.javacpp/cache/nd4j-cuda-8.0-0.9.1-linux-x86_64.jar/org/nd4j/nativeblas/linux-x86_64/libnd4jcuda.so)
This happens when your system is using a version below 4.9 of the gcc compiler. You can check this with:
$ gcc --version gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Therefore the libgomp.so.1 library is still of version 3.0, while the nd4j backend expects version 4.0.
Solution: Download the latest version of libgomp for your system and export the following:
For Ubuntu you can get the library here, choose your architecture, download and extract the deb-file. For amd64 architectures this would be:
$ wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libgomp1_5.4.0-6ubuntu1~16.04.4_amd64.deb $ ar vx libgomp1_5.4.0-6ubuntu1~16.04.4_amd64.deb $ tar -xvf data.tar.xz
This extracts the library to
./usr/lib/x86_64-linux-gnu/libgomp.so.1. Afterward set the
LD_PRELOAD variable to this path as an absolute path and export it as shown above.
CUDA: Failed to allocate X bytes from DEVICE memory
Issue: Your network architecture or your batch size consumes too much memory.
Solution: Use a lower batch size, or adjust your Java heap and off-heap limits to your available memory accordingly to the official Dl4J memory description.
Package Installation: Skipping package wekaDeeplearning4j the OS/arch (Windows 7/8/10 x86) does not meet package OS/arch constraints: 64
Issue: Either your operating system is 32 bit or your installed Java version is 32 bit. WekaDeeplearning4j requires a 64 bit OS and Java installation.
Solution: Install a 64 bit Java version. If your operating system is 32 bit, there is no solution besides installing a 64 bit OS.
Layer Specification Not Updating in GUI
Loading the layer specification can take a long time for the larger zoo models, so this
is done in a separate thread to avoid freezing the GUI. The downside is that the
doesn't update the layer specification after it's finished loading.
If you would like to view/edit the layer specification, follow these steps:
Preview zoo model layer specification in GUI to
- Select a
Zoo Model, this will trigger the layer specification to be loaded (you should see
an on-screen loading message)
- Edit any of the other
Dl4jMlpClassifier options (e.g.,
number of epochs). This will trigger
the GUI to redraw, which will grab the layer specification loaded previously.