Code Monkey home page Code Monkey logo

scorelab / tensormap Goto Github PK

View Code? Open in Web Editor NEW
51.0 18.0 88.0 5.52 MB

TensorMap will be a web application that will allow the users to create machine learning algorithms visually. TensorMap will support reverse engineering of the visual layout to a Tensorflow implementation in preferred languages. The goal of the project is to let the beginners play with machine learning algorithms in Tensorflow without less background knowledge about the library.

License: Apache License 2.0

HTML 1.19% JavaScript 47.37% Python 35.94% TypeScript 11.99% Sass 0.12% SCSS 1.79% Mako 0.17% CSS 1.41% Shell 0.02%

tensormap's Introduction

Build Status Join the chat at https://gitter.im/scorelab/TensorMap HitCount

TensorMap

TensorMap is a web application that will allow the users to create machine learning algorithms visually. TensorMap supports reverse engineering of the visual layout to a Tensorflow implementation in preferred languages. The goal of the project is to let the beginners play with machine learning algorithms in Tensorflow without less background knowledge about the library. For more details about the project, read our project wiki.

Getting Started

Follow these steps the steps in the tensormap-server and tensormap-client directories to setup each component.

Contributing

Please read 'Note to Contributors' in project wiki for more details.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

tensormap's People

Contributors

adityasrivast avatar amlannandy avatar aselarbd avatar bruce-wayne99 avatar charithccmc avatar dhaarna29 avatar djain454 avatar ivantha avatar josephsemrai avatar kd-here avatar madushan98 avatar mahmoudmohamed22 avatar nipunac95 avatar orionpax00 avatar srivastava9 avatar suleka96 avatar sumedhe avatar tanish0019 avatar wenuka19 avatar

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tensormap's Issues

Project workflow

The workflow should be base on 'Projects'.
e.g - Firebase workflow

image

  • Implement the project interface
  • Change the current workflow

Duplicate primary key entry in template_copies

Upon trying to upload a CSV file under 50 lines and viewing it using visualizedata, I encounter the following error involving a duplicate primary key entry in the template_copies table.

This was reproduced by following the directions on the README file and restoring the database dump.

Traceback

MySQLdb._exceptions.IntegrityError: (1062, "Duplicate entry '1' for key 'PRIMARY'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\josep\Anaconda3\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\josep\Documents\GitHub\TensorMap\tensormap-server\app\resources\template_manipulation.py", line 358, in createExperiment
    db.session.commit()
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\scoping.py", line 162, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 1027, in commit
    self.transaction.commit()
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 494, in commit
    self._prepare_impl()
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 473, in _prepare_impl
    self.session.flush()
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 2470, in flush
    self._flush(objects)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 2608, in _flush
    transaction.rollback(_capture_exception=True)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 153, in reraise
    raise value
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\session.py", line 2568, in _flush
    flush_context.execute()
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 422, in execute
    rec.execute(self)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\unitofwork.py", line 589, in execute
    uow,
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\persistence.py", line 245, in save_obj
    insert,
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\orm\persistence.py", line 1084, in _emit_insert_statements
    c = cached_connections[connection].execute(statement, multiparams)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 988, in execute
    return meth(self, multiparams, params)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\sql\elements.py", line 287, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 1107, in _execute_clauseelement
    distilled_params,
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 1253, in _execute_context
    e, statement, parameters, cursor, context
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 1473, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context
    cursor, statement, parameters, context
  File "C:\Users\josep\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 580, in do_execute
    cursor.execute(statement, parameters)
  File "C:\Users\josep\Anaconda3\lib\site-packages\MySQLdb\cursors.py", line 209, in execute
    res = self._query(query)
  File "C:\Users\josep\Anaconda3\lib\site-packages\MySQLdb\cursors.py", line 315, in _query
    db.query(q)
  File "C:\Users\josep\Anaconda3\lib\site-packages\MySQLdb\connections.py", line 239, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (MySQLdb._exceptions.IntegrityError) (1062, "Duplicate entry '1' for key 'PRIMARY'")
[SQL: INSERT INTO template_copies (id, `fileName`, data) VALUES (%s, %s, %s)]
[parameters: ('1', 'user_keras_temp.py', b'import tensorflow as tf\r\nfrom tensorflow import keras\r\nfrom tensorflow.keras import layers\r\nimport numpy as np\r\nfrom sklearn.metrics import  ... (837 characters truncated) ... nt("MAE: ",mae)\r\n\r\nwith open("results.csv", "w") as f:\r\n    writer = csv.writer(f)\r\n    writer.writerows(zip(y_test,predictions))\r\n\r\n\r\n')]
(Background on this error at: http://sqlalche.me/e/gkpj)```

Two output node should give error

While making a neural network architecture, It should give an error when one tries to make two output node.

Screenshot from 2020-03-14 21-44-53

Right now it does not give any error.

@orionpax00 Need your update on this one also :)

Code generation

Sketch should be forward engineered to an implementation code in,

  • Python

Add a Loader for ‘visualizedata’ page

There is a small delay when loading ‘visualizedata’ page with all the rows of the uploaded data set. Create a loader to indicate the user that the dataset is being loaded into the page.

fix warnings during development

Currently when the react server runs on the browser, it throws warnings on the console, occuring due to inconsistent code use.

Screenshots:

image

image

Todos:

  • Fix these warnings

Remarks: I am working on this issue

Runtime data Visualisation Plots

Develop various charts to display results generated during training like line plot to display loss and accuracy, Heatmaps to display correlation, etc.

uploaded dataset not showing up

Current Behaviour: Currently when we upload a dataset, it's name is not showing up on the uploaded dataset panel.

Expected Behaviour: The uploaded dataset should appear with its name

Screenshots:

image

Remarks: I am working on it.

Mistake in README.md

In the project readme, under the setting up frontend section, the instructions should be

cd TensorMap/tensormap-client 

instead of

cd TensorMap

since 'yarn install' and 'npm start' do not make sense in the main directory and would return an error.

two input node should give error

While making the neural network architecture,
It should give an error when one tries to make two input node.
Right now it does not give any error.

@orionpax00 Need your input regarding this :)

Package.json not found in tensormap

The steps in the readme.md are wrong. It says to yarn install and npm start but npm start won't be possible until package.json is not available in tensor map main directory.

Data preprocessing

  • Upload data in .csv format
  • Visualize a sample of uploaded data in tabular format i.e. head
  • Row operations
    • TBD
  • Column operations
    • TBD
  • Clean operations
    • Drop / alter rows matching x criteria

User management

  • Privilege levels i.e Admin, User
  • Add, Remove, Manage users
  • Approve signed-up users
  • Future :
    • Restrict resource usage for users
    • User resource usage summaries

Node Parameter Popover

The Popover that comes on double clicking any node on the Neural Network Diagrams should come immediately on Drop event. Moreover, it must be customised according to the layer the user has dragged. For E.g.- For Input Layer, it should ask for Input shape along with output activation and shape.

Thanks.

Refactored Upload Data

Peek 2019-12-07 08-44

I refactored the Upload Data Construct with few validations (Not rendering error messages as of now). Instead of using hard-coded options on select menu, we can use the following
this.acceptedDatasetFormats = [ { type: "Select File Type", value: "null", }, { type: "Comma Seprated Values (CSV)", value: "csv", }, ];
This array can be fetched from server later on.
Hope I can submit a PR for the above after the appropriate review and contribute more significantly to the project in future.

Thanks a lot.

Node Diagram modification(styling)

Currently, the component that represents node is implemented using default factory of Storm React Diagrams, for this task you have to create a custom component by extending default component with Material UI Styling

refactor code to unify the format of ajax request

Current Behaviour: Currently, in the project, there are multiple ways being followed to perform ajax request to the server. For eg., Dashboard.jsx uses fetch, ViewData.jsx uses vanilla JS' XMLHttpRequest().

Expected: One format should be followed throughout the project.

Remarks: I am working on it.

redirect on successful csv upload

Current Behaviour: Currently, the code is written to redirect to visualize the data after successful upload, but redirection is not working, instead throwing error on console.

Expected Behaviour: It should redirect to corresponding page.

Code Screenshot:
image

Error Screenshot:
image

Remarks: I am working on this issue

/visualize route is not working

Current Behaviour: Currently, /visualize route is not working properly, giving undefined in params, and is throwing errors

Expected: The uploaded csv should be available to visualize

Screenshots:
issue2

Remarks: I am working on it

Type error in localhost

When I run the command npm start it gives this error.
My system environment -
nodejs - 8.10.0
Elementary OS 05.1
Chromium browser - 79.0.3945.79

Screenshot from 2019-12-29 09-21-59

I followed the readme.md completely and after I ran npm start it opens the localhost:3000 and gives the above output.

Gsoc 2019 Idea

Hello Everyone,

According to the Official GSOC-2019 list of project ideas of Score Lab, there is one Idea which is on Implement the TensorMap Web Application. I want to work on this Idea and want to take part in GSoC-2019. I have already introduced myself on Gitter.

Update readme for "npm audit fix" on setting up the project

I was setting up the project by following the methods mentioned and found that ,I had to follow one extra step to set up the project on my machine. It was probably due to some node version issue,but it will be really good if this thing was already present in readme.

image

Document data pre-processing related endpoints

Setup the project and test all data pre-processing related endpoints in the backend by performing data pre-processing related actions in the frontend. Identify which endpoints are performing what task and what kind of data is sent to the backend and what data is returned to the frontend.

Import sql dump

ERROR 1273 (HY000) at line 60: Unknown collation: 'utf8mb4_0900_ai_ci' while restoring dump,

Works with following result when replaced 'utf8mb4_0900_ai_ci'` to 'utf8mb4_unicode_ci'

Screenshot from 2020-01-22 13-22-47

Is this an acceptable workaround?

Glitch on the add data page

I chose the file type to be csv and then uploaded a csv file....After uploading when we again choose other file to upload it says that file type is not supported even though I added a csv type only.

Screenshot 2019-12-30 at 8 51 59 PM

Logo

This is my logo.
ten

Error: no module named 'tensorflow.keras'

Encountered an import error while running the Backend server.

Error: no module named 'tensorflow.keras'

Solved this using tensorflow.python.keras instead of the above statement.

User authentication

  • OAuth backend support with JWT Tokens
  • SignIn
    • Forget password
  • SignUp
    • Email

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.