Как увеличить входы каждого слоя в нейронной сети в определенном масштабе? - PullRequest
0 голосов
/ 05 ноября 2019

Как увеличить входы каждого слоя в нейронной сети в определенном масштабе?

Я работаю в нейронной сети с Keras и TensorFlow.

Я бы хотел реализовать некоторые функции в нейронной сети. Во время обучения я хочу удалить определенный диапазон ввода для каждого слоя. Например,

Допустим, вход первого слоя находится в диапазоне [-2 2]. Я хотел бы убедиться, что нет ввода в [0 0,5]. Поэтому я хотел бы добавить 0,5 ко всем входам, значение которых равно [0 0,5].

Как я мог это сделать? во время тренировочного процесса.

Большое спасибо

1 Ответ

0 голосов
/ 06 ноября 2019

Вы можете попробовать лямбда-функции. Пример реализации ниже. Надеюсь, это поможет.

import tensorflow as tf
from tensorflow import keras

from tensorflow.keras import layers
import numpy as np

def myClippingFunction(x):
    y = tf.math.logical_and(tf.math.greater_equal(x, [[0]]), tf.math.less_equal(x, [[0.5]]) )
    z = tf.where(y,x+0.5,x)
    return z

#create simple model
inputA = layers.Input((1,)) 
x = layers.Lambda(myClippingFunction)(inputA)
myModel = keras.Model(inputs=inputA, outputs=x)


x_data = np.array([[-0.2],[0.6]])
myModel.predict(x_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...