Giter Site home page Giter Site logo

tensorflow-mnist's Introduction

MNIST classification by TensorFlow

screencast

Requirement

  • Python >=2.7 or >=3.4
    • TensorFlow >=1.0
  • Node >=6.9

How to run

$ pip install -r requirements.txt
$ npm install
$ gunicorn main:app --log-file=-

Deploy to Heroku

$ heroku apps:create [NAME]
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add heroku/python
$ git push heroku master

or Heroku Button.

Deploy

tensorflow-mnist's People

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tensorflow-mnist's Issues

Cannot mannually deploy to heroku

After creating the app and trying to add
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add heroku/python
Both respond with app not found

Deploy to Heroku : Build Error

Error:

$ pip install -r requirements.txt
       tensorflow-0.11.0-cp35-cp35m-linux_x86_64.whl is not a supported wheel on this platform.
 !     Push rejected, failed to compile Python app.
 !     Push failed

Screenshot:
screenshot from 2017-02-09 16-36-10

Python and node?

Hi. Thanks for this awesome example!

I am wondering why you used both python and node.js?

Pre-built docker images are available now

I guess some people might prefer deploying their nodejs/flask app using docker images.
So I built some images here. Try:

docker pull liuqun/tensorflow-mnist:latest
# Or
docker pull liuqun/tensorflow-mnist:latest-fedora

(I found that the Fedora images is usually smaller than Debian based ones.)

Usage

docker run --rm -it -p 8000:8000 liuqun/tensorflow-mnist:latest
# Or
docker run --rm -it -p 8000:8000 liuqun/tensorflow-mnist:latest-fedora

The dockerfiles are here https://github.com/liuqun/tensorflow-mnist/tree/latest :

# Dockerfile
#
# https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
FROM node:8.11.3-stretch
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
python2.7 \
python-pip \
python-setuptools \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
COPY package*.json gulpfile.js /usr/src/app/
COPY src /usr/src/app/src
RUN yarn install --ignore-engines
COPY . /usr/src/app/
EXPOSE 8000
CMD [ "gunicorn", "main:app", "--log-file=-", "--bind=0.0.0.0:8000" ]

# Dockerfile
#
# https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
FROM fedora:28
RUN dnf install -y \
libstdc++ \
nodejs-1:8.11.0 \
npm-1:5.6.0 \
python3-3.6.5 \
python3-pip \
python3-setuptools \
&& npm install --global yarn \
&& dnf clean all
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip3 install --no-cache-dir -r requirements.txt
COPY package*.json gulpfile.js /usr/src/app/
COPY src /usr/src/app/src
RUN yarn install --ignore-engines
COPY . /usr/src/app/
EXPOSE 8000
CMD [ "gunicorn", "main:app", "--log-file=-", "--bind=0.0.0.0:8000" ]

git clone https://github.com/liuqun/tensorflow-mnist.git
cd tensorflow-mnist
git checkout latest
docker build -t mnist -f Dockerfile .
# Or: docker build -t mnist -f Dockerfile.fedora .

artifacts while resizing

I think, you have used following code to resize your canvas image, "(data[n + 0] + data[n + 1] + data[n + 2]) / 3" creates some artifact in the image. Is there easier way to just resize canvas image?

How do I send raw canvas image to flask? I am not an expert in javascript so tried some apis like getimagedata, base64encoding and everything but couldn't figure out. Thanks!

            var inputs = [];  
            var small = document.createElement('canvas').getContext('2d');  
            small.drawImage(img, 0, 0, img.width, img.height, 0, 0, 28, 28);  
            var data = small.getImageData(0, 0, 28, 28).data;  
            for (var i = 0; i < 28; i++) {. 
                for (var j = 0; j < 28; j++) {. 
                    var n = 4 * (i * 28 + j);  
                    inputs[i * 28 + j] = (data[n + 0] + data[n + 1] + data[n + 2]) / 3;  
                    ctx.fillStyle = 'rgb(' + [data[n + 0], data[n + 1], data[n + 2]].join(',') + ')';  
                    ctx.fillRect(j * 5, i * 5, 5, 5);  
                }. 
            }. 
            if (Math.min(...inputs) === 255) {. 
                return;  
            }. 

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.