#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]])>