Я пытаюсь скопировать модель в Керасе из сообщения в блоге , написанного на Лазанье.Набор данных состоит из изображений сетчатки (2 изображения на пациента, поскольку у каждого пациента есть 2 глаза), которые должны быть классифицированы по 5 классам.
Пока что я подаю каждое изображение индивидуально для моей модели, но в какой-то моментЯ хочу объединить изображения, принадлежащие одному пациенту, и это именно то, что делает запись в блоге.Это могло бы быть лучше объяснено самой записью в блоге:
Одна вещь, которую я попытался, состояла в том, чтобы объединить выходные данные первого сверточного или пулирующего слоя для каждого из двух глаз (или, возможно, даже входного слоя),Тогда теоретически сверточный слой мог бы обнаруживать сходные паттерны для левого и правого глаза.
Проблема в том, что я абсолютно не представляю, как этого добиться в Керасе.
Что ядо сих пор пытался (пытается повторить этот код лазаньи ):
model = Sequential([
Conv2D(filters=32, kernel_size=(7, 7), strides=(2,2),
kernel_initializer=Orthogonal(1.0), bias_initializer=Constant(0.1),
data_format='channels_last',
input_shape=(512, 512, 3)), # Input layer
LeakyReLU(leakiness),
MaxPool2D(pool_size=(3,3), strides=(2,2)),
...
... # A number of repetitions of Conv2D, LeakyRelU, MaxPool2d
...
# Interesting part:
# (at this point, I expect the input to have a batch_size of 64 and 256 channels)
Reshape(target_shape=(32, -1)), # Batch_size // 2 = 32, merge eyes
...])
Как вы можете видеть, я пытаюсь объединить глаза каждого пациента в слое Reshape путем разделения batch_sizeв 2 раза. Я полагаю, что это то, что делает оригинальный код в Lasagne с этим кодом (ссылка на строку 295) :
# Combine representations of both eyes.
layers.append(
nn.layers.ReshapeLayer(layers[-1], shape=(batch_size // 2, -1)))
Я не уверен, что он вообщеимеет смысл делать это в Keras, поскольку в reshape doc кажется, что мы не должны вводить размер пакета.
Я совершенно новичок в Keras и меня очень смущает эта идеяслияния двух изображений одного размера, следовательно, вдвое размер пакета.
Может кто-нибудь объяснить, как этого добиться?