首页 > 解决方案 > 如何从张量流 2D 张量生成 2D 张量,仅在轴 = 1(其中 n = 1,2,3 .....)的 (16n+1) 索引处获取元素

问题描述

def my_loss_fn(y_true, y_pred):
     squared_difference = tf.math.abs(y_true - y_pred)
     squared_difference=tf.math.reduce_sum(squared_difference,axis=-1)
     return tf.reduce_mean(squared_difference, axis=-1)

def create_model():
     pretrained_model = tf.keras.applications.MobileNetV2(input_shape=(256,256, 3),include_top=False,weights='imagenet',pooling='max')
     pretrained_model.trainable = False
     for layer in pretrained_model.layers[len(pretrained_model.layers)-5:]:
         layer.trainable = True
     inputs = pretrained_model.input
     x=tf.keras.layers.Flatten()(pretrained_model.output)
     outputs=tf.keras.layers.Dense(8192, activation='relu')(x)
     model = tf.keras.Model(inputs=inputs, outputs=outputs)
     model.compile(optimizer='adam',loss=my_loss_fn,metrics=['accuracy'])
     return model

输出张量的形状为 (64,8192),其中 64 是 batch_size。我需要检查索引 16n 的位置是否为 0,如果不为零,则计算位置 (16n+1,16n+2,16n+3 ...... ) 然后对所有 64 个错误求和并取平均值

标签: pythontensorflowmachine-learningkerasdeep-learning

解决方案


推荐阅读