Комплексная инициализация веса в кератах - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть комплексные (входные, выходные) данные, и я хотел обучить полностью сложную сеть, используя керасы в TensorFlow 2.0. Я написал функцию потерь, которая возвращает реальную стоимость, и настроил ее в керас. Точно так же я добавил несколько скрытых функций активации в скрытый слой, и модель начала успешно учиться. Однако, когда я попытался настроить сложный вес и инициализацию смещения в подобной процедуре, это выдает ошибку. Для ясности вот что я пытался сделать.

def initialize_weight(shape, dtype= None):
    real = K.random_uniform(shape, dtype = dtype)
    imag = K.random_normal(shape, dtype=dtype)
    return  tf.complex(real,imag)
model_new = Sequential()
model_new.add(Dense(20, input_dim=x_train.shape[0],  kernel_initializer = initialize_weight,activation = myrelu))
model_new.add(Dense(10,  kernel_initializer = intilialize_weight, activation = myrelu)) 
model_new.add(Dense(y_train.shape[0], kernel_initializer = initialize_weight, activation = myrelu)) 
model_new.compile(loss= mse_error, optimizer='adam', metric = 'accuracy')
model_new.summary()

Сообщение об ошибке: * ValueError: Запрошено преобразование Tensor dtype float32 для Tensor с dtype complex64:

Обратите внимание, что активация myrelu и функция потерь mse_error являются пользовательскими функциями. Ошибка только из-за kernel_initializer. Есть ли способ настроить комплексный вес в кератах, пожалуйста? Я действительно ценю любую поддержку в этом. Спасибо !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...