У меня есть Neural Network Int TF2, и для этого я хочу сделать свою собственную метрику c. В моей функции я перебрасываю каждое значение тензора и могу вычислить новое значение в output_list. Это я буду складывать как мой новый y_pred и добавлю его в mean_absolute_error. Компиляция в порядке, но в первой итерации я получаю ошибку в заголовке. Что я делаю не так?
@tf.function
def custom_metric_mae( y_true , y_pred ):
output_list=tf.TensorArray(dtype=tf.float32, size=tf.shape(y_pred))
for i in range(223):
dphi = abs(y_true[i][0]-y_pred[i][0])
if(dphi > 0.5):
output_list.write(i,1 - dphi)
else:
output_list.write(i,dphi)
y_PredChanged = output_list.stack()
return tf.metrics.mean_absolute_error(y_true , y_PredChanged)
Моя модель:
model = keras.Sequential([
keras.layers.Flatten(input_shape=(32,32)),
keras.layers.Dense(64,activation="relu"),
keras.layers.Dense(32,activation="relu"),
keras.layers.Dense(16,activation="relu"),
keras.layers.Dense(1, activation='linear')
])
model.compile(optimizer="adam",loss = "mean_absolute_error",metrics=[custom_metric_mae])