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.