# Import Model

Tensorleap supports importing models exported to various standard formats, including standard TensorFlow (SaveMode&#x6C;*/*&#x48;5/JSON) and PyTorch (ONNX).

### Formats

#### JSON\_TF2 - JSON format (TensorFlow 2)

The JSON format serializes the model layers, their properties and connectivity. It does not hold the state (weights) of the model.

Below is a code snippet for saving a TensorFlow model as a JSON file:

```python
json_file = open("model.json", "w")
json_file.write(model.to_json())
json_file.close()
```

More info at <https://www.tensorflow.org/api_docs/python/tf/keras/models/model_from_json>.

#### H5\_TF2 - H5 format (TensorFlow 2)

The `h5` format serializes the model and model state (weights) as a **single** `h5` file.

Below is a code snippet for loading an exported `h5` file:

```python
model.save('model.h5')
```

More info at <https://www.tensorflow.org/tutorials/keras/save_and_load>.

#### ONNX format (PyTorch)

The `onnx` format is commonly used in PyTorch for serializing the model's layers and state (weights).

Below is a code snippet for exporting a model to an `onnx` file in PyTorch:

```python
import torch
import torchvision

dummy_input = torch.randn(10, 3, 224, 224, device="cuda")
model = torchvision.models.alexnet(pretrained=True).cuda()

input_names = [ "actual_input_1" ] + [ "learned_%d" % i for i in range(16) ]
output_names = [ "output1" ]

torch.onnx.export(model, dummy_input, "alexnet.onnx", verbose=True, input_names=input_names, output_names=output_names)
```

More info at <https://pytorch.org/docs/stable/onnx.html>.

#### SavedModel\_TF2 - SaveModel serialization (TensorFlow 2)

Uses the TensorFlow 2 `SaveModel` to export a folder with files containing the serialized model layers and state.

Below is a code snippet to load the model from the extracted folder:

```python
model.save('model_folder')
```

The serialized data is stored to a folder with this directory structure:

```shell
assets/ (folder)
variables/ (folder)
saved_model.pb
```

More info at <https://www.tensorflow.org/api_docs/python/tf/keras/models/save_model>.

When importing the folder generated by the `model.save()` format from Tensorleap, the exported folder needs to be contained in a `tar.gz` file.

&#x20;One way to do it is by using `tar`:

```shell
tar -zcvf model_folder.tar.gz  model_folder
```

### Import Model using UI

To import a model:

1. On the **Network** view, click <img src="/files/To02dgYOXruX1pvp9gzj" alt="" data-size="line"> to open the **Import Model** panel.
2. Enter the revision name and model name, and select the import file format from the list.
3. Click and select the import file from your system.
4. Optional: Select a [Dataset](/user-interface/resources-management/integration-scripts.md) to connect to your model

{% hint style="info" %}
If your model contains [Custom Layers](/tensorleap-integration/writing-integration-code/custom-layers.md) this step is mandatory. You must first add these to the dataset script and select the dataset before moving to the next step.
{% endhint %}

&#x20; 5\.  Click **Import**.

<figure><img src="/files/DHOAp8epqraFTPajsX1B" alt=""><figcaption><p>Setting up the import</p></figcaption></figure>

6\. Once the import process is complete, the model is added to the [**Versions**](/user-interface/project/versions.md) view.

7\. Position your cursor over the version and click <img src="/files/Z5YHIbLxwSyr6FgMCLn8" alt="" data-size="line">, then **Open Commit**.&#x20;

8\. Back on the **Network** view, point the [**Dataset Block**](/user-interface/project/network/network-mapping/create-a-mapping-deprecated/input-node.md) to the model's [**Dataset Instance**](/tensorleap-integration/writing-integration-code.md#dataset-instance) and connect it to the first layer in the network.

{% hint style="info" %}
Once a dataset has been integrated with Tensorleap, it becomes available for use with your models. More info about Dataset Integration can be found at [**Dataset**](/tensorleap-integration/writing-integration-code.md).
{% endhint %}

![Importing a model and pointing its Dataset Block to a dataset instance](/files/cjV600jq8htJ0DMwpWuU)

8\. Add a [**Loss and Optimizer**](/user-interface/project/network/network-mapping/create-a-mapping-deprecated/loss-node.md) for the network, then set it up for [**training**](/user-interface/project/menu-bar/evaluate-a-model.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tensorleap.ai/user-interface/project/versions/import-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
