This repository contains a project aimed at revolutionizing the traditional coffee roasting process using advanced machine learning techniques. Coffee roasting is a critical stage in coffee production, where precise control over temperature and time significantly impacts the flavor and quality of the final product. This project leverages deep learning to create a model that predicts the optimal roasting profile for different types of coffee beans.
Traditional methods of coffee roasting rely heavily on the experience and intuition of the roaster, making it challenging to achieve consistent results. By analyzing historical roasting data, including temperature curves, roast duration, and bean characteristics, our model learns patterns and makes precise predictions. This innovative approach not only automates the coffee roasting process but also allows for greater experimentation and optimization, leading to superior coffee quality.
- Data Collection: Gather various parameters from previous roasting sessions.
- Data Normalization: Ensure uniformity by normalizing the data.
- Data Augmentation: Enhance the training process by duplicating data to increase the dataset size.
- Model Building: Create a neural network specifically designed for coffee roasting.
- Model Training: Train the model on the dataset and validate its performance.
- Model Deployment: Provide real-time recommendations for adjusting roasting parameters.
- Python 3.7 or higher
- TensorFlow
- Keras
- NumPy
- Pandas
- Matplotlib
- Scikit-learn
-
Clone this repository:
git clone https://github.com/HoomKh/CoffeeRoasting-DeepLearning.git cd CoffeeRoasting-DeepLearning -
Install the required packages:
pip install -r requirements.txt
-
Data Preparation:
- Collect and preprocess your data using the provided scripts in the
datadirectory. - Ensure your data is normalized and augmented appropriately.
- Collect and preprocess your data using the provided scripts in the
-
Model Training:
- Run the Jupyter Notebook
CoffeeRoasting-DeepLearning.ipynbto train the model. - Follow the steps in the notebook to train and validate your model.
- Run the Jupyter Notebook
-
Model Deployment:
- Use the trained model to make predictions on new data.
- Apply the
predictmethod to obtain real-time recommendations for roasting parameters.
Normalizing the input features to ensure they have a similar range, which helps in speeding up the training process.
Duplicating the dataset to artificially increase its size, which enhances the model's learning capabilities.
Building the "Coffee Roasting Network" with layers and activation functions as described in the lectures.
Explaining the significance of the input shape and the handling of the sigmoid activation in the final layer.
Defining the loss function, specifying the optimization algorithm, and running gradient descent to fit the model weights to the data.
Preparing the input data matrix with normalized features and applying the predict method.
Using the trained model to make predictions and comparing the probability to a decision threshold.
The trained model can provide real-time recommendations for adjusting roasting parameters, thereby improving consistency and quality in the coffee roasting process.
We welcome contributions to improve the project. Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to all the contributors and the community for their valuable feedback and support.
