<p align="center"><img width="80%" src="https://raw.githubusercontent.com/cogitare-ai/cogitare/master/docs/source/art/logo-line.png" /></p>

**Cogitare** is a Modern, Fast, and Modular Deep Learning and Machine Learning framework in Python. A friendly interface for beginners and a powerful toolset for experts. 

http://docs.cogitare-ai.org/
	
[![Build Status](https://travis-ci.org/cogitare-ai/cogitare.svg?branch=master)](https://travis-ci.org/cogitare-ai/cogitare)
[![codecov](https://codecov.io/gh/cogitare-ai/cogitare/branch/master/graph/badge.svg)](https://codecov.io/gh/cogitare-ai/cogitare)
[![Code Climate](https://codeclimate.com/github/cogitare-ai/cogitare/badges/gpa.svg)](https://codeclimate.com/github/cogitare-ai/cogitare)


It uses the best of [PyTorch](http://pytorch.org/), [Dask](https://dask.pydata.org/), [NumPy](http://www.numpy.org/), and others tools through a simple interface to train, to evaluate, to test
models and more.

With Cogitare, you can use classical machine learning algorithms with high
performance and develop state-of-the-art models quickly.

The primary objectives of Cogitare are:

- provide an easy-to-use interface to train and evaluate models;
- provide tools to debug and analyze the model;
- provide implementations of state-of-the-art models (models for common tasks, ready
  to train and ready to use);
- provide ready-to-use implementations of straightforward and classical models (such as
  LogisticRegression);
- be compatible with models for a broad range of problems;
- be compatible with other tools (scikit-learn, etcs);
- keep growing with the community: accept as many new features as possible;
- provide a friendly interface to beginners, and powerful features for experts;
- take the best of the hardware through multi-processing and multi-threading;
- and others.

Currently, it's a work in progress project that aims to provide a complete
toolchain for machine learning and deep learning development, taking the best
of cuda and multi-core processing.

Install
-------

Features
--------

Contribution
------------
Cogitare is a work in progress project, and any contribution is welcome.

You can contribute testing and providing bug reports, proposing feature ideas,
fixing bugs, pushing code, etcs.

1. You want to propose a new Feature and implement it
	- post about your intended feature, and we shall discuss the design and implementation. Once we agree that the plan looks good, go ahead and implement it.
2. You want to implement a feature or bug-fix for an outstanding issue
    - Look at the outstanding issues here: https://github.com/cogitare-ai/cogitare/issues
    - Pick an issue and comment on the task that you want to work on this feature
    - If you need more context on a particular issue, please ask and we shall provide.


Once you finish implementing a feature or bugfix, please send a Pull Request to
https://github.com/cogitare-ai/cogitare

If you are not familiar with creating a Pull Request, here are some guides:
- http://stackoverflow.com/questions/14680711/how-to-do-a-github-pull-request
- https://help.github.com/articles/creating-a-pull-request/
