Skip to content

Advanced: Deep learning (optional)

Deep learning is not required to use foodspec protocol. However, an experimental 1D CNN classifier is provided for users who want to explore deep models on spectral data.

Installation

The deep module depends on TensorFlow and is not installed by default:

pip install 'foodspec[deep]'

If you call Conv1DSpectrumClassifier without TensorFlow installed, foodspec will raise a clear ImportError explaining how to install the extra.

Conv1DSpectrumClassifier

Example usage (assuming you have installed the deep extra):

import numpy as np
from foodspec.chemometrics.deep import Conv1DSpectrumClassifier
from foodspec.data.loader import load_example_oils

ds = load_example_oils()
clf = Conv1DSpectrumClassifier(epochs=5, batch_size=16)
clf.fit(ds.x, ds.metadata["oil_type"])
proba = clf.predict_proba(ds.x[:2])
pred = clf.predict(ds.x[:2])
print(pred, proba.shape)

This class follows an sklearn-like API (fit, predict, predict_proba), but is intended for experimental use only. For most applications, classical chemometric models (PLS, SVM, RF, etc.) are recommended.