Python 什么';两者的区别是什么?没有张量形状的

Python 什么';两者的区别是什么?没有张量形状的,python,tensorflow,keras,tensorflow2.0,Python,Tensorflow,Keras,Tensorflow2.0,这是形状(?)的情况 结果是effnet\u层形状(?,2,2,1280) 这就是形状的情况(无) conv后结果:(无,6,6,32) 展平后:(无,1152) 两个输入形状都与(40,40,1)相同这没有意义。在Keras中,应返回一个Keras模型,该模型没有.shape属性。你能澄清一下你把你的efficientnetb0模型称为哪里吗?在第二个例子中,ShapeNone就是批量大小。在Keras中,将batch_size设置为None意味着它可以接受python对象使用的任何值None

这是形状(?)的情况

结果是effnet\u层形状(?,2,2,1280)

这就是形状的情况(无)

conv后结果:(无,6,6,32) 展平后:(无,1152)


两个输入形状都与(40,40,1)相同

这没有意义。在Keras中,应返回一个Keras模型,该模型没有
.shape
属性。你能澄清一下你把你的efficientnetb0模型称为哪里吗?在第二个例子中,Shape
None
就是批量大小。在Keras中,将
batch_size
设置为
None
意味着它可以接受python对象使用的任何值
None
,与TF图断开连接。这意味着
None
shapes不能用于图形模式执行(在某些情况下,可以在急切模式下提供空渐变)<代码>?表示tensorflow占位符,该占位符的图形是以未知维度构建的
不能用于pythonic计算,大部分将被分离并隐式转换为
None
。感谢您的回答。顺便说一下,我使用了这个包'efficientnet 1.1.1',并使用代码'import efficientnet.keras as effnet'来导入。
effnet_layers =  effnet.EfficientNetB0(input_shape=(row,col, sat_channel), weights=None, include_top=False)(sat_inputs)
print("effnet_layers shape",effnet_layers.shape)
for i in range(sat_in_len_max*sat_in_dim):
    sat_inputs = Input(shape=(row,col, sat_channel))
    sat_layer = Conv2D(c1, (5, 5))(sat_inputs)
    sat_layer = ReLU()(sat_layer)
    sat_layer = MaxPool2D(pool_size=(2,2))(sat_layer)
    sat_layer = Conv2D(c2, (7, 7))(sat_layer)
    sat_layer = ReLU()(sat_layer)
    sat_layer = MaxPool2D(pool_size=(2,2))(sat_layer)
    print("after conv:", sat_layer.shape)
    sat_layer = Flatten()(sat_layer)
    print("after flatten:", sat_layer.shape)
    sat_layer = Reshape((1, sat_layer.shape[1]))(sat_layer)