TensorFlow转换LSTM为TFLite时报generator对象不可调用错误解决方案
LSTM转TFLite量化时报
TypeError: 'generator' object is not callable的解决方案 问题现象
将LSTM模型转换为TFLite模型时触发报错:TypeError: 'generator' object is not callable。
环境说明
- 原运行环境:Python3.6,代码可正常运行
- 报错环境:Python3.7 + TensorFlow-nightly 2.7,因LSTM转换需求切换环境后触发报错
触发场景
自定义批量数据生成器函数,从CSV文件读取数据后调用reshape_for_Lstm完成格式转换,将生成器调用结果赋值给converter.representative_dataset作为量化校准的代表数据集,执行converter.convert()时触发报错,错误栈指向TFLite校准模块调用传入的数据集对象时出现类型不匹配。
修复方案
- 方案1:定义无参生成器函数,直接将函数对象(而非调用后的生成器实例)赋值给
converter.representative_dataset - 方案2:实现带
__init__和__call__方法的生成器类,传入数据和批次大小完成实例化后,将实例赋值给对应参数即可。
内容的提问来源于stack exchange,提问作者Florida Man
相关产品推荐
相关产品推荐

