我是新手tensorflow
,试图构建一个类似于本指南中所做的暹罗 CNN 。
我的模型是使用基本模型构建的,然后使用通过同一网络的两张不同图片进行两次输入。
这是构建网络的代码:
class BaseModel(Model):
def __init__(self, base_network):
super(BaseModel, self).__init__()
self.network = base_network
def call(self, inputs):
print(inputs)
return self.network(inputs)
def get_base_model():
inputs = tf.keras.Input(shape=INPUT)
conv2d_1 = layers.Conv2D(name='seq_1', filters=64,
kernel_size=20,
activation='relu')(inputs)
maxpool_1 = layers.MaxPooling2D(pool_size=(2, 2))(conv2d_1)
conv2d_2 = layers.Conv2D(filters=128,
kernel_size=20,
activation='relu')(maxpool_1)
maxpool_2 = layers.MaxPooling2D(pool_size=(2, 2))(conv2d_2)
conv2d_3 = layers.Conv2D(filters=128,
kernel_size=20,
activation='relu')(maxpool_2)
maxpool_3 = layers.MaxPooling2D(pool_size=(2, 2))(conv2d_3)
conv2d_4 = layers.Conv2D(filters=256,
kernel_size=10,
activation='relu')(maxpool_3)
flatten_1 = layers.Flatten()(conv2d_4)
outputs = layers.Dense(units=4096,
activation='sigmoid')(flatten_1)
model = Model(inputs=inputs, outputs=outputs)
return model
Run Code Online (Sandbox Code Playgroud)
然后,我使用之前的方法构建暹罗网络:
INPUT = (250, …
Run Code Online (Sandbox Code Playgroud)