How to set environment variable TF_Keras = 1 for onnx conversion?

2024/10/5 3:20:14

Recently updated to tensorflow 2.0 and am having trouble getting my .h5 models into .onnx . Used to be a very simple procedure but now I am having an issue. When I run the following code:

# onnx testing
import onnx    
import keras2onnx
import os
import tensorflow as tf
from tensorflow.keras.models import load_modelfolder = r'\\rdnas'
os.chdir(folder)#os.environ["TF_KERAS"]='1'
model_loc = folder+'\\model.h5'
model = tf.keras.models.load_model(model_loc)
model.summary()  # Onnx covnersion  onnx_model = keras2onnx.convert_keras(model)
temp_model_file = 'model.onnx'
onnx.save_model(onnx_model, temp_model_file)

When I run the code I get the following error

Using TensorFlow backend.
Can't import tf2onnx module, so the conversion on a model with any custom/lambda layer will fail!
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
DVA_input (Dense)            (None, 512)               670720    
_________________________________________________________________
dropout_3 (Dropout)          (None, 512)               0         
_________________________________________________________________
dense_3 (Dense)              (None, 256)               131328    
_________________________________________________________________
dropout_4 (Dropout)          (None, 256)               0         
_________________________________________________________________
dense_4 (Dense)              (None, 128)               32896     
_________________________________________________________________
dropout_5 (Dropout)          (None, 128)               0         
_________________________________________________________________
dense_5 (Dense)              (None, 10)                1290      
_________________________________________________________________
Predicted_Volume (Dense)     (None, 1)                 11        
=================================================================
Total params: 836,245
Trainable params: 836,245
Non-trainable params: 0
_________________________________________________________________
Traceback (most recent call last):File "<ipython-input-1-f9d072fc6a73>", line 19, in <module>onnx_model = keras2onnx.convert_keras(model)File "C:\Users\JTBLONIGAN\AppData\Local\Continuum\anaconda3\envs\Keras-GPU\lib\site-packages\keras2onnx\main.py", line 67, in convert_keras" Please set environment variable TF_KERAS = 1.")Exception: This is a tensorflow keras model, but keras standalone converter is used. Please set environment variable TF_KERAS = 1.

I tried using the commented out line

os.environ["TF_KERAS"]='1' but nothing seemed to happen.

Has anyone had this issue or know how to change that variable to convert the model? Appreciate any help.

keras2onnx==1.6.0
Keras==2.2.4
onnx==1.6.0
tensorflow==2.0.0
Answer

Environment variables should be set before importing modules, as modules check the variables at import:

import os
os.environ['TF_KERAS'] = '1'
import onnx
https://en.xdnf.cn/q/70532.html

Related Q&A

Django App Engine: AttributeError: AnonymousUser object has no attribute backend

I am using djangoappengine. When I try create a new user, authenticate that user, and log them in, I get the following error AttributeError: AnonymousUser object has no attribute backend.My code is sim…

python identity dictionary [duplicate]

This question already has answers here:Closed 12 years ago.Possible Duplicate:How to make a python dictionary that returns key for keys missing from the dictionary instead of raising KeyError? I need…

Whats a good library to manipulate Apache2 config files? [closed]

Closed. This question is seeking recommendations for books, tools, software libraries, and more. It does not meet Stack Overflow guidelines. It is not currently accepting answers.We don’t allow questi…

AttributeError: module object has no attribute webdriver

AttributeError: module object has no attribute webdriverwhy this error happen when write import selenium and when write code like this no error happenfrom selenium import webdriver

Mask Ocean or Land from data using Cartopy

I would like to mask the Land area from Sea Surface Temperature Data over the globe. I am using Cartopy to plot the data.import numpy as np import matplotlib.pyplot as plt import cartopy.crs as ccrs fr…

How to map func_closure entries to variable names?

I have a lambda object that is created in this function:def add_url_rule(self, rule, endpoint=None, view_func=None, **options):self.record(lambda s:s.add_url_rule(rule, endpoint, view_func, **options))…

How to use the convertScaleAbs() function in OpenCV?

I am trying to convert an image back to grayscale after applying Sobel filtering on it. I have the following code: import numpy as np import matplotlib.pyplot as plt import cv2image = cv2.imread("…

Register a Hello World DBus service, object and method using Python

Im trying to export a DBus service named com.example.HelloWorld, with an object /com/example/HelloWorld, and method com.example.HelloWorld.SayHello that prints "hello, world" if the method i…

Python 3 Timedelta OverflowError

I have a large database that I am loading into an in-memory cache. I have a process that does this iterating through the data day by day. Recently this process has started throwing the following error:…

Constructing hierarchy from dictionary/JSON

Im looking for a way to create hierarchy in form of child parent relationship between two or more instances of same class.How would one go about creating such objects from nested dictionary like in exa…