Tensorflow 使用Vitis AI编译模型时出错:数据值超出范围

Tensorflow 使用Vitis AI编译模型时出错:数据值超出范围,tensorflow,machine-learning,keras,xilinx,vitis-ai,Tensorflow,Machine Learning,Keras,Xilinx,Vitis Ai,我正在构建一个简单的自定义Keras模型,如下所示: model = Sequential() model.add(Conv2D(16, (16, 1), activation='relu', input_shape=(300,2,1) )) model.add(Dropout(0.1)) model.add(Conv2D(32, (16, 1), activation='relu')) model.add(Dropout(0

我正在构建一个简单的自定义Keras模型,如下所示:

model = Sequential()
model.add(Conv2D(16, (16, 1), activation='relu', input_shape=(300,2,1) ))   
model.add(Dropout(0.1))

model.add(Conv2D(32, (16, 1), activation='relu'))                               
model.add(Dropout(0.2))

model.add(Flatten())

model.add(Dense(32, activation='relu'))
model.add(Dropout(0.5))

model.add(Dense(3, activation='softmax'))
Keras模型需要使用Xilinx的Vitis AI编译,以便在FPGA上运行。我们将按照所概述的步骤编译模型

但是,在编译阶段,我们遇到了以下错误:

[VAI_C-BACKEND][Check Failed: (kernel_h - stride_h) <= 3 * pixel_parallel * stride_h][/home/xbuild/conda-bld/dnnc_1592904456005/work/submodules/asicv2com/src/Operator/OperatorConv.cpp:53][DATA_OUTRANGE][Data value is out of range!]

[VAI_C-BACKEND][Check Failed:(内核-步幅)Vitis AI手册提到:
“目前,vai_c_tensorflow2仅支持Keras功能API。将使用顺序API
在未来版本中支持。”手册v1-3第86页

因此,如果您使用的是tf2,请首先将您的模型重写为函数格式。

如果错误仍然存在,请查看您正在使用的层(如果它们都受支持)。tf1和tf2之间受支持的层之间存在差异