调用tf.compat.v1.layers.conv2d缺少inputs参数报错如何解决
报错原因
- 你调用的
tf.compat.v1.layers.conv2d属于TensorFlow 1.x的层接口,第一个位置参数inputs为必填项,需要传入待卷积计算的输入张量,你没有传入该参数因此触发类型错误。 - 你查找参数列表没找到
inputs的核心原因是混淆了两类卷积层接口:你大概率查的是TF2.x的tf.keras.layers.Conv2D的参数,这个接口实例化时不需要传inputs,是实例化后调用时再传入输入张量,和tf.compat.v1.layers.conv2d的调用逻辑完全不同。
解决方案
方案1:补全参数适配当前v1接口
直接将待处理的输入张量作为inputs参数传入即可,示例代码:
# input_tensor为你要输入卷积层的张量,如数据集读取的图像、上一层输出的特征图 conv_output = tf.compat.v1.layers.conv2d( inputs = input_tensor, filters = 32, kernel_size = 7, strides = 2 )
方案2:切换为TF2.x标准卷积层写法
如果你的项目适配TensorFlow 2.x,更推荐使用keras风格的卷积层,可维护性更高,示例代码:
# 第一步:实例化卷积层 conv_layer = tf.keras.layers.Conv2D( filters = 32, kernel_size = 7, strides = 2 ) # 第二步:传入输入张量得到计算结果 conv_output = conv_layer(input_tensor)
内容的提问来源于stack exchange,提问作者Ahmed mohamed
相关产品推荐
相关产品推荐

