Data from: Multioutput convolutional neural network for improved parameter extraction in time-resolved electrostatic force microscopy data
Data files
Apr 16, 2026 version files 2.62 GB
-
best_model.pth
1.90 GB
-
example_use.ipynb
858.55 KB
-
image_instfreq.npy
655.36 MB
-
image_topography.npy
32.90 KB
-
MultioutputCNN_for_trEFM.py
31.99 KB
-
README.md
3.39 KB
-
vpulse_labels.npy
12.10 KB
-
vpulses.npy
59.89 MB
Abstract
Time-resolved scanning probe microscopy methods, like time-resolved electrostatic force microscopy (trEFM), enable imaging of dynamic processes ranging from ion motion in batteries to electronic dynamics in microstructured thin film semiconductors for solar cells. Reconstructing the underlying physical dynamics from these techniques can be challenging due to the interplay of cantilever physics with the actual transient kinetics of interest in the resulting signal. Previously, quantitative trEFM used empirical calibration of the cantilever or feed-forward neural networks trained on simulated data to extract the physical dynamics of interest. Both these approaches are limited by interpreting the underlying signal as a single exponential function, which serves as an approximation but does not adequately reflect many realistic systems. Here, we present a multi-branched, multi-output convolutional neural network (CNN) that uses the trEFM signal in addition to the physical cantilever parameters as input. The trained CNN accurately extracts parameters describing both single-exponential and bi-exponential underlying functions, and more accurately reconstructs real experimental data in the presence of noise. This work demonstrates an application of physics-informed machine learning to complex signal processing tasks, enabling more efficient and accurate analysis of trEFM.
https://doi.org/10.5061/dryad.9zw3r22rv
Trained model parameters (best_model.pth), voltage pulse data, and example image topography and input data included in the manuscript.
Setup instructions:
- Download the files in this Dryad repository (image_topography.npy, vpulse_labels.npy, vpulses.npy, best_model.pth, image_instfreq.npy, example_use.ipynb, and MultioutputCNN_for_trEFM.py).
- Open the Jupyter notebook (example_use.ipynb) in your preferred IDE (e.g., Spyder or VS Code).
- Follow instructions on how to load the datasets using Numpy and PyTorch libraries for Python. Visualizations in the notebook are created with the matplotlib library. A complete list of libraries needed is included in example_use.ipynb.
- Further dataset descriptions, visualization instructions, and simulations are included in example_use.ipynb.
Files and variables
MultioutputCNN_for_trEFM.py
Description: Python file containing model architecture, evaluation functions, display functions, and additional coding documentation. Loaded using example_use.ipynb to run the model and display outputs. (Unitless.)
example_use.ipynb
Description: Jupyter notebook file containing instructions and documentation for loading the model, using the model, and visualizing the results.
image_topography.npy
Description: Numpy array (size: [128,64]) containing topography data for example image. See instructions in example_use.ipynb for loading and displaying. Units in nm. Data collection process described in manuscript.
vpulse_labels.npy
Description: Numpy array (size: [499,3]) containing the bi-exponential parameters used to generate the voltage pulse signals. See instructions in example_use.ipynb for loading and displaying. Units in microseconds. Data collection process described in manuscript.
vpulses.npy
Description: Numpy array (size: [499,15003]) containing the cantilever oscillation frequency response signals according to the voltage pulse labels. See instructions in example_use.ipynb for loading and displaying. Units in Hz. Data collection process described in manuscript.
best_model.pth
Description: Parameter state dictionary (PyTorch) for trained network. See instructions in example_use.ipynb for loading and using. (Loaded into model architecture using PyTorch.) Unitless.
image_instfreq.npy
Description: Numpy array (size: [128,64,15003]) containing the cantilever oscillation frequency input array for the example image. See instructions in example_use.ipynb for loading and displaying. Units in Hz. Data collection process described in manuscript.
Access information
Other publicly accessible locations of the data:
- N/A.
Data was derived from the following sources:
- Simulated training data was generated using the FFTA package.
- Experimental data was collected as described in publication.
The trained model parameters were obtained by training the convolutional neural network on a combination of simulated and voltage pulse data. All code can be found at: https://github.com/mdbresh/CNN_trEFM.
The voltage pulse dataset was obtained by applying voltage pulses following single- and bi-exponential functions with known parameters to a conductive substrate and collecting the response from an oscillating scanning probe cantilever. Additional details can be found in the preprint of the manuscript in the Methods section: https://doi.org/10.48550/arXiv.2502.03572.
The example time-resolved electrostatic force microscopy image was collected on a lead halide perovskite thin film sample with the following composition: Cs0.17FA0.83Pb(I0.85Br0.15)3. Details regarding sample preparation and data processing are described in the preprint of the manuscript in the Methods and Supporting Information sections: https://doi.org/10.48550/arXiv.2502.03572.
