首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为onnx转换设置环境变量TF_Keras =1?

如何为onnx转换设置环境变量TF_Keras =1?
EN

Stack Overflow用户
提问于 2019-11-21 22:46:13
回答 1查看 4.8K关注 0票数 7

最近更新到了tensorflow 2.0,而且我的.h5模型在.onnx上也有问题。过去是一个非常简单的程序,但现在我有一个问题。当我运行以下代码时:

代码语言:javascript
复制
# onnx testing
import onnx    
import keras2onnx
import os
import tensorflow as tf
from tensorflow.keras.models import load_model

folder = 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)

当我运行代码时,我会得到以下错误

代码语言:javascript
复制
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.

我试过使用注释行

代码语言:javascript
复制
os.environ["TF_KERAS"]='1' but nothing seemed to happen.

有没有人有过这个问题,或者知道如何改变这个变量来转换模型?感谢你的帮助。

代码语言:javascript
复制
keras2onnx==1.6.0
Keras==2.2.4
onnx==1.6.0
tensorflow==2.0.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-22 15:59:45

应该在导入模块之前设置环境变量,因为模块在导入时检查变量:

代码语言:javascript
复制
import os
os.environ['TF_KERAS'] = '1'
import onnx
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58984892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档