- Batch Size: Try using mini-batches of size 16 or 32.
- Learning Rate: Consider experimenting with a lower learning rate (e.g., 0.001).
- Sequence Padding: Make sure all sequences are the same length or properly padded.
- Train/Validation Split: Ensure a good mix of battery capacities in both training and validation sets.
- Overfitting: Check for overfitting, use early stopping or dropout layers if needed.
Help with Battery Capacity Prediction using LSTM
6 views (last 30 days)
Show older comments
Hello everyone,
I'm trying to predict the capacity of a battery using a sequence-to-one regression model, but my current results aren't good, and I'm looking for some advice.
My Data:
- I have 1000 data sequences.
- Each sequence represents a single battery charfe and discharge cycle.
- The input features for each sequence are Voltage, Current, Temperature, and Time.
- The shape of each input sequence is [4 features x 3700 time steps].
- The output is the battery capacity, which is a single double value for each sequence.
My Model Architecture:
I'm using an LSTM network with the following layers:
Matlab
layers = [
sequenceInputLayer(4, 'MinLength', 3700, 'Name', 'input', 'Normalization', 'zscore')
lstmLayer(50, 'OutputMode', 'last', 'Name', 'lstm')
fullyConnectedLayer(40, 'Name', 'fc1')
reluLayer('Name', 'relu_fc')
fullyConnectedLayer(1, 'Name', 'fc_output')
regressionLayer('Name', 'output')
];
My Problem:
The model isn't providing useful results. I'm not sure what I might be doing wrong with my approach.
My questions are:
- Is this a suitable architecture for this type of problem?
- Are there any common issues I should check, such as data preprocessing (e.g., normalization) or hyperparameter tuning (e.g., number of hidden units)?
- Could the issue be in how I'm handling the Time feature? Should it be a separate feature, or is there a better way to represent it?
Any suggestions on how to improve my model or overall approach would be greatly appreciated. Thank you!
0 Comments
Answers (1)
Shishir Reddy
on 17 Jul 2025
Your architecture is a good starting point for sequence-to-one regression. Using an LSTM with OutputMode='last' is appropriate since you're mapping the full sequence to a single capacity value.
Here are the common issues that should be checked -
For more information regarding training deep neural networks, kindly refer the following documentation - https://www.mathworks.com/help/deeplearning/train-deep-neural-networks.html
I hope this helps.
0 Comments
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!