Я новичок в Tensorflow и хочу построить модель с инициализатором веса. Я хочу инициализировать веса с random int32 . Я определил функцию для генерации случайных чисел как инициализатор весов. Сама функция в порядке. Но когда я хочу использовать функцию в одном слое в качестве kernel_initializer
, я сталкиваюсь с этой ошибкой:
Ошибка типа: невозможно преобразовать 0,0 в EagerTensor типа d32 int32
Мой код ниже:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPooling2D, AveragePooling2D, Softmax
import tensorflow.keras.backend as K
model = Sequential()
model.add(Conv2D(6,kernel_size=5,activation='relu',input_shape=(32,32,1),name='Conv1'))
def my_init(shape, dtype=None):
return K.random_normal(shape, dtype=tf.int32)
model.add(Dense(64, kernel_initializer=my_init))
Я также попробовал другую функцию, которую я определил np.array
типы данных. Он не выдает ошибку, но когда я попытался увидеть вес слоев, он показал, что типы весов: float32 , а не int32 . Моя проблема в том, чтобы получить int32 типы данных для весов.
Любая помощь будет оценена.