这张图片的模型正是我所需要的.

enter image description here

但当我使用netron.app获取模型 struct 时,我发现我的代码似乎是错误的.

似乎我把两个图像组合成了一个六通道,并对其进行了训练.

enter image description here

conv_base = tf.keras.applications.InceptionResNetV2(weights=None,include_top=False , 
input_broc = tf.keras.Input(shape=(299, 299, 3))
input_temp = tf.keras.Input(shape=(299, 299, 3))

x_broc = conv_base(input_broc)
x_temp = conv_base(input_temp)
x_broc = tf.keras.layers.GlobalAveragePooling2D()(x_broc)
x_temp = tf.keras.layers.GlobalAveragePooling2D()(x_temp)
x = tf.keras.layers.Concatenate()([x_broc, x_temp])
x = tf.keras.layers.Dense(7, activation='softmax')(x)

model = tf.keras.Model(inputs=[input_broc, input_temp], outputs=x)

Model: "model_1"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_5 (InputLayer)            [(None, 299, 299, 3) 0                                            
__________________________________________________________________________________________________
input_6 (InputLayer)            [(None, 299, 299, 3) 0                                            
__________________________________________________________________________________________________
inception_resnet_v2 (Functional (None, 8, 8, 1536)   54336736    input_5[0][0]                    
                                                                 input_6[0][0]                    
__________________________________________________________________________________________________
global_average_pooling2d_2 (Glo (None, 1536)         0           inception_resnet_v2[0][0]        
__________________________________________________________________________________________________
global_average_pooling2d_3 (Glo (None, 1536)         0           inception_resnet_v2[1][0]        
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 3072)         0           global_average_pooling2d_2[0][0] 
                                                                 global_average_pooling2d_3[0][0] 
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 7)            21511       concatenate_1[0][0]              
==================================================================================================

自定义数据生成器返回它

return [X1, X2], y

推荐答案

它没有以通道方式连接两个图像,但两个输入都通过相同的Inception模型,然后它们的输出被连接起来.您需要的是Inception的两个不同实例.

就像这样:

import tensorflow as tf

backbone1 = tf.keras.applications.InceptionResNetV2(
    weights=None, include_top=False)
backbone1._name = 'backbone1'
backbone2 = tf.keras.applications.InceptionResNetV2(
    weights=None, include_top=False
)
backbone2._name = 'backbone2'

input_broc = tf.keras.Input(shape=(299, 299, 3))
input_temp = tf.keras.Input(shape=(299, 299, 3))

x_broc = backbone1(input_broc)
x_temp = backbone2(input_temp)
x_broc = tf.keras.layers.GlobalAveragePooling2D()(x_broc)
x_temp = tf.keras.layers.GlobalAveragePooling2D()(x_temp)
x = tf.keras.layers.Concatenate()([x_broc, x_temp])
x = tf.keras.layers.Dense(7, activation='softmax')(x)

model = tf.keras.Model(inputs=[input_broc, input_temp], outputs=x)

Python相关问答推荐

Matplotlib轮廓线值似乎不对劲

请从Python访问kivy子部件的功能需要帮助

如何调整spaCy token 化器,以便在德国模型中将数字拆分为行末端的点

更改matplotlib彩色条的字体并勾选标签?

使用miniconda创建环境的问题

如何从具有不同len的列表字典中创建摘要表?

如何获取TFIDF Transformer中的值?

Julia CSV for Python中的等效性Pandas index_col参数

通过pandas向每个非空单元格添加子字符串

当递归函数的返回值未绑定到变量时,非局部变量不更新:

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

* 动态地 * 修饰Python中的递归函数

在输入行运行时停止代码

Python—转换日期:价目表到新行

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

使用Openpyxl从Excel中的折线图更改图表样式

如何合并具有相同元素的 torch 矩阵的行?

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

使用np.fft.fft2和cv2.dft重现相位谱.为什么结果并不相似呢?