Как обрабатывать отрицательные значения перед CNN

#python #tensorflow #keras #conv-neural-network #image-preprocessing

#python #тензорный поток #keras #conv-нейронная сеть #предварительная обработка изображений

Вопрос:

Я собираюсь сгенерировать свои обучающие и тестовые наборы данных из изображения, представляющего значения объема. Это изображение содержит диапазон от -25 до 75. Я хочу игнорировать отрицательные значения на этапе предварительной обработки. Может кто-нибудь сказать мне, как я должен обрабатывать отрицательные значения? Есть ли какой-либо способ перевести отрицательные значения в ноль или без данных без изменения положительных значений пикселей?

Ответ №1:

Я не могу посоветовать, следует ли это делать, но если вы хотите превратить все свои отрицательные значения в 0, вы можете использовать tf.maximum :

 import tensorflow as tf

x = tf.random.uniform((10, 10), -25, 75, dtype=tf.int32)
 
 <tf.Tensor: shape=(10, 10), dtype=int32, numpy=
array([[ 57, -11,  48,  43,  29,  21,  15,  42,  -9,  12],
       [ 18,  67,  -9, -21,   6,  27,  50,  -1,  72,  51],
       [  2,  22,  70,  49,  50, -10,  67,   4,  59, -10],
       [-13,  39,  60, -20, -15, -17,  51,  73, -23,  21],
       [ 28,   8,  48,  66, -13,  -3,  44,  35,  23,  45],
       [-24,  30,  16,  25,  34, -13,  24,  49,  50, -10],
       [-24,  25,  -1,  35,  67,  45,  27,   6,  65,   4],
       [ 20,  -5,  41, -14, -10,  40,  21,  69,  13,  14],
       [ 53,  -2,   6,   0, -13,  28,  11, -11,  29,  17],
       [ 15,  40,  61,  56,   3,  56,  12, -12,  19,   0]])>
 

Вот волшебство:

 tf.maximum(x, 0)
 
 <tf.Tensor: shape=(10, 10), dtype=int32, numpy=
array([[57,  0, 48, 43, 29, 21, 15, 42,  0, 12],
       [18, 67,  0,  0,  6, 27, 50,  0, 72, 51],
       [ 2, 22, 70, 49, 50,  0, 67,  4, 59,  0],
       [ 0, 39, 60,  0,  0,  0, 51, 73,  0, 21],
       [28,  8, 48, 66,  0,  0, 44, 35, 23, 45],
       [ 0, 30, 16, 25, 34,  0, 24, 49, 50,  0],
       [ 0, 25,  0, 35, 67, 45, 27,  6, 65,  4],
       [20,  0, 41,  0,  0, 40, 21, 69, 13, 14],
       [53,  0,  6,  0,  0, 28, 11,  0, 29, 17],
       [15, 40, 61, 56,  3, 56, 12,  0, 19,  0]])>