Giter VIP home page Giter VIP logo

ddrl's Introduction

DDRL

Deep Developmental Reinforcement Learning

This source code is still in a research state, it has been used during my PhD thesis to develop several deep reinforcement learning agent in continuous environments (both in state and action).

It contains :

  • 4 open-source and free environments using ODE (open dynamic engine) based on OpenAI/mujuco : acrobot, cartpole, half-cheetah and humanoid. We propose those environments because the free licence of Mujoco is not enough to perform hyperparameter meta-optimization on a cluster. However a lot of deep RL algorithms relies on a large number of hyperparameters.

  • an implementation of PeNFAC with Caffe

Matthieu Zimmer and Paul Weng. Exploiting the sign of the advantage function to learn deterministic policies in continuous domains. In International Joint Conferences on Artificial Intelligence, August 2019.
  • an implementation of DDPG with Caffe
Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., … Wierstra, D. (2015). Continuous control with deep reinforcement learning. arXiv Preprint arXiv:1509.02971.
  • an implementation of NFAC(λ)-V (extended with eligibility traces)
Matthieu Zimmer, Yann Boniface, and Alain Dutech. Neural fitted actor-critic. In ESANN – European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning, April 2016.

Matthieu Zimmer. Developmental reinforcement learning. PhD thesis, University of Lorraine, January 2018.
  • an implementation of developmental layers for NFAC(λ)-V and DDPG
Matthieu Zimmer, Yann Boniface, and Alain Dutech. Developmental Reinforcement Learning through Sensorimotor Space Enlargement. Developmental reinforcement learning through sensorimotor space enlargement. In The 8th Joint IEEE International Conference on Development and Learning and on Epigenetic Robotics, September 2018.
  • an implementation of CMA-ES with Caffe
Auger, A., & Hansen, N. (2005). A restart CMA evolution strategy with increasing population size. In Evolutionary Computation, 2005. The 2005 IEEE Congress on (Vol. 2, pp. 1769–1776).
  • an synchronized and simplified implementation of A3C
Mnih, V., Badia, A. P., Mirza, M., Graves, A., Lillicrap, T., Harley, T., … Kavukcuoglu, K. (2016). Asynchronous methods for deep reinforcement learning. In International Conference on Machine Learning (pp. 1928–1937).
  • an implementation of CACLA
Van Hasselt, H., & Wiering, M. A. (2007). Reinforcement learning in continuous action spaces. In Proceedings of the IEEE Symposium on Approximate Dynamic Programming and Reinforcement Learning (pp. 272–279). http://doi.org/10.1109/ADPRL.2007.368199
  • an implementation of DPG (Determinist Policy Gradient)
Silver, D., Lever, G., Heess, N., Degris, T., Wierstra, D., & Riedmiller, M. (2014). Deterministic Policy Gradient Algorithms. Proceedings of the 31st International Conference on Machine Learning (ICML-14), 387–395.
  • an implementation of SPG (Stochastic Policy Gradient)
Sutton, R. S., Mcallester, D., Singh, S., & Mansour, Y. (1999). Policy Gradient Methods for Reinforcement Learning with Function Approximation. In Advances in Neural Information Processing Systems 12, 1057–1063. http://doi.org/10.1.1.37.9714
  • an implementation of Elastic Weight Constraint for Caffe
Kirkpatrick, J., Pascanu, R., Rabinowitz, N., Veness, J., Desjardins, G., Rusu, A. A., ... & Hassabis, D. (2017). Overcoming catastrophic forgetting in neural networks. Proceedings of the National Academy of Sciences, 114(13), 3521-3526.
  • an implementation of inverting gradient strategy
Hausknecht, Matthew, and Peter Stone. "Deep reinforcement learning in parameterized action space." arXiv preprint arXiv:1511.04143 (2015).

Everything has been developed in C++. The neural network library used is Caffe.

Demo

Install

Main dependencies : boost (>=1.54), caffe, ode(>=0.14). However, it needs a modified version of Caffe : https://github.com/matthieu637/caffe.git RAM+SWAP > 750 MB

Archlinux

yaourt -Sy boost ode openblas-lapack hdf5 protobuf google-glog gflags leveldb snappy lmdb cuda xz cmake gtest freeimage
cd any_directory_you_want
git clone https://github.com/matthieu637/ddrl
mkdir caffe_compilation 
cd caffe_compilation
cp ../ddrl/scripts/extern/PKGBUILD-CAFFE-CPU PKGBUILD
makepkg
sudo pacman -U caffe-ddrl-git-1-x86_64.pkg.tar.xz
cd ../ddrl/
./fullBuild.bash

Ubuntu >= 14.04 (CPU Only)

Do not enable anaconda during compilation.

sudo apt-get update
#base
sudo apt-get install git libtool libboost-serialization-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev libboost-mpi-dev libopenmpi-dev libtbb-dev libglew-dev python cmake libgtest-dev automake unzip libfreeimage-dev liblapacke-dev g++
#caffe
sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit libprotobuf-dev libleveldb-dev libsnappy-dev protobuf-compiler libopenblas-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libhdf5-serial-dev
#optional for developer
sudo apt-get install astyle cppcheck doxygen valgrind htop

cd any_directory_you_want
# gtest compilation
mkdir gtest
cp -r /usr/src/gtest/* gtest
cd gtest
cmake .
make -j4
sudo cp libgtest* /usr/lib/
cd ..

# caffe compilation
git clone https://github.com/matthieu637/caffe.git
mkdir caffe/build
cd caffe/build
cmake ../ -DBLAS=Open -DBUILD_python=OFF -DUSE_OPENCV=OFF -DCPU_ONLY=On -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/
make -j4
sudo make install
cd ../..

# ode compilation is needed if official packages are under 0.14 (only required if fullbuild is called with --with-cpp)
mkdir ode
cd ode
wget https://bitbucket.org/odedevs/ode/downloads/ode-0.14.tar.gz
tar -xf ode-0.14.tar.gz
cd ode-0.14
./bootstrap
CFLAGS=-O2 CPPFLAGS=-O2 ./configure --prefix=/usr/local --enable-shared --enable-libccd --enable-double-precision --disable-asserts --disable-demos --with-drawstuff=none
make -j4
sudo make install
cd ../..

# then you can finnaly compile ddrl
git clone https://github.com/matthieu637/ddrl
cd ddrl
# to use DDRL with python (openai gym) the following build is enough
./fullBuild.bash

# if want to use ODE environments with c++ binaries
./fullBuild.bash --with-cpp

Ubuntu LTS 18.04 with GPU (CUDA 10.0)

Install CUDA 10.0 (same as tensorflow)

#remove nvidia driver and default cuda
sudo apt-get -y remove nvidia-cuda-dev nvidia-cuda-toolkit nvidia-cuda-doc nvidia-cuda-gdb nvidia-utils-390 nvidia-driver-390 nvidia-utils-410 nvidia-driver-410
sudo apt-get autoremove
#optionally unload nvidia driver if you don't want to reboot (only for server without GUI)
sudo rmmod nvidia nvidia_uvm nvidia_modeset nvidia_drm

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-key adv --fetch-keys http://202.121.180.31/cache/7fa2af80.pub
sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-get update
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update
 
# Install NVIDIA driver
sudo apt-get install --no-install-recommends nvidia-driver-418
# Reboot. Check that GPUs are visible using the command: nvidia-smi
 
# Install development and runtime libraries (~4GB)
#cuda-10-0 needs nvidia-driver-418 and not nvidia-driver-410 ... (tensorflow.org seems outdated)
sudo apt-get install cuda-10-0 libcudnn7=7.5.1.10-1+cuda10.0 libcudnn7-dev=7.5.1.10-1+cuda10.0
sudo apt-get install nvinfer-runtime-trt-repo-ubuntu1804-5.0.2-ga-cuda10.0
sudo apt-get install libnvinfer-dev=5.1.5-1+cuda10.0 libnvinfer5=5.1.5-1+cuda10.0
 
#Protect those packages from being upgraded
sudo apt-mark hold libcudnn7 libcudnn7-dev libnvinfer-dev libnvinfer5

Needs a higher version of cmake than the one present in ubuntu 18.04

wget https://github.com/Kitware/CMake/releases/download/v3.13.5/cmake-3.13.5.tar.gz
tar xf cmake-3.13.5.tar.gz
cd cmake-3.13.5
./configure --prefix=$HOME/.root/cmake
make -j 4
make install

Follow the same installation as CPU only, except for caffe:

# caffe compilation
git clone https://github.com/matthieu637/caffe.git
mkdir caffe/build
cd caffe/build
~/.root/cmake/bin/cmake ../ -DBLAS=Open -DBUILD_python=OFF -DUSE_OPENCV=OFF -DCPU_ONLY=Off -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/
make -j4
sudo make install
cd ../..

Mac (CPU Only)

#if you run a version lower than sierra (example on mavericks)
#you need to install an up-to-date llvm version for c++11 features with :
#brew tap homebrew/versions
#brew install llvm38

#install brew
brew update
brew install cmake libtool findutils coreutils boost protobuf homebrew/science/hdf5 snappy leveldb gflags glog szip tbb lmdb gnu-sed
brew install --with-double-precision --with-shared ode

#caffe compilation
cd any_directory_you_want
git clone https://github.com/matthieu637/caffe.git
mkdir caffe/build
cd caffe/build
cmake ../ -DBLAS=Open -DBUILD_python=OFF -DUSE_OPENCV=OFF -DCPU_ONLY=On -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/
make -j4
sudo make install
cd ../..

# then you can compile ddrl
git clone https://github.com/matthieu637/ddrl
cd ddrl
#if you want to use make to compile 
./fullBuild.bash
#or if you want to use Xcode projects
./fullBuild.bash xcode

no access to sudo

if you don't have access to sudo, you can adapt the script under scripts/nosudo-install

Usage with OpenAI Gym

Example to train PeNFAC on RoboschoolHalfCheetah-v1.

With a python virtual env

#create a python virtual environment with openai gym, roboschool
sudo apt-get install virtualenv
virtualenv ddrlvenv --python=python3
. ddrlvenv/bin/activate
pip install gym roboschool

or with anaconda:

. anaconda3/bin/activate
pip install gym roboschool

Goto gym directoy of ddrl and create a config.ini file with

[simulation]
total_max_steps=20000000
testing_each=20
#number of trajectories for testing
testing_trials=1


dump_log_each=50
display_log_each=100
save_agent_each=100000

library=ADAPT_PATH_TO_DDRL/agent/cacla/lib/libddrl-penfac.so
env_name=RoboschoolHalfCheetah-v1

[agent]
gamma=0.99
decision_each=1

#exploration
gaussian_policy=1
noise=0.2

#ADAM hyperparameters
momentum=0

#Neural network hyperparameters
hidden_unit_v=64:64
hidden_unit_a=64:64
#0 is linear, 1 is Leaky ReLU, 2 TanH, 3 ReLU
actor_output_layer_type=2
hidden_layer_type=1

#use online normalizer instead of batch norm
normalizer_type=2
batch_norm_actor=0
batch_norm_critic=0

#RL hyperparameters
alpha_a=0.0001
alpha_v=0.001
number_fitted_iteration=10
stoch_iter_critic=1
lambda=0.9
update_each_episode=5
stoch_iter_actor=30
beta_target=0.03

#fixed advanced setup
disable_cac=false
disable_trust_region=false
ignore_poss_ac=false
conserve_beta=true
gae=true

Then you can run this script within the virtual environment:

python run.py

In the current PeNFAC implementation:

  • the learning process (all the forward/backward propagations on the neural networks) can be parallelized according to the value of the environment variable OMP_NUM_THREADS
  • the process of collecting rollout on the environment is done in a synchronized way (i.e. with a single thread)

Usage with C++ ODE environments

Do not enable anaconda in this case. A .ini file is needed to describe the experience you want to run (neural network architecture, episodes, etc.).

#run the humanoid envionment with CMA-ES (debug version)
cd agent/cmaes/build/debug/
./humanoid --config cmaes-humanoid.ini

#run the humanoid environment with CMA-ES (release version with Xcode)
cd agent/cmaes/build/release/Release/
./humanoid --config ../cmaes-humanoid.ini

#run the humanoid envionment with CMA-ES (debug version + view)
cd agent/cmaes/build/debug/
./humanoid --config cmaes-humanoid.ini --view

The view option doesn't work on Mac because the GLUT thread need to be the main thread.

Optimizing hyperparameters

See https://github.com/matthieu637/lhpo

ddrl's People

Contributors

matthieu637 avatar snowgoon88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ddrl's Issues

FetchReach env observation_spcae

> /home/jim/ddrl/gym/run.py(174)<module>()
-> env = gym.make(env_name)
(Pdb) n
> /home/jim/ddrl/gym/run.py(175)<module>()
-> observation = env.reset()
(Pdb) p env
<TimeLimit<FetchReachEnv<FetchReach-v1>>>
(Pdb) n
> /home/jim/ddrl/gym/run.py(176)<module>()
-> nb_sensors = env.observation_space.shape[0]
(Pdb) p env.
env.__class__             env.__lt__                env._max_episode_steps
env.__delattr__           env.__module__            env._past_limit
env.__dict__              env.__ne__                env.action_space
env.__dir__               env.__new__               env.class_name
env.__doc__               env.__reduce__            env.close
env.__enter__             env.__reduce_ex__         env.compute_reward
env.__eq__                env.__repr__              env.env
env.__exit__              env.__setattr__           env.metadata
env.__format__            env.__sizeof__            env.observation_space
env.__ge__                env.__str__               env.render
env.__getattr__           env.__subclasshook__      env.reset
env.__getattribute__      env.__weakref__           env.reward_range
env.__gt__                env._elapsed_seconds      env.seed
env.__hash__              env._elapsed_steps        env.spec
env.__init__              env._episode_started_at   env.step
env.__le__                env._max_episode_seconds  env.unwrapped
(Pdb) p env.observation_space
Dict(achieved_goal:Box(3,), desired_goal:Box(3,), observation:Box(10,))
(Pdb) p env.observation_space.shape[0]
*** TypeError: 'NoneType' object is not subscriptable
(Pdb) p env.observation_space.shape

For each part in FetchReach's env.observation_space, which I need use as the observation_space in run.py?

np.ascontiguousarray error

When I use FetchReach's observation to training use penfac, I miss the error below:

(clustering) jim@jim-Inspiron-7577:~/ddrl/gym $ python run_robot.py 
{'load': None, 'save_best': False, 'config': 'config_fetch.ini', 'capture': False, 'test_only': False, 'render': False, 'view': False}
State space: [ 1.34184371e+00  7.49100477e-01  5.34717228e-01  1.89027457e-04
  7.77191143e-05  3.43749435e-06 -1.26100357e-08 -9.04671899e-08
  4.55387076e-06 -2.13287826e-06]
Action space: Box(4,)
- low: [-1. -1. -1. -1.]
- high: [1. 1. 1. 1.]
Create agent with (nb_motors, nb_sensors) :  4 10
main algo : PeNFAC(lambda)-V
episode 0 total steps 0 last perf 0
Traceback (most recent call last):
  File "run_robot.py", line 203, in <module>
    sample_step = train(env, ag, episode)
  File "run_robot.py", line 135, in train
    _, tr, _, _sample_steps = run_episode(env, ag, True, episode)
  File "run_robot.py", line 79, in run_episode
    action = ag.run(reward, observation, learning, False, False)
  File "/home/jim/ddrl/gym/agent.py", line 40, in run
    return lib.OfflineCaclaAg_run(self.obj, reward, np.ascontiguousarray(state, np.float64), learning, goal , last)
  File "/home/jim/anaconda2/envs/clustering/lib/python3.5/site-packages/numpy/core/numeric.py", line 632, in ascontiguousarray
    return array(a, dtype, copy=False, order='C', ndmin=1)
TypeError: float() argument must be a string or a number, not 'dict'

But it seems that I can calculate when in debugging:

(clustering) jim@jim-Inspiron-7577:~/ddrl/gym $ python run_robot.py 
{'render': False, 'capture': False, 'view': False, 'save_best': False, 'load': None, 'config': 'config_fetch.ini', 'test_only': False}
State space: [ 1.34184371e+00  7.49100477e-01  5.34717228e-01  1.89027457e-04
  7.77191143e-05  3.43749435e-06 -1.26100357e-08 -9.04671899e-08
  4.55387076e-06 -2.13287826e-06]
Action space: Box(4,)
- low: [-1. -1. -1. -1.]
- high: [1. 1. 1. 1.]
Create agent with (nb_motors, nb_sensors) :  4 10
main algo : PeNFAC(lambda)-V
episode 0 total steps 0 last perf 0
> /home/jim/ddrl/gym/agent.py(40)run()
-> return lib.OfflineCaclaAg_run(self.obj, reward, np.ascontiguousarray(state, np.float64), learning, goal , last)
(Pdb) l
 35  	                lib.OfflineCaclaAg_unique_invoke(self.obj, len(argv), select)
 36  	                lib.OfflineCaclaAg_run.restype = ndpointer(ctypes.c_double, shape=(nb_motors,))
 37  	
 38  	            def run(self, reward, state, learning, goal, last):
 39  	                pdb.set_trace()
 40  ->	                return lib.OfflineCaclaAg_run(self.obj, reward, np.ascontiguousarray(state, np.float64), learning, goal , last)
 41  	
 42  	            def start_ep(self, state, learning):
 43  	                lib.OfflineCaclaAg_start_episode(self.obj, np.ascontiguousarray(state, np.float64), learning)
 44  	
 45  	            def end_ep(self, learning):
(Pdb) p lib.OfflineCaclaAg_run(self.obj, reward, np.ascontiguousarray(state, np.float64), learning, goal , last)
array([-0.23061481, -0.06233114,  0.51097662, -0.33029073])
(Pdb) s
--Call--
> /home/jim/anaconda2/envs/clustering/lib/python3.5/site-packages/numpy/core/numeric.py(594)ascontiguousarray()
-> @set_module('numpy')
(Pdb) l
589  	
590  	    """
591  	    return array(a, dtype, copy=False, order=order, subok=True)
592  	
593  	
594  ->	@set_module('numpy')
595  	def ascontiguousarray(a, dtype=None):
596  	    """
597  	    Return a contiguous array (ndim >= 1) in memory (C order).
598  	
599  	    Parameters
(Pdb) n
> /home/jim/anaconda2/envs/clustering/lib/python3.5/site-packages/numpy/core/numeric.py(632)ascontiguousarray()
-> return array(a, dtype, copy=False, order='C', ndmin=1)
(Pdb) l
627  	
628  	    Note: This function returns an array with at least one-dimension (1-d)
629  	    so it will not preserve 0-d arrays.
630  	
631  	    """
632  ->	    return array(a, dtype, copy=False, order='C', ndmin=1)
633  	
634  	
635  	@set_module('numpy')
636  	def asfortranarray(a, dtype=None):
637  	    """
(Pdb) p array(a, dtype, copy=False, order='C', ndmin=1)
array([ 1.34184371e+00,  7.49100477e-01,  5.34717228e-01,  1.89027457e-04,
        7.77191143e-05,  3.43749435e-06, -1.26100357e-08, -9.04671899e-08,
        4.55387076e-06, -2.13287826e-06])
(Pdb) 


The following packages have unmet dependencies: nvidia-cuda-toolkit

If use Cuda-10.1 do not need to install nvidia-cuda-dev nvidia-cuda-toolkit, it will have error when you apt-get install any dependencies like this:

You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 nvidia-cuda-toolkit: Depends: nvidia-cuda-dev (= 7.5.18-0ubuntu1) but it is not going to be installed
E:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)

If you already meet this error, run this:
sudo apt-get purge nvidia-cuda-toolkit

About the os

Hello,i have a ubuntu14.04 ,can i build your project?

Error about use VScode to dubugging

(clustering) jim@jim-Inspiron-7577:~/ddrl $ cd /home/jim/ddrl ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /home/jim/anaconda2/envs/clustering/bin/python /home/jim/.vscode/extensions/ms-python.python-2019.5.18875/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 37635 /home/jim/ddrl/gym/run.py 
{'load': None, 'view': False, 'save_best': False, 'test_only': False, 'config': 'config.ini', 'render': False, 'capture': False}
Traceback (most recent call last):
  File "/home/jim/.vscode/extensions/ms-python.python-2019.5.18875/pythonFiles/ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "/home/jim/.vscode/extensions/ms-python.python-2019.5.18875/pythonFiles/lib/python/ptvsd/__main__.py", line 434, in main
    run()
  File "/home/jim/.vscode/extensions/ms-python.python-2019.5.18875/pythonFiles/lib/python/ptvsd/__main__.py", line 312, in run_file
    runpy.run_path(target, run_name='__main__')
  File "/home/jim/anaconda2/envs/clustering/lib/python3.5/runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/home/jim/anaconda2/envs/clustering/lib/python3.5/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/home/jim/anaconda2/envs/clustering/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/jim/ddrl/gym/run.py", line 59, in <module>
    total_max_steps=int(config['simulation']['total_max_steps'])
  File "/home/jim/anaconda2/envs/clustering/lib/python3.5/configparser.py", line 956, in __getitem__
    raise KeyError(key)
KeyError: 'simulation'

I can run this scripts in the terminal but when debugging in VScode, it have error in this line:
total_max_steps=int(config['simulation']['total_max_steps'])

Have you seen this problem before?

I can debug use pdb but vscode is supper powerful than pdb, which IDE you use for debug?

Issue when complie ddrl

command
:~/ddrl$ ./fullBuild.bash

return:

optional install : cpplint
optional install : xml
INFO : 32 CPU used
INFO : cmake well founded. Look what following to know if you need other software.
QUESTION : if a subdirectory already contains a build, should I remove it ? (y/n) [y]:
y
---------------------------------------------------------------------------------
INFO : common already contains a build directory. Removing it...
INFO : common well builed. Congratz.
---------------------------------------------------------------------------------
INFO : environment/ode-env already contains a build directory. Removing it...
INFO : environment/ode-env well builed. Congratz.
---------------------------------------------------------------------------------
INFO : environment/humanoid already contains a build directory. Removing it...
Scanning dependencies of target humanoid
Scanning dependencies of target humanoid-env
[ 14%] Building CXX object CMakeFiles/humanoid.dir/src/HumanoidWorldView.cpp.o
[ 28%] Building CXX object CMakeFiles/humanoid.dir/src/HumanoidWorld.cpp.o
[ 42%] Building CXX object CMakeFiles/humanoid-env.dir/src/test/Humanoid.cpp.o
[ 57%] Building CXX object CMakeFiles/humanoid-env.dir/src/HumanoidWorld.cpp.o
[ 71%] Building CXX object CMakeFiles/humanoid-env.dir/src/HumanoidWorldView.cpp.o
[ 85%] Linking CXX shared library ../../lib/libhumanoid.so
[ 85%] Built target humanoid
[100%] Linking CXX executable humanoid-env
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetTagExtender@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetTagListCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFTileRowSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldTag@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetFieldDefaulted@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSwabArrayOfLong@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFCurrentDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFLastDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFIsByteSwapped@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldPassCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldDataType@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFStripSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetSubDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFDefaultStripSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadRGBAImage@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `_TIFFDataSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFComputeStrip@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadTile@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFMergeFieldInfo@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetField@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFDataWidth@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetField@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldWithTag@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFWriteDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFTileSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldName@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldReadCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadEXIFDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetTagListEntry@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFClose@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
collect2: error: ld returned 1 exit status
CMakeFiles/humanoid-env.dir/build.make:181: recipe for target 'humanoid-env' failed
make[2]: *** [humanoid-env] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/humanoid-env.dir/all' failed
make[1]: *** [CMakeFiles/humanoid-env.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Is it I without install some dependencies?

Compile issue in 4e34326

sudo ./fullBuild.bash

[sudo] password for jim: 
optional install : astyle
optional install : cppcheck
optional install : cpplint
optional install : valgrind
optional install : xml
INFO : 4 CPU used
INFO : cmake well founded. Look what following to know if you need other software.
QUESTION : if a subdirectory already contains a build, should I remove it ? (y/n) [y]:
y
---------------------------------------------------------------------------------
INFO : common already contains a build directory. Removing it...
INFO : common well builed. Congratz.
---------------------------------------------------------------------------------
INFO : agent/deepqn already contains a build directory. Removing it...
INFO : agent/deepqn well builed. Congratz.
---------------------------------------------------------------------------------
INFO : agent/cacla already contains a build directory. Removing it...
Scanning dependencies of target ddrl-cacla
[  5%] Building CXX object CMakeFiles/ddrl-cacla.dir/src/pybinding/cacla.cpp.o
Scanning dependencies of target ddrl-nfac
Scanning dependencies of target ddrl-penfac-para
Scanning dependencies of target ddrl-penfac
[ 16%] Building CXX object CMakeFiles/ddrl-penfac.dir/src/pybinding/nfac.cpp.o
[ 16%] Building CXX object CMakeFiles/ddrl-penfac-para.dir/src/pybinding/nfac.cpp.o
[ 22%] Building CXX object CMakeFiles/ddrl-nfac.dir/src/pybinding/nfac.cpp.o
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/OfflineCaclaAg.hpp:10,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:8:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:91: warning: no return statement in function returning non-void [-Wreturn-type]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                           ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:91: warning: no return statement in function returning non-void [-Wreturn-type]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                           ^
In file included from /home/jim/ddrl/agent/cacla/include/OfflineCaclaAg.hpp:16:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:8:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:20:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp: In instantiation of 'OfflineCaclaAg<NN>::OfflineCaclaAg(unsigned int, unsigned int) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:32:39:   required from here
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:817:23: warning: 'OfflineCaclaAg<MLP>::empty_action' will be initialized after [-Wreorder]
   caffe::Blob<double> empty_action; //dummy action cause c++ cannot accept null reference
                       ^
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:803:23: warning:   'std::vector<double> OfflineCaclaAg<MLP>::last_state' [-Wreorder]
   std::vector<double> last_state;
                       ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:57:3: warning:   when initialized here [-Wreorder]
   OfflineCaclaAg(unsigned int _nb_motors, unsigned int _nb_sensors)
   ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp: In instantiation of 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:384:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i=0;i<trajectory.size(); i++) {
                     ^
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:391:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i=0;i<trajectory.size(); i++) {
                     ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:8:0:
/home/jim/ddrl/agent/cacla/include/OfflineCaclaAg.hpp: In instantiation of 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/OfflineCaclaAg.hpp:429:12: warning: variable 'V_pi_s0' set but not used [-Wunused-but-set-variable]
     double V_pi_s0 = 0;
            ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:69:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:87:89:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:46: warning: unused parameter 'learning' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                              ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:61: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                             ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:80: warning: unused parameter 'finished' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/OfflineCaclaAg.hpp:10,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:8:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:69:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:87:89:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:46: warning: unused parameter 'learning' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                              ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:61: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                             ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:80: warning: unused parameter 'finished' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                ^
In file included from /home/jim/ddrl/agent/cacla/include/BaseCaclaAg.hpp:12:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/cacla.cpp:2:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:91: warning: no return statement in function returning non-void [-Wreturn-type]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                           ^
In file included from /home/jim/ddrl/agent/cacla/include/BaseCaclaAg.hpp:19:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/cacla.cpp:2:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:91: warning: no return statement in function returning non-void [-Wreturn-type]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                           ^
In file included from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:20:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/include/BaseCaclaAg.hpp:12:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/cacla.cpp:2:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:69:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/cacla.cpp:56:89:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:46: warning: unused parameter 'learning' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                              ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:61: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                             ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:80: warning: unused parameter 'finished' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp: In instantiation of 'OfflineCaclaAg<NN>::OfflineCaclaAg(unsigned int, unsigned int) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:32:39:   required from here
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:817:23: warning: 'OfflineCaclaAg<MLP>::empty_action' will be initialized after [-Wreorder]
   caffe::Blob<double> empty_action; //dummy action cause c++ cannot accept null reference
                       ^
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:803:23: warning:   'std::vector<double> OfflineCaclaAg<MLP>::last_state' [-Wreorder]
   std::vector<double> last_state;
                       ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:57:3: warning:   when initialized here [-Wreorder]
   OfflineCaclaAg(unsigned int _nb_motors, unsigned int _nb_sensors)
   ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:0:
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp: In instantiation of 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:366:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i=0; i < all_traj.size() ; i++) {
                       ^
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:384:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i=0;i<trajectory.size(); i++) {
                     ^
/home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:391:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i=0;i<trajectory.size(); i++) {
                     ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PenNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:13:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:69:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:87:89:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:46: warning: unused parameter 'learning' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                              ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:61: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                             ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:80: warning: unused parameter 'finished' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                ^
[ 27%] Linking CXX shared library ../../lib/libddrl-nfac.so
[ 27%] Built target ddrl-nfac
Scanning dependencies of target ddrl-psepenfac
[ 33%] Building CXX object CMakeFiles/ddrl-psepenfac.dir/src/pybinding/nfac.cpp.o
[ 38%] Linking CXX shared library ../../lib/libddrl-cacla.so
[ 44%] Linking CXX shared library ../../lib/libddrl-penfac.so
[ 44%] Built target ddrl-cacla
Scanning dependencies of target ddrl-corpenfac
[ 50%] Building CXX object CMakeFiles/ddrl-corpenfac.dir/src/pybinding/nfac.cpp.o
[ 50%] Built target ddrl-penfac
Scanning dependencies of target ddrl-hpenfac
[ 55%] Building CXX object CMakeFiles/ddrl-hpenfac.dir/src/pybinding/nfac.cpp.o
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:22:0:
/home/jim/ddrl/agent/cacla/include/CorPeNFACAg.hpp:13:21: fatal error: lapacke.h: No such file or directory
compilation terminated.
CMakeFiles/ddrl-corpenfac.dir/build.make:62: recipe for target 'CMakeFiles/ddrl-corpenfac.dir/src/pybinding/nfac.cpp.o' failed
make[2]: *** [CMakeFiles/ddrl-corpenfac.dir/src/pybinding/nfac.cpp.o] Error 1
CMakeFiles/Makefile2:252: recipe for target 'CMakeFiles/ddrl-corpenfac.dir/all' failed
make[1]: *** [CMakeFiles/ddrl-corpenfac.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:10,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:10:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:91: warning: no return statement in function returning non-void [-Wreturn-type]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                           ^
In file included from /home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:16:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:10:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:10:0:
/home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp: In instantiation of 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:443:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0;j<this->nb_motors;j++) {
                      ^
/home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:603:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
           for(int i=size_cost_cacla;i<actions.size();i++) {
                                      ^
/home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:468:12: warning: variable 'V_pi_s0' set but not used [-Wunused-but-set-variable]
     double V_pi_s0 = 0;
            ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/PSEPeNFACAg.hpp:10,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:10:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:69:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:87:89:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:209:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:46: warning: unused parameter 'learning' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                              ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:61: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                             ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:210:80: warning: unused parameter 'finished' [-Wunused-parameter]
                                         bool learning, bool goal_reached, bool finished) {};
                                                                                ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In member function 'virtual const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, const std::vector<double>&, bool, bool, bool)':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:207:133: warning: no return statement in function returning non-void [-Wreturn-type]
                                         const std::vector<double>& goal_achieved, bool learning, bool goal_reached, bool finished) {};
                                                                                                                                     ^
In file included from /home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:20:0,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp: In member function 'void MLP::computeMemoryDataSkip()':
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1276:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
/home/jim/ddrl/agent/cacla/../../common/include/nn/MLP.hpp:1291:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int i=0;i<neural_net->layers().size();i++){
                    ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:0:
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp: In instantiation of 'OfflineCaclaAg<NN>::OfflineCaclaAg(unsigned int, unsigned int, uint, uint) [with NN = MLP; uint = unsigned int]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:39:62:   required from here
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:1074:23: warning: 'OfflineCaclaAg<MLP>::empty_action' will be initialized after [-Wreorder]
   caffe::Blob<double> empty_action; //dummy action cause c++ cannot accept null reference
                       ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:1061:23: warning:   'std::vector<double> OfflineCaclaAg<MLP>::last_state' [-Wreorder]
   std::vector<double> last_state;
                       ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:0:
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:67:3: warning:   when initialized here [-Wreorder]
   OfflineCaclaAg(unsigned int _nb_motors, unsigned int _nb_sensors, uint _goal_size, uint _goal_start)
   ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:0:
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp: In instantiation of 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:360:75: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (trajectory_end_points.size() == 0 || trajectory_end_points.back() != trajectory.size())
                                                                           ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:373:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int goal_dim=0; goal_dim < goal_size; goal_dim++) {
                                       ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:434:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<trajectory.size(); i++) {
                   ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:476:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for (int i=0;i<trajectory.size(); i++) {
                    ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:515:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int j=0;j<hindsight_nb_destination;j++) {
                    ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:518:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
           for(int k=min_index;k<=destination;k++) {
                                ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:549:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (trajectory_end_points.back() != trajectory.size())
                                          ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:561:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int goal_dim=0; goal_dim < goal_size; goal_dim++) {
                                       ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:586:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i = saved_trajsize; i < trajectory.size(); i++) {
                                      ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:594:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i = saved_trajsize; i < trajectory.size(); i++) {
                                      ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:649:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(int i=0;i<trajectory.size();i++){
                   ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:736:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
         if(ignore_poss_ac && pdeltas[li] > 0. || it->artificial) {
                                               ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp: In instantiation of 'bool OfflineCaclaAg<NN>::sparse_reward(const std::vector<double>&, const std::vector<double>&) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:530:31:   required from 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:948:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<a.size();i++){
                   ^
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp: In instantiation of 'OfflineCaclaAg<NN>::update_critic(const caffe::Blob<double>&, const caffe::Blob<double>&, const caffe::Blob<double>&)::<lambda()> [with NN = MLP]':
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:272:93:   required from 'struct OfflineCaclaAg<NN>::update_critic(const caffe::Blob<double>&, const caffe::Blob<double>&, const caffe::Blob<double>&) [with NN = MLP]::<lambda()>'
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:346:7:   required from 'void OfflineCaclaAg<NN>::update_critic(const caffe::Blob<double>&, const caffe::Blob<double>&, const caffe::Blob<double>&) [with NN = MLP]'
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:634:18:   required from 'void OfflineCaclaAg<NN>::end_episode(bool) [with NN = MLP]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:79:29:   required from here
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:277:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<trajectory.size();i++){
                      ^
In file included from /home/jim/ddrl/agent/cacla/../../common/include/arch/AACAgent.hpp:8:0,
                 from /home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:12,
                 from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp: In instantiation of 'const std::vector<double>& arch::ARLAgent<ProgOptions>::_run(double, const std::vector<double>&, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]':
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:67:52:   required from 'const std::vector<double>& arch::ARLAgent<ProgOptions>::runf(double, const std::vector<double>&, const std::vector<double>&, bool, bool, bool) [with ProgOptions = arch::AgentGPUProgOptions]'
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:92:104:   required from here
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:206:50: warning: unused parameter 'reward' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                  ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:206:85: warning: unused parameter 'perceptions' [-Wunused-parameter]
   virtual const std::vector<double>& _run(double reward, const std::vector<double>& perceptions,
                                                                                     ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:207:68: warning: unused parameter 'goal_achieved' [-Wunused-parameter]
                                         const std::vector<double>& goal_achieved, bool learning, bool goal_reached, bool finished) {};
                                                                    ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:207:88: warning: unused parameter 'learning' [-Wunused-parameter]
                                         const std::vector<double>& goal_achieved, bool learning, bool goal_reached, bool finished) {};
                                                                                        ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:207:103: warning: unused parameter 'goal_reached' [-Wunused-parameter]
                                         const std::vector<double>& goal_achieved, bool learning, bool goal_reached, bool finished) {};
                                                                                                       ^
/home/jim/ddrl/agent/cacla/../../common/include/arch/ARLAgent.hpp:207:122: warning: unused parameter 'finished' [-Wunused-parameter]
                                         const std::vector<double>& goal_achieved, bool learning, bool goal_reached, bool finished) {};
                                                                                                                          ^
In file included from /home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:19:0:
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp: In instantiation of 'const std::vector<double>& OfflineCaclaAg<NN>::_run(double, const std::vector<double>&, const std::vector<double>&, bool, bool, bool) [with NN = MLP]':
/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp:125:1:   required from here
/home/jim/ddrl/agent/cacla/include/HPeNFACAg.hpp:90:97: warning: unused parameter 'as' [-Wunused-parameter]
                                   const std::vector<double>& goal_achieved, bool learning, bool as, bool) override {
                                                                                                 ^
[ 61%] Linking CXX shared library ../../lib/libddrl-penfac-para.so
[ 61%] Built target ddrl-penfac-para
[ 66%] Linking CXX shared library ../../lib/libddrl-psepenfac.so
[ 66%] Built target ddrl-psepenfac
[ 72%] Linking CXX shared library ../../lib/libddrl-hpenfac.so
[ 72%] Built target ddrl-hpenfac
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Error when compile ddrl

System: ubuntu 16:
Caffe: use the package your sharing

 ./fullBuild.bash 
optional install : astyle
optional install : cppcheck
optional install : cpplint
optional install : valgrind
optional install : xml
INFO : 8 CPU used
INFO : cmake well founded. Look what following to know if you need other software.
QUESTION : if a subdirectory already contains a build, should I remove it ? (y/n) [y]:
y
---------------------------------------------------------------------------------
INFO : common well builed. Congratz.
---------------------------------------------------------------------------------
INFO : environment/ode-env well builed. Congratz.
---------------------------------------------------------------------------------
Scanning dependencies of target humanoid
Scanning dependencies of target humanoid-env
[ 28%] Building CXX object CMakeFiles/humanoid-env.dir/src/test/Humanoid.cpp.o
[ 28%] Building CXX object CMakeFiles/humanoid.dir/src/HumanoidWorldView.cpp.o
[ 42%] Building CXX object CMakeFiles/humanoid-env.dir/src/HumanoidWorldView.cpp.o
[ 57%] Building CXX object CMakeFiles/humanoid.dir/src/HumanoidWorld.cpp.o
[ 71%] Building CXX object CMakeFiles/humanoid-env.dir/src/HumanoidWorld.cpp.o
[ 85%] Linking CXX shared library ../../lib/libhumanoid.so
[ 85%] Built target humanoid
[100%] Linking CXX executable humanoid-env
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetTagExtender@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetTagListCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFTileRowSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldTag@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetFieldDefaulted@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSwabArrayOfLong@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFCurrentDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFLastDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFIsByteSwapped@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldPassCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldDataType@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFStripSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetSubDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFDefaultStripSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadRGBAImage@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `_TIFFDataSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFComputeStrip@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadTile@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFMergeFieldInfo@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetField@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFDataWidth@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetField@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldWithTag@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFWriteDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFTileSize@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldName@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFSetDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFFieldReadCount@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFReadEXIFDirectory@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFGetTagListEntry@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFClose@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libfreeimage.so.3: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
collect2: error: ld returned 1 exit status
CMakeFiles/humanoid-env.dir/build.make:181: recipe for target 'humanoid-env' failed
make[2]: *** [humanoid-env] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/humanoid-env.dir/all' failed
make[1]: *** [CMakeFiles/humanoid-env.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

perf on FetchPush-v1

It seems that the last performance hard to increased when using FetchPush-v1, see the bottom of the output

main algo : PeNFAC(lambda)-V
episode 0 total steps 0 last perf 0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 0     50     -50.000000 -39.4993932862 -50.0000000000 0.00000  0.20000 0 0.000 49.710 82.538
episode 100 total steps 5000 last perf 0.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 100   50     -50.000 -39.4993932862 -50.0000000000 305.25273 0.20000 250 0.416 742.022 1764.851
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 100   50     -50.000 -39.4993932862 -50.0000000000 305.25273 0.20000 250 0.416 742.022 1764.851
episode 200 total steps 10000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 200   50     -50.000 -39.4993932862 -50.0000000000 439.32512 0.20000 250 0.300 874.353 3509.462
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 200   50     -50.000 -39.4993932862 -50.0000000000 439.32512 0.20000 250 0.300 874.353 3509.462
episode 300 total steps 15000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 300   50     -50.000 -39.4993932862 -50.0000000000 405.47166 0.20000 250 0.296 991.178 3248.775
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 300   50     -50.000 -39.4993932862 -50.0000000000 405.47166 0.20000 250 0.296 991.178 3248.775
episode 400 total steps 20000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 400   50     -50.000 -39.4993932862 -50.0000000000 288.83902 0.20000 250 0.408 1073.500 2395.008
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 400   50     -50.000 -39.4993932862 -50.0000000000 288.83902 0.20000 250 0.408 1073.500 2395.008
episode 500 total steps 25000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 500   50     -50.000 -39.4993932862 -50.0000000000 434.30841 0.20000 250 0.300 1221.075 2090.089
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 500   50     -50.000 -39.4993932862 -50.0000000000 434.30841 0.20000 250 0.300 1221.075 2090.089
episode 600 total steps 30000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 600   50     -50.000 -39.4993932862 -50.0000000000 425.04641 0.20000 250 0.300 1245.507 3301.051
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 600   50     -50.000 -39.4993932862 -50.0000000000 425.04641 0.20000 250 0.300 1245.507 3301.051
episode 700 total steps 35000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 700   50     -50.000 -39.4993932862 -50.0000000000 395.15348 0.20000 250 0.288 1453.767 2843.399
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 700   50     -50.000 -39.4993932862 -50.0000000000 395.15348 0.20000 250 0.288 1453.767 2843.399
episode 800 total steps 40000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 800   50     -7.000  -6.7934652093 -7.0000000000 343.70716 0.20000 250 0.340 1426.707 2757.104
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 800   50     -50.000 -39.4993932862 -50.0000000000 343.70716 0.20000 250 0.340 1426.707 2757.104
episode 900 total steps 45000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 900   50     -50.000 -39.4993932862 -50.0000000000 313.93685 0.20000 250 0.344 1444.552 3218.356
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 900   50     -50.000 -39.4993932862 -50.0000000000 313.93685 0.20000 250 0.344 1444.552 3218.356
episode 1000 total steps 50000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1000  50     -50.000 -39.4993932862 -50.0000000000 300.85292 0.20000 250 0.424 1414.471 4332.106
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1000  50     -50.000 -39.4993932862 -50.0000000000 300.85292 0.20000 250 0.424 1414.471 4332.106
episode 1100 total steps 55000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1100  50     -50.000 -39.4993932862 -50.0000000000 301.20900 0.20000 250 0.368 1413.057 3611.521
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1100  50     -50.000 -39.4993932862 -50.0000000000 301.20900 0.20000 250 0.368 1413.057 3611.521
episode 1200 total steps 60000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1200  50     -50.000 -39.4993932862 -50.0000000000 302.35951 0.20000 250 0.380 1421.981 3232.280
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1200  50     -50.000 -39.4993932862 -50.0000000000 302.35951 0.20000 250 0.380 1421.981 3232.280
episode 1300 total steps 65000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1300  50     -45.000 -34.5983982762 -45.0000000000 313.15894 0.20000 250 0.264 1431.092 3603.456
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1300  50     -50.000 -39.4993932862 -50.0000000000 313.15894 0.20000 250 0.264 1431.092 3603.456
episode 1400 total steps 70000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1400  50     -50.000 -39.4993932862 -50.0000000000 293.27581 0.20000 250 0.396 1432.452 2308.182
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1400  50     -50.000 -39.4993932862 -50.0000000000 293.27581 0.20000 250 0.396 1432.452 2308.182
episode 1500 total steps 75000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1500  50     -50.000 -39.4993932862 -50.0000000000 299.37081 0.20000 250 0.420 1440.287 2513.630
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1500  50     -50.000 -39.4993932862 -50.0000000000 299.37081 0.20000 250 0.420 1440.287 2513.630
episode 1600 total steps 80000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1600  50     0.000   0.0000000000 0.0000000000 188.98480 0.20000 250 0.364 1408.132 2232.789
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1600  50     -50.000 -39.4993932862 -50.0000000000 188.98480 0.20000 250 0.364 1408.132 2232.789
episode 1700 total steps 85000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1700  50     -50.000 -39.4993932862 -50.0000000000 288.04573 0.20000 250 0.436 1444.980 2849.277
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1700  50     -50.000 -39.4993932862 -50.0000000000 288.04573 0.20000 250 0.436 1444.980 2849.277
episode 1800 total steps 90000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1800  50     -50.000 -39.4993932862 -50.0000000000 308.32325 0.20000 250 0.392 1501.293 3345.464
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1800  50     -50.000 -39.4993932862 -50.0000000000 308.32325 0.20000 250 0.392 1501.293 3345.464
episode 1900 total steps 95000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 1900  50     -50.000 -39.4993932862 -50.0000000000 331.21574 0.20000 250 0.312 1524.992 2625.236
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 1900  50     -50.000 -39.4993932862 -50.0000000000 331.21574 0.20000 250 0.312 1524.992 2625.236
episode 2000 total steps 100000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2000  50     -50.000 -39.4993932862 -50.0000000000 342.53142 0.20000 250 0.304 1562.716 3283.008
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2000  50     -50.000 -39.4993932862 -50.0000000000 342.53142 0.20000 250 0.304 1562.716 3283.008
episode 2100 total steps 105000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2100  50     -50.000 -39.4993932862 -50.0000000000 314.89381 0.20000 250 0.348 1662.225 2576.668
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2100  50     -50.000 -39.4993932862 -50.0000000000 314.89381 0.20000 250 0.348 1662.225 2576.668
episode 2200 total steps 110000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2200  50     -50.000 -39.4993932862 -50.0000000000 325.43476 0.20000 250 0.368 1689.377 2315.436
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2200  50     -50.000 -39.4993932862 -50.0000000000 325.43476 0.20000 250 0.368 1689.377 2315.436
episode 2300 total steps 115000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2300  50     -50.000 -39.4993932862 -50.0000000000 323.92725 0.20000 250 0.336 1712.382 2859.400
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2300  50     -50.000 -39.4993932862 -50.0000000000 323.92725 0.20000 250 0.336 1712.382 2859.400
episode 2400 total steps 120000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2400  50     -50.000 -39.4993932862 -50.0000000000 302.64502 0.20000 250 0.380 1797.492 2897.479
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2400  50     -50.000 -39.4993932862 -50.0000000000 302.64502 0.20000 250 0.380 1797.492 2897.479
episode 2500 total steps 125000 last perf 0.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2500  50     -50.000 -39.4993932862 -50.0000000000 74.62224 0.20000 250 0.404 1732.337 3855.214
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2500  50     -50.000 -39.4993932862 -50.0000000000 74.62224 0.20000 250 0.404 1732.337 3855.214
episode 2600 total steps 130000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2600  50     -50.000 -39.4993932862 -50.0000000000 302.42988 0.20000 250 0.384 1821.087 3403.937
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2600  50     -50.000 -39.4993932862 -50.0000000000 302.42988 0.20000 250 0.384 1821.087 3403.937
episode 2700 total steps 135000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2700  50     -50.000 -39.4993932862 -50.0000000000 309.27921 0.20000 250 0.352 1825.681 2691.617
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2700  50     -50.000 -39.4993932862 -50.0000000000 309.27921 0.20000 250 0.352 1825.681 2691.617
episode 2800 total steps 140000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2800  50     -50.000 -39.4993932862 -50.0000000000 303.45071 0.20000 250 0.452 1823.744 2267.838
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2800  50     -50.000 -39.4993932862 -50.0000000000 303.45071 0.20000 250 0.452 1823.744 2267.838
episode 2900 total steps 145000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 2900  50     -46.000 -35.5589942862 -46.0000000000 300.21120 0.20000 250 0.380 1832.871 2108.694
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 2900  50     -50.000 -39.4993932862 -50.0000000000 300.21120 0.20000 250 0.380 1832.871 2108.694
episode 3000 total steps 150000 last perf 0.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3000  50     -50.000 -39.4993932862 -50.0000000000 296.41106 0.20000 250 0.396 1840.616 2203.382
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3000  50     -50.000 -39.4993932862 -50.0000000000 296.41106 0.20000 250 0.396 1840.616 2203.382
episode 3100 total steps 155000 last perf -47.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3100  50     -50.000 -39.4993932862 -50.0000000000 304.23030 0.20000 250 0.392 1815.067 2564.230
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3100  50     -50.000 -39.4993932862 -50.0000000000 304.23030 0.20000 250 0.392 1815.067 2564.230
episode 3200 total steps 160000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3200  50     -50.000 -39.4993932862 -50.0000000000 314.90150 0.20000 250 0.352 1807.986 2344.424
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3200  50     -50.000 -39.4993932862 -50.0000000000 314.90150 0.20000 250 0.352 1807.986 2344.424
episode 3300 total steps 165000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3300  50     -50.000 -39.4993932862 -50.0000000000 294.56957 0.20000 250 0.408 1827.943 2092.198
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3300  50     -50.000 -39.4993932862 -50.0000000000 294.56957 0.20000 250 0.408 1827.943 2092.198
episode 3400 total steps 170000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3400  50     -50.000 -39.4993932862 -50.0000000000 319.27477 0.20000 250 0.312 1847.207 2624.171
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3400  50     -50.000 -39.4993932862 -50.0000000000 319.27477 0.20000 250 0.312 1847.207 2624.171
episode 3500 total steps 175000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3500  50     -50.000 -39.4993932862 -50.0000000000 302.88077 0.20000 250 0.396 1832.862 2764.258
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3500  50     -50.000 -39.4993932862 -50.0000000000 302.88077 0.20000 250 0.396 1832.862 2764.258
episode 3600 total steps 180000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3600  50     -50.000 -39.4993932862 -50.0000000000 189.69495 0.20000 250 0.328 1798.681 2894.372
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3600  50     -50.000 -39.4993932862 -50.0000000000 189.69495 0.20000 250 0.328 1798.681 2894.372
episode 3700 total steps 185000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3700  50     -50.000 -39.4993932862 -50.0000000000 174.25073 0.20000 250 0.388 1799.426 3356.493
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3700  50     -50.000 -39.4993932862 -50.0000000000 174.25073 0.20000 250 0.388 1799.426 3356.493
episode 3800 total steps 190000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3800  50     -50.000 -39.4993932862 -50.0000000000 318.32951 0.20000 250 0.356 1815.443 3215.285
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3800  50     -50.000 -39.4993932862 -50.0000000000 318.32951 0.20000 250 0.356 1815.443 3215.285
episode 3900 total steps 195000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 3900  50     -50.000 -39.4993932862 -50.0000000000 190.00381 0.20000 250 0.372 1768.111 3086.686
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 3900  50     -50.000 -39.4993932862 -50.0000000000 190.00381 0.20000 250 0.372 1768.111 3086.686
episode 4000 total steps 200000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4000  50     -50.000 -39.4993932862 -50.0000000000 305.49717 0.20000 250 0.320 1800.324 2677.632
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4000  50     -50.000 -39.4993932862 -50.0000000000 305.49717 0.20000 250 0.320 1800.324 2677.632
episode 4100 total steps 205000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4100  50     -50.000 -39.4993932862 -50.0000000000 186.22632 0.20000 250 0.296 1756.212 2525.554
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4100  50     -50.000 -39.4993932862 -50.0000000000 186.22632 0.20000 250 0.296 1756.212 2525.554
episode 4200 total steps 210000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4200  50     -50.000 -39.4993932862 -50.0000000000 186.62446 0.20000 250 0.312 1745.142 2559.601
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4200  50     -50.000 -39.4993932862 -50.0000000000 186.62446 0.20000 250 0.312 1745.142 2559.601
episode 4300 total steps 215000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4300  50     -50.000 -39.4993932862 -50.0000000000 92.11743 0.20000 250 0.424 1706.861 4155.797
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4300  50     -50.000 -39.4993932862 -50.0000000000 92.11743 0.20000 250 0.424 1706.861 4155.797
episode 4400 total steps 220000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4400  50     -50.000 -39.4993932862 -50.0000000000 305.29147 0.20000 250 0.372 1807.624 3354.478
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4400  50     -50.000 -39.4993932862 -50.0000000000 305.29147 0.20000 250 0.372 1807.624 3354.478
episode 4500 total steps 225000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4500  50     -50.000 -39.4993932862 -50.0000000000 309.62576 0.20000 250 0.400 1839.398 2642.012
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4500  50     -50.000 -39.4993932862 -50.0000000000 309.62576 0.20000 250 0.400 1839.398 2642.012
episode 4600 total steps 230000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4600  50     -50.000 -39.4993932862 -50.0000000000 297.69136 0.20000 250 0.460 1855.533 3569.598
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4600  50     -50.000 -39.4993932862 -50.0000000000 297.69136 0.20000 250 0.460 1855.533 3569.598
episode 4700 total steps 235000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4700  50     0.000   0.0000000000 0.0000000000 303.72088 0.20000 250 0.392 1881.793 2197.497
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4700  50     -50.000 -39.4993932862 -50.0000000000 303.72088 0.20000 250 0.392 1881.793 2197.497
episode 4800 total steps 240000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4800  50     -50.000 -39.4993932862 -50.0000000000 182.33329 0.20000 250 0.344 1847.079 3410.346
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4800  50     -50.000 -39.4993932862 -50.0000000000 182.33329 0.20000 250 0.344 1847.079 3410.346
episode 4900 total steps 245000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 4900  50     -50.000 -39.4993932862 -50.0000000000 297.86280 0.20000 250 0.456 1911.227 3078.142
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 4900  50     -50.000 -39.4993932862 -50.0000000000 297.86280 0.20000 250 0.456 1911.227 3078.142
episode 5000 total steps 250000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5000  50     -50.000 -39.4993932862 -50.0000000000 306.03380 0.20000 250 0.420 1913.015 2469.496
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5000  50     -50.000 -39.4993932862 -50.0000000000 306.03380 0.20000 250 0.420 1913.015 2469.496
episode 5100 total steps 255000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5100  50     -50.000 -39.4993932862 -50.0000000000 306.94059 0.20000 250 0.468 1928.741 2002.506
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5100  50     -50.000 -39.4993932862 -50.0000000000 306.94059 0.20000 250 0.468 1928.741 2002.506
episode 5200 total steps 260000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5200  50     -50.000 -39.4993932862 -50.0000000000 186.94835 0.20000 250 0.324 1915.164 2217.157
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5200  50     -50.000 -39.4993932862 -50.0000000000 186.94835 0.20000 250 0.324 1915.164 2217.157
episode 5300 total steps 265000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5300  50     -50.000 -39.4993932862 -50.0000000000 308.41859 0.20000 250 0.356 1961.006 2286.489
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5300  50     -50.000 -39.4993932862 -50.0000000000 308.41859 0.20000 250 0.356 1961.006 2286.489
episode 5400 total steps 270000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5400  50     -50.000 -39.4993932862 -50.0000000000 321.18466 0.20000 250 0.356 1953.632 2244.455
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5400  50     -50.000 -39.4993932862 -50.0000000000 321.18466 0.20000 250 0.356 1953.632 2244.455
episode 5500 total steps 275000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5500  50     -50.000 -39.4993932862 -50.0000000000 321.13202 0.20000 250 0.344 1972.188 2446.748
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5500  50     -50.000 -39.4993932862 -50.0000000000 321.13202 0.20000 250 0.344 1972.188 2446.748
episode 5600 total steps 280000 last perf -48.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5600  50     -50.000 -39.4993932862 -50.0000000000 195.19788 0.20000 250 0.324 1914.795 2102.640
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5600  50     -50.000 -39.4993932862 -50.0000000000 195.19788 0.20000 250 0.324 1914.795 2102.640
episode 5700 total steps 285000 last perf -47
episode 5800 total steps 290000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5800  50     -50.000 -39.4993932862 -50.0000000000 306.55587 0.20000 250 0.496 1943.434 2069.213
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5800  50     -50.000 -39.4993932862 -50.0000000000 306.55587 0.20000 250 0.496 1943.434 2069.213
episode 5900 total steps 295000 last perf 0.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 5900  50     -50.000 -39.4993932862 -50.0000000000 202.24115 0.20000 250 0.324 1889.927 2214.111
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 5900  50     -50.000 -39.4993932862 -50.0000000000 202.24115 0.20000 250 0.324 1889.927 2214.111
episode 6000 total steps 300000 last perf -50.0
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : L 6000  50     -50.000 -39.4993932862 -50.0000000000 304.77453 0.20000 250 0.412 1937.542 1790.405
#INFO :/home/jim/ddrl/agent/cacla/src/pybinding/nfac.cpp.85 : T 6000  50     -50.000 -39.4993932862 -50.0000000000 304.77453 0.20000 250 0.412 1937.542 1790.405

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.