Giter VIP home page Giter VIP logo

cnn-signals-classification's Introduction

Classify Radio Signals from Outer Space with Keras

by brewbooks is licensed under CC BY 2.0

This project demonstrates the process of using a Convolutional Neural Network (CNN) to classify space signals into four categories: "squiggle", "narrowband", "noise", and "narrowbanddrd".

Setup Instructions

  • Create a virtual environment.
  • Unzip dataset.zip.
  • Activate the virtual environment and install dependencies:
.venv\Scripts\Activate.ps1
pip install --upgrade pip ipykernel scikit-learn tensorflow pandas numpy matplotlib seaborn livelossplot
pip freeze > requirements.txt

Training Process

The training involves the following steps:

Step 1: Import Libraries

  • Essential libraries and modules are imported.
  • TensorFlow's version is printed to ensure compatibility.

Step 2: Load and Preprocess SETI Data

  • The SETI dataset, transformed into images, is loaded.
  • Data is reshaped to fit the model requirements.

Step 3: Plot 2D Spectrograms

  • Spectrograms of the signals are plotted to visualize the data.

Step 4: Create Training and Validation Data Generators

  • ImageDataGenerators are used for data augmentation to improve model robustness.

Step 5: CNN Architecture

  • The CNN model is defined with layers designed to capture spatial hierarchies in the data.

Step 6: Schedule Learning Rate and Compile Model

  • An exponential decay learning rate schedule is implemented.
  • The model is compiled with the Adam optimizer.

Step 7: Callbacks

  • Callbacks including model checkpointing and plot losses are set up to monitor training.

Step 8: Model Training

  • The model is trained using the defined data generators and callbacks.

Step 9: Model Evaluation, Prediction, Classification Report

  • The model's performance is evaluated on a validation set.
  • A classification report and confusion matrix provide detailed performance metrics.

Conclusion

This project outlines a comprehensive approach to classifying radio signals from space using a CNN with Keras. It covers the end-to-end process, from data preprocessing and model definition to training, evaluation, and interpretation of results.

cnn-signals-classification's People

Contributors

clf3721 avatar

Stargazers

Mvoi avatar pietrodev07 avatar  avatar jist avatar

Watchers

 avatar

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.