Формат массива np и сеть U- net - PullRequest
0 голосов
/ 16 января 2020

Я написал свой первый скрипт Keras / python, и он работает довольно хорошо, но у меня возникает странная проблема: предполагается, что мой входной слой имеет тип uint8:

X_train = np.zeros((len(file_list), IMG_HEIGHT, IMG_WIDTH, 3), dtype=np.uint8)
sys.stdout.flush()

for n, id_ in tqdm(enumerate(file_list), total=len(file_list)):
    path_images = TRAIN_PATH + '/images/' + file_list[n]
    img = imread(path_images)[:,:,:3]
    img = exposure.rescale_intensity(img) #resize(img, (IMG_HEIGHT, IMG_WIDTH), mode='constant', preserve_range=True)
    X_train[n] = img

, но когда я хочу протестируйте мою модель, она спросит меня о массиве типа float16 или float32

Таким же образом, я ожидаю, что результатом будет массив uint8, но я получу массив float32

Y_train = np.zeros((len(file_list), IMG_HEIGHT, IMG_WIDTH), dtype=np.uint8)
mask = np.zeros((IMG_HEIGHT, IMG_WIDTH, 1), dtype=np.uint8

for n, id_ in tqdm(enumerate(file_list), total=len(file_list)):

    path_masks = TRAIN_PATH + '/masks/' + file_list[n]
    mask3 = imread(path_masks)[:,:,:3]
    mask2 = mask3[:, :, 1]
    mask = exposure.rescale_intensity(mask2)
    Y_train[n] = mask

последние слои моей модели:

u14 = Conv2DTranspose(32, (2, 2), strides=(2, 2), padding='same') (c13)
u14 = concatenate([u14, c1], axis=3)
c14 = Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_normal', padding='same') (u14)
c14 = Dropout(0.1) (c14)
c14 = Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_normal', padding='same') (c14)

c15 = Conv2D(8, (3, 3), activation='relu', kernel_initializer='he_normal', padding='same') (c14)


outputs = Conv2D(1, (3, 3), activation='relu',kernel_initializer='he_normal', padding='same') (c15)

Это не большая проблема, но я должен изменить Тип моих массивов:

img2treat = np.expand_dims(img_extracted, axis=0).astype('float16')
pred = model.predict(img2treat)[0,:,:,:]

, и это, вероятно, может изменить / изменить некоторые результаты.

Где я go не так ???

PS: Я не ученый, а просто "компьютерный любитель патологов", так что прости меня, если мой вопрос глуп: - )

...