Coreml 2 See merge request vato007/fast-depth-tf!9
Fast Depth TF
Tensorflow 2.0 Implementation of Fast Depth.
Original Implementation in PyTorch is here: https://github.com/dwofk/fast-depth
This code has been tested with Tensorflow 2.4.1, however any version of Tensorflow >2 should work
The model has also been successfully optimised using the OpenVINO model optimiser
Basic Usage
To train and evaluate the model on the nyu_v2 dataset, simply run:
python main.py
WARNING: This will download nyu_v2 which is ~100gb when including archived and extracted files, plus another 70gb for generated examples.
The following sample demonstrates creating a FastDepth model that can later be used for inference, training or evaluation.
import fast_depth_functional as fd
# No Pretrained weights
model = fd.mobilenet_nnconv5()
# Imagenet weights
model = fd.mobilenet_nnconv5(weights='imagenet')
# Load trained model from file
model = fd.load_model('my_fastdepth_model')
Train
Training with the NYU dataset is as simple as running the following: WARNING: This will download ~30gb and extra ~70gb if you haven't downloaded it already. It also takes a long time to prepare the examples (>1 hour)
import fast_depth_functional as fd
model = fd.mobilenet_nnconv5(weights='imagenet')
# Train then save the model as keras h5 format
fd.train(model, save_file='fast_depth')
# A custom dataset can be passed in if required
fd.train(model, dataset=my_dataset)
Evaluate
Evaluation is similar to training. The nyu dataset validation split will be used by default, and if you trained as shown above, the dataset will have already been downloaded.
import fast_depth_functional as fd
model = fd.load_model('fast_depth')
fd.compile(model)
fd.evaluate(model)
# A custom dataset for evaluation is supported
fd.evaluate(model, dataset=my_evaluation_dataset)
Troubleshooting
Windows GPU Fix
If you are using Windows and encounter an error opening cudnn (you should see CUDNN_STATUS_ALLOC_FAILED somewhere before the error), first check you have correctly installed CUDA toolkit and cuDNN. If you have, then run the Windows GPU fix included in this repo:
import fast_depth_functional as fd
# Windows GPU Fix
fd.fix_windows_gpu()
More information about this error can be found here: https://forums.developer.nvidia.com/t/could-not-create-cudnn-handle-cudnn-status-alloc-failed/108261