Models you can keep
Save a trained model to your home folder. It is still there after the server restarts.
Selfhost.dev runs Jupyter TensorFlow as a zero-setup, one-click template: JupyterLab with TensorFlow and Keras preinstalled beside numpy, pandas and scikit-learn, on a dedicated server we provision, secure and run. It runs on the CPU; saved models stay in a home folder that persists.
Open a notebook and import tensorflow as tf. That is the whole setup.
Jupyter + TensorFlow is JupyterLab with TensorFlow and Keras added to numpy, pandas and scikit-learn. It is the template for deep learning notebooks that run on the CPU.
Students learning Keras, developers prototyping a model and anyone tired of repairing a broken TensorFlow install.
When a local TensorFlow install keeps failing or a training run should outlast your laptop's battery.
The usual route to TensorFlow in Jupyter is a virtual environment, pip install tensorflow, then ipykernel to register that environment as a kernel. Miss one step and the notebook says No module named tensorflow. Here TensorFlow is installed in the kernel you open.
Your browser
HTTPS
JupyterLab
Python
TensorFlow + Keras
Home folder
Your password
| TensorFlow in Jupyter by hand | Jupyter TensorFlow on Selfhost.dev |
|---|---|
| Create and activate a virtual environment | One environment, already set up |
| pip install tensorflow into it | TensorFlow installed |
| Register it with ipykernel install | The kernel you open already has it |
| Restart the kernel after !pip install | No restart before the first import |
Keras is TensorFlow's high-level API, so it arrives in the same kernel. Define a model with keras.Sequential, compile it and call fit, then save the trained model in your home folder.
Save a trained model to your home folder. It is still there after the server restarts.
Load and shape a dataset with pandas, then pass the arrays to Keras in the same notebook.
Split the data, scale features and score a simple model before you train a network.
Jupyter TensorFlow starts on an 8 GB server, the size the console picks for it, on x86 or ARM. Project servers have no GPU, so TensorFlow runs every model on the CPU. That suits learning, prototypes and small models.
Launch, sign in, import.
Launch opens Jupyter + TensorFlow. Pick a password of 12 characters or more and accept the no-mining terms. Before a first top-up, a platform admin approves it. The template deploys in about twenty minutes.
Go to the HTTPS address in the console and enter your password in the Password or token box. No username is asked for.
Run import tensorflow as tf in a new Python notebook. Keras, numpy, pandas and scikit-learn are installed beside it.
Jupyter TensorFlow is billed as one server by the hour from prepaid credits, with no charge per training run. A European 8 GB server costs $0.03/hr, roughly $23 a month.
| Item | Cost |
|---|---|
| The Jupyter + TensorFlow template | $0 |
| Bandwidth to your notebooks | $0, included in the server price |
| Optional daily backups | +20% of the server price |
| Models you train and save | $0 |
| Server | RAM, cores, disk | Where | Rate | About a month |
|---|---|---|---|---|
cx33 (recommended) | 8 GB, 4 cores, 80 GB | Europe | $0.03/hr | $23.36 |
cax21 (ARM) | 8 GB, 4 cores, 80 GB | Europe | $0.04/hr | $29.20 |
cx43 (room to grow) | 16 GB, 8 cores, 160 GB | Europe | $0.06/hr | $43.22 |
ccx13 | 8 GB, 2 cores, 80 GB | US | $0.16/hr | $119.28 |
cpx32 | 8 GB, 4 cores, 160 GB | Singapore | $0.19/hr | $135.63 |
Monthly figures assume 730 hours. The US and Singapore servers need a first top-up.
With a card on file or a past top-up, Jupyter + TensorFlow runs for 5 more days after your balance reaches zero, then stops. Top up within 24 hours to restart it; after that it is deleted, with a 14-day copy you can restore. Welcome-credit-only servers are deleted at zero.
Price a 16 GB server for bigger training sets in the calculator, no signup.
TensorFlow's Docker guide runs tensorflow/tensorflow:latest-jupyter with -p 8888:8888, then has you copy a 127.0.0.1 URL from the terminal and bind-mount a folder so files survive. Jupyter TensorFlow on Selfhost.dev is that container already running, on a server of its own.
| TensorFlow Docker image | Jupyter TensorFlow on Selfhost.dev | |
|---|---|---|
| Start | docker run with -p 8888:8888 | Already running |
| Sign-in | A token URL copied from the terminal | Your own password |
| Your files | Lost unless you bind-mount a folder | Kept in your home folder |
| Address | 127.0.0.1 on your machine | HTTPS, from any browser |
The console estimates about twenty minutes for the Jupyter + TensorFlow template after the server is ready; first-time server provisioning adds time.
Nothing here in your way? The template deploys in about twenty minutes.
Launch Jupyter + TensorFlowTell us the dataset size and how many notebooks run at once. We reply with the server we would choose and its monthly price.
Yes. TensorFlow runs in any Jupyter notebook whose kernel has it installed, which is where most setups break. On this template it is already installed in the Python kernel, so import tensorflow as tf works in the first cell with no venv, pip or ipykernel step.
No. Project servers have no GPU, so this template runs TensorFlow on the CPU and every model trains on the processor. That covers learning Keras, prototypes, small networks and predictions from saved models. Size the server for the data and models you load; a 16 GB server gives more room.
Yes. Keras is installed with TensorFlow, so you can build a model with keras.Sequential or the functional API in the same notebook. numpy, pandas and scikit-learn sit beside it for loading data, splitting it and scoring a baseline before you train a network.
Yes. Save a model into your home folder and it is still there after the server restarts, along with your notebooks and packages added with pip install --user. Keep a second copy of models you cannot retrain quickly, in a repository or a download.
It is the same JupyterLab with TensorFlow and Keras added to the scientific Python stack, so the image is larger and the console allows about twenty minutes. Without deep learning, JupyterLab hosting is the lighter template. For PyTorch, Jupyter + PyTorch brings torchvision and torchaudio.
Before a first top-up, each new Jupyter + TensorFlow waits for a platform admin to approve it. Its name is held for you meanwhile; the decision arrives by email. Organisations that have topped up skip the wait. Crypto mining is banned on every server. Delete the service to withdraw a request.
Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour, in six locations across three continents.
Best for: Deep learning notebooks beside the apps and data they use, a vector database for embeddings and managed PostgreSQL, MySQL and Redis.