Coder Social home page Coder Social logo

hessianfree-1's Introduction

Travis-CI build status AppVeyor build status Latest PyPI version

Hessian-free optimization for deep networks

Setup

Quick start

Install the package via:

pip install hessianfree

To make sure things are working, open a python interpreter and enter:

import hessianfree as hf
hf.demos.xor()

A simple xor training example will run, at the end of which it will display the target and actual outputs from the network.

Developer install

Use this if you want to track the latest changes from the repository:

git clone https://github.com/drasmuss/hessianfree.git
cd hessianfree
python setup.py develop --user

Requirements

  • python 2.7 or 3.5
  • numpy 1.9.2
  • matplotlib 1.3.1
  • optional: scipy 0.15.1, pycuda 2015.1.3, scikit-cuda 0.5.1, pytest 2.7.0

(older versions may work, but are untested)

Features

All the standard features of Hessian-free optimization from Martens (2010) and Martens and Sutskever (2011) are implemented (Gauss-Newton approximation, early termination, CG backtracking, Tikhonov damping, structural damping, etc.). In addition, the code has been designed to make it easy to customize the network you want to train, without having to modify the internal computations of the optimization process.

  • Works for feedforward and recurrent deep networks (or mixtures of the two)
  • Standard nonlinearities built in (e.g., logistic, tanh, ReLU, softmax), and support for custom nonlinearities
  • Standard loss functions (squared error, cross entropy, sparsity constraints), and support for custom loss functions
  • Various weight initialization methods (although Hessian-free optimization doesn't usually require much tweaking)
  • Customizable connectivity between layers (e.g., skip connections)
  • Efficient implementation, taking advantage of things like activity caching
  • Optional GPU acceleration if PyCUDA and scikit-cuda are installed
  • Gradient checking (and Gauss-Newton matrix checking) implemented to help with debugging
  • Inputs can be predefined or generated dynamically by some other system (like an environmental simulation)
  • Different optimizers can be swapped out for comparison (e.g., Hessian-free versus SGD)

Documentation

View the documentation at http://pythonhosted.org/hessianfree/

In addition, examples illustrating the main features of the code can be found in demos.py.

hessianfree-1's People

Contributors

drasmuss avatar fhrozen avatar studywolf avatar

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.