Hi, I’m the tech lead of a small AI startup. We’re mostly working on a product that doing human pose detection on mobile device and cloud.
Currently we’re planning for the next major phase of our product development, and part of this is a full upgrade of our deep learning development pipeline to enable us do more interesting things.
After watching the course video, reading through the swift notebooks, and setup the environment on my dev box, I’m completely sold. S4TF solves problems of Python been used in a production environment. Our application frontend and backend are exclusively using TypeScript, which may be the best decision I’ve ever made for this project. And Swift feels the same when I got the VSCode extension working, syntax highlighting, auto completion, accurate real time error/warning as you are typing code. This is the language I’m searching for years, and it is here.
Basically, I can compromise A LOT to make our team using Swift. And I do realize it’s not ready for production use right now. But the idea just keeps coming back in my mind: what if we bite the bullet and give it a try? We’re a small team and we can hack a lot of things if it’s hackable. So here I’m collecting opinions here to help me estimate how big is the “bullet”
These are some of the things we may care:
The performance, especially the GPU performance for training
Using public cloud (We are using Azure Machine Learning right now) to do training
Ways to deploy to production (for example, TensorFlow serving).
I believe there is no “one-click” to export and deploy option right now. But what if we can afford to manually collect the weights from S4TF and apply it on the other side? What if we can even afford to replicate the network structure? Can we extract the graphic pb from S4TF binary?
How about pretrained weights? How hard it would be to convert some pretrained weight to a S4TF model? (I don’t think there is a way to import the model structure right now, correct me if I’m wrong)
Are there anything that may prevent us from implementing certain network architecture? For example, we’re using mobilenet family a lot. And the perf issue of depthwise convolution in PyTorch (https://github.com/pytorch/pytorch/issues/18631) forced us move away from pytorch (and FastAI )
Anything else? Like in-deterministic results? Un-traceable crashes? Un-hackable blockers?
If our internal schedule works out, we’ll pick a small “framework validation task”, like porting PoseNet to S4TF, and have 1-2 developers spend a week or so to give it a try. And I’ll post our learning back here.
But any thoughts from the community before we get started will be super helpful!