【发布时间】:2021-08-06 18:58:44
【问题描述】:
我的主要输入特征是 60x256x256 numpy 数组,用于生成 60x256x256 二进制掩码(也以 numpy 数组的形式)。二进制掩码用作标签,但我不知道如何从我的神经网络生成 3D numpy 数组或张量输出。这是我当前的代码:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(32, kernel_size=(5, 5), strides=(1, 1),
activation='relu',
input_shape=(60, 256, 256)))
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(tf.keras.layers.Conv2D(64, (5, 5), activation='relu'))
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(1000, activation='relu'))
model.add(tf.keras.layers.Dense(256, activation='softmax'))
model.compile(
optimizer=tf.keras.optimizers.Adam(0.001),
loss=tf.keras.losses.CosineSimilarity(),
metrics=[tf.keras.metrics.CosineSimilarity()],
)
model.fit(
train,
epochs=6,
validation_data=ds_valid,
)
简而言之,我希望最后一层的输出与输入层匹配,以便它可以与 CosineSimilarity 损失函数一起使用。除了这种基于 CNN 的方法之外的任何建议也将非常有帮助,因为 CNN 似乎主要用于分类。
【问题讨论】:
标签: python tensorflow keras deep-learning neural-network