Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tf.keras.Model(命令式API)中获取输入形状_Python_Tensorflow_Tensorflow2.0_Tf.keras - Fatal编程技术网

Python 在tf.keras.Model(命令式API)中获取输入形状

Python 在tf.keras.Model(命令式API)中获取输入形状,python,tensorflow,tensorflow2.0,tf.keras,Python,Tensorflow,Tensorflow2.0,Tf.keras,我使用Tensorflow 2.0,我有一个在命令式API中定义的模型。在调用方法中,我使用如下内容: b,h,w,c=images.shape k_h,k_w=kernels.shape[2],kernels.shape[3] 图像=转置(图像[1,2,0,3])#(h,w,b,c) 新的_形=tf.TensorShape([1,h,w,b*c]) 图像=tf.重塑(图像,新形状) 当我用自定义循环训练我的模型时——没问题。但我想将我的模型移植到SavedModel格式。我使用以下功能: t

我使用Tensorflow 2.0,我有一个在命令式API中定义的模型。在调用方法中,我使用如下内容:

b,h,w,c=images.shape
k_h,k_w=kernels.shape[2],kernels.shape[3]
图像=转置(图像[1,2,0,3])#(h,w,b,c)
新的_形=tf.TensorShape([1,h,w,b*c])
图像=tf.重塑(图像,新形状)
当我用自定义循环训练我的模型时——没问题。但我想将我的模型移植到SavedModel格式。我使用以下功能:

tf.keras.experimental.export\u保存的\u模型(
模型,文件路径,
仅服务于=真,
输入签名=[
tf.TensorSpec(shape=[None,None,None,3],dtype=tf.float32),
]
)
我得到了一个错误:

TypeError:不支持*:'NoneType'和'int'的操作数类型
此外,即使我指定shape=[1,None,None,3],我也不能这样做,因为我得到:

ValueError: Tried to convert 'shape' to a tensor and failed. Error: Cannot convert a partially known TensorShape to a Tensor: (1, None, None, 3)

这意味着我根本不能做整形。但我需要它。如何操作?

在图形模式下运行时,请使用tf.shape。 在图形模式下运行时,tf.Tensor.shape无法进行自动形状推断。 下面是代码,并进行了必要的更改

image_shape = tf.shape(images)
kernel_shape = tf.shape(kernels)
b, h, w, c = image_shape[0], image_shape[1], image_shape[2], image_shape[3], 
k_h, k_w = kernel_shape[2], kernel_shape[3]

images = tf.transpose(images, [1, 2, 0, 3])  # (h, w, b, c)
new_shape = tf.TensorShape([1, h, w, b * c])
images = tf.reshape(images, new_shape)

我遇到了另一个问题:
ValueError:不明确的维度:tf.Tensor(128,shape=(),dtype=int32)
b*c
的行中,即
new\u shape=tf.TensorShape([1,h,w,b*c])