Модель U-Net: неправильное количество входов и выходов, обнаружена ошибка в коде класса/архитектуреPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель U-Net: неправильное количество входов и выходов, обнаружена ошибка в коде класса/архитектуре

Сообщение Anonymous »

Я пытаюсь заставить работать собственную версию модели EelSpecNet, основанную на архитектуре Unet. Исходную большую версию можно найти здесь:
текст
Модель используется для восстановления оптического спектра по данным мультиспектрального датчика, тогда как каналы датчиков имеют широкое спектральное распределение и не плотные полосы пропускания.
Исходная модель слишком велика для моих данных, я пытаюсь уменьшить ее до размера ввода/вывода 96.
Когда я запускаю модель, она дает у меня ошибка, что "Размеры должны быть равными, но имеют размеры 96 и 48 дюймов.
Я новичок в этой модели и был бы очень признателен за подсказку о том, что изменить.
Вот код:

Код: Выделить всё

import tensorflow as tf

class EELSpecNetModel_CNN_96ST(tf.keras.Model):

def __init__(self):
super(EELSpecNetModel_CNN_96ST, self).__init__()

kerl_size = 4

self.conv_96x1 = tf.keras.layers.Conv2D(1, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.conv_48x2 = tf.keras.layers.Conv2D(2, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.conv_24x4 = tf.keras.layers.Conv2D(4, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.conv_12x8 = tf.keras.layers.Conv2D(8, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.conv_6x16 = tf.keras.layers.Conv2D(16, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.conv_3x32 = tf.keras.layers.Conv2D(32, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')

# =======================================================================

self.deconv_6x16  = tf.keras.layers.Conv2DTranspose(16, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.deconv_12x8  = tf.keras.layers.Conv2DTranspose(8, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.deconv_24x4  = tf.keras.layers.Conv2DTranspose(4, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.deconv_48x2  = tf.keras.layers.Conv2DTranspose(2, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')
self.deconv_96x1  = tf.keras.layers.Conv2DTranspose(1, (1, kerl_size), strides=(1, 2), activation='relu', padding='same', kernel_initializer='random_uniform')

self.concat = tf.keras.layers.concatenate
self.relu = tf.keras.activations.relu

def call(self, inputs):
enc_96x1 = self.conv_96x1(inputs)
enc_48x2 = self.conv_48x2(enc_96x1)
enc_24x4 = self.conv_24x4(enc_48x2)
enc_12x8 = self.conv_12x8(enc_24x4)
enc_6x16 = self.conv_6x16(enc_12x8)
enc_3x32 = self.conv_3x32(enc_6x16)
# =======================================================================
dcd_6x16 = self.deconv_6x16(enc_3x32)
dcd_6x16x2 = self.concat([dcd_6x16, enc_6x16], axis=-1)
dcd_12x8 = self.deconv_12x8(dcd_6x16x2)
dcd_12x8x2 = self.concat([dcd_12x8, enc_12x8], axis=-1)
dcd_24x4 = self.deconv_24x4(dcd_12x8x2)
dcd_24x4x2 = self.concat([dcd_24x4, enc_24x4], axis=-1)
dcd_48x2 = self.deconv_48x2(dcd_24x4x2)
dcd_48x2x2 = self.concat([dcd_48x2, enc_48x2], axis=-1)
dcd_96x1 = self.deconv_96x1(dcd_48x2x2)

return (dcd_96x1)
Я пытался получить помощь по Chatgpt, но он не совсем правильно понимает сложность. Я также пробовал другие версии с 16 и 64 входами, но, похоже, у меня возникли проблемы с пониманием архитектуры.

Подробнее здесь: https://stackoverflow.com/questions/793 ... class-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»