blobcity / autoai

Python based framework for Automatic AI for Regression and Classification over numerical data. Performs model search, hyper-parameter tuning, and high-quality Jupyter Notebook code generation.
Apache License 2.0
175 stars 43 forks source link

Progress Bar #24

Closed Thilakraj1998 closed 3 years ago

Thilakraj1998 commented 3 years ago

Add a Python progress bar on the train function, to indicate to the user the current training progress.

model=bc.train("datasetpath","target")

File to refer : https://github.com/blobcity/autoai/blob/main/blobcity/main/driver.py

Example progress bars in Python: https://www.geeksforgeeks.org/progress-bars-in-python/

For accurate progress reporting, create an execution profile to estimate the total number of epochs/steps. Increment the process bar as each training epoch or step is completed.

The progress bar should display correctly in both terminal / command prompt execution, as well as when executing within a Jupyter Notebook.

kjura commented 3 years ago

Hello, can I contribute to this project? Is it still open?

Thilakraj1998 commented 3 years ago

Hello, can I contribute to this project? Is it still open?

Yes, you can contribute to this project. Just let as know, which issue you would like to work on.

kjura commented 3 years ago

I thought about tackling this issue (issue #24) with progress bar.

As far as I understand, the first step would be to decide whether to use tqdm/progressbar. Would you recommend first to implement bar for terminal/command prompt or Jupyter?

Thilakraj1998 commented 3 years ago

I thought about tackling this issue (issue #24) with progress bar.

As far as I understand, the first step would be to decide whether to use tqdm/progressbar. Would you recommend first to implement bar for terminal/command prompt or Jupyter?

@kjura first with jupyter

kjura commented 3 years ago

Thanks for the details, right now I have managed to install necessary packages from requirements.txt (I have created virtual environment locally using venv) and I guess my next step is to run train() function. But I've been fighting with running driver.py file. Namely, when I try to run it the following is rising before my eyes (Ubuntu 20.10):

Traceback (most recent call last): File "driver.py", line 23, in <module> from blobcity.store import DictClass ModuleNotFoundError: No module named 'blobcity'

The below goes from line 21 (top) to 27 (bottom) (driver.py file)

import pickle import tensorflow as tf from blobcity.store import DictClass from blobcity.utils import getDataFrameType,dataCleaner from blobcity.utils import AutoFeatureSelection as AFS from blobcity.main.modelSelection import modelSearch from blobcity.code_gen import yml_reader,code_generator

I guess, it has to do with relative/absolute module searching (I have not installed blobcity via PIP yet. I tried to just use files coming directly from the build). This is the current tree (my local platform) for blobcity:

blobcity/ ├── code_gen │   ├── Generator.py │   ├── init.py │   ├── pycache │   │   ├── Generator.cpython-38.pyc │   │   ├── init.cpython-38.pyc │   │   ├── PyMeta.cpython-38.pyc │   │   └── SourceCodes.cpython-38.pyc │   ├── PyMeta.py │   └── SourceCodes.py ├── config │   ├── classifier_config.py │   ├── init.py │   ├── pycache │   │   ├── classifier_config.cpython-38.pyc │   │   ├── init.cpython-38.pyc │   │   ├── regressor_config.cpython-38.pyc │   │   └── tuner.cpython-38.pyc │   ├── regressor_config.py │   └── tuner.py ├── init.py ├── main │   ├── driver.py │   ├── init.py │   ├── modelSelection.py │   └── pycache │   ├── driver.cpython-38.pyc │   ├── init.cpython-38.pyc │   └── modelSelection.cpython-38.pyc ├── pycache │   └── init.cpython-38.pyc ├── store │   ├── DictClass.py │   ├── init.py │   ├── Model.py │   └── pycache │   ├── DictClass.cpython-38.pyc │   ├── init.cpython-38.pyc │   └── Model.cpython-38.pyc └── utils ├── AutoFeatureSelection.py ├── Cleaner.py ├── FileType.py ├── init.py ├── ProblemType.py ├── pycache │   ├── AutoFeatureSelection.cpython-38.pyc │   ├── Cleaner.cpython-38.pyc │   ├── FileType.cpython-38.pyc │   ├── init.cpython-38.pyc │   ├── ProblemType.cpython-38.pyc │   └── YamlGenerator.cpython-38.pyc └── YamlGenerator.py

Am I overkilling it and testing (and running) should be smooth and maybe approached differently than my idea? Before running in Jupyter I wanted to run it in the terminal.

Thilakraj1998 commented 3 years ago

@kjura

To test locally execute either ClassificationTest.py or RegressionTest.py file which is in the autoai directory