Jacinle is a personal python toolbox. It contains a range of utility functions for python development, including project configuration, file IO, image processing, inter-process communication, etc.
[Website] [Examples] [Jacinle References] [JacLearn References] [JacTorch References]
Clone the Jacinle package (be sure to clone all submodules), and add the bin path to your PATH environment.
git clone https://github.com/vacancy/Jacinle --recursive
export PATH=<path_to_jacinle>/bin:$PATH
Optionally, you may need to install third-party packages specified in requirements.txt
-
jac-run xxx.pyJacinle comes with a command line to replace the
pythoncommand:jac-run. In short, this command will automatically add the Jacinle packages intoPYTHONPATH, as well as adding a few vendor Python packages intoPYTHONPATH(for example, JacMLDash). Using this command to replacepython xxx.pyis the best practice to manage dependencies.Furthremore, this command also supports a configuration file specific to projects. The command will search for a configuration file named
jacinle.ymlin the current working directory and its parent directories. This file specifies additional environmental variables to add, for example.project_root: true # tell the script that the folder containing this file is the root of a project. The directory will be added to PYTHONPATH. system: envs: CUDA_HOME: /usr/local/cuda-10.0 # set needed environment variables here. path: bin: # will be prepended to $PATH /usr/local/bin python: # will be prepended to $PYTHONPATH /Users/jiayuanm/opt/my_python_lib vendors: # load additional Python packages (root paths will be added to PYTHONPATH) pybullet_tools: root: /Users/jiayuanm/opt/pybullet/utils alfred: root: /Users/jiayuanm/opt/alfred
-
jac-crun <gpu_ids> xxx.pyThe same as
jac-run, but takes an additional argument, which is a comma-separated list of gpu ids, following the convension ofCUDA_VISIBLE_DEVICES. -
jac-debug xxx.pyThe same as
jac-run, but sets the environment variableJAC_DEBUG=1before running the command. By default, in the debug mode, anipdbinterface will be started when an exception is raised. -
jac-cdebug <gpu_ids> xxx.pyThe combined
jac-debugandjac-crun. -
jac-updateUpdate the Jacinle package (and all dependencies inside
vendors/). -
jac-inspect-file xxx.json yyy.pklStart an IPython interface and loads all files in the argument list. The content of the files can be accessed via
f1,f2, ...
Jacinle contains a collection of useful packages. Here is a list of commonly used packages, with links to the documentation.
jacinle.*: frequently used utility functions, such asjacinle.JacArgumentParser,jacinle.TQDMPool,jacinle.get_logger,jacinle.cond_with, etc.jacinle.io.*: IO functions. Two of the mostly used ones are:jacinle.io.load(filename)andjacinle.io.dump(filename, obj)jacinle.random.*: almost the same asnumpy.random.*, but with a few additional utility functions and RNG state management functions.jacinle.web.*: the oldjacwebpackage, which is a customized wrapper around the tornado web server.jaclearn.*: machine learning modules.jactorch.*: a collection of PyTorch functions in addition to thetorch.*functions.