Colab代码本地运行报错:ValueError输入张量传参异常
解决方案:TensorFlow Concatenate层 dict_values 输入报错问题
问题原因
本地TensorFlow版本对输入参数类型的校验逻辑与Colab环境存在差异:Colab使用的TF版本允许直接传入dict_values对象作为Concatenate层的位置参数,但本地安装的TF版本要求仅张量或张量列表可作为位置参数传递,dict_values类型必须通过关键字参数传入,或转换为张量列表。
修复方案
方案1:将dict_values转换为列表
修改报错行代码,把inputs.values()用list()包裹,转换为标准的张量列表:
preprocessing_layer = tf.keras.layers.Concatenate()(list(inputs.values()))
方案2:使用关键字参数传入
通过inputs关键字参数传递dict_values对象,符合TF对参数类型的要求:
preprocessing_layer = tf.keras.layers.Concatenate()(inputs=inputs.values())
额外建议
检查本地TensorFlow版本与Colab环境的版本是否一致,若版本差距较大,可升级本地TF到匹配版本:
pip install --upgrade tensorflow
内容的提问来源于stack exchange,提问作者Johan Florez
相关产品推荐
相关产品推荐

