Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Cortex TravisCI

Neural networks, regression and feature learning in Clojure.

Cortex has been developed by ThinkTopic in collaboration with Mike Anderson.

Mailing List

https://groups.google.com/forum/#!forum/clojure-cortex

Usage

Clojars Project

All libraries are released on clojars. Cortex is not 1.0 yet preliminary and you should expect quite a few things to change over time but it should allow you to train some initial classifiers or regressions. Note that the save format has not stabilized and although we do just save edn data in nippy format it may require some effort to bring versions of saved forward.

Cortex Design

Design is detailed here: Cortex Design Document

Please see the various unit tests and examples for training a model. Specifically see: mnist verification

Also, for an example of using cortex in a more real-world scenario please see: mnist example.

Existing Framework Comparisons

  • Stanford CS 231 Lecture 12 contains a detailed breakdown of Caffe, Torch, Theano, and TensorFlow.

TODO:

  • hdf5 import of major keras models (vgg-net). This requires each model along with a single input and per-layer outputs for that input. Please don't ask for anything to be supported unless you can provide the appropriate thorough test.

  • Recurrence in all forms. There is some work towards that direction in the compute branch and it is specifically designed to match the cudnn API for recurrence. This is less important at this point than running some of the larger pre-trained models.

  • Speaking of larger nets, multiple GPU support and multiple machine support (which could be helped by the above graph based description layer).

  • Profiling GPU system to make sure we are using as much GPU as possible in the single-gpu case.

  • Better data import/visualization support. We have geom and we have a clear definition of the datasets, now we need to put together the pieces and build some great visualizations as examples.

Getting Started:

  • Get the project and run lein test in both cortex and compute. The various unit tests train various models.

GPU Compute Install Instructions

Ubuntu

$ sudo apt install nvidia-cuda-toolkit
reboot

Install cuDNN and copy the cuDNN files to the corresponding folders in the local cuda installation (probably at /usr/local/cuda). For reference, follow the "Installing cuDNN" section here.

To check everything is working, run $ nvidia-smi

You should now have cuda8.0 installed. Current master is 8.0, so if you're running 7.5 you will need to change the javacpp dependency in your project file of the mnist Example.

Mac OS

These instructions follow the gpu setup from Tensor Flow, i.e.:

Install coreutils and cuda:

$ brew install coreutils
$ brew tap caskroom/drivers
$ brew cask install nvidia-cuda

Add CUDA Tool kit to bash profile

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"

Download the CUDA Deep Neural Network libraries.

Once downloaded and unzipped, moving the files:

$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/

Should you see a jni linking error similar to this

Retrieving org/bytedeco/javacpp-presets/cuda/8.0-1.2/cuda-8.0-1.2-macosx-x86_64.jar from central
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(think/compute/nn/cuda_backend.c
lj:82:28)
at clojure.lang.Compiler.analyze(Compiler.java:6688)
at clojure.lang.Compiler.analyze(Compiler.java:6625)
at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:1009)

Make sure you have installed the appropriate CUDNN for your version of CUDA.

Windows

Some preliminary information about getting gpu-acceleration working on windows is available here: https://groups.google.com/forum/#!topic/clojure-cortex/hNFW1T_2PZc

See also:

Roadmap

About

Machine learning in Clojure

Resources

Stars

1.3k stars

Watchers

105 watching

Forks

Releases

Packages

Used by

Contributors

Languages