小编Mar*_*mba的帖子

即使尺寸不匹配,自定义损失函数也能工作


我正在使用 Keras/TF 和以下模型:

conv = Conv2D(4, 3, activation = None, use_bias=True)(inputs)   
conv = Conv2D(2, 1, activation = None, use_bias=True)(conv)
model = Model(input = inputs, output = conv)
model.compile(optimizer=Adam(lr=1e-4), loss=keras.losses.mean_absolute_error)
Run Code Online (Sandbox Code Playgroud)

在 model.fit 中,我收到一条错误消息:

ValueError:检查目标时出错:预期 conv2d_2 的形状为 (300, 320, 2),但得到的数组形状为 (300, 320, 1)

这是符合预期的,因为目标是单通道图像,而模型的最后一层有 2 个通道。

我不明白的是为什么当我使用自定义损失函数时:

def my_loss2(y_true, y_pred):
    return keras.losses.mean_absolute_error(y_true, y_pred)
Run Code Online (Sandbox Code Playgroud)

并编译模型:

model.compile(optimizer = Adam(lr=1e-4), loss=my_loss2)
Run Code Online (Sandbox Code Playgroud)

确实有效(或者至少没有给出错误)。是否有任何类型的自动转换/截断正在进行?

我正在使用 TF (CPU) 1.12.0 和 Keras 2.2.2

此致,埃拉德

keras tensorflow loss-function

5
推荐指数
1
解决办法
1762
查看次数

如何创建基于异步配置的 Nestjs 模块?

我正在尝试创建一个数据库模块,如下所示:

const dbProvider = {
  provide: 'DB',
  useFactory: async (configService:ConfigService) => {
    const dbUrl = configService.get<string>('DB_URL')
    return Knex({
      client: 'pg',
      connection: dbUrl
    })
  },
  inject: [ConfigService]
}

@Module({
  providers: [ConfigService, dbProvider],
  exports: [dbProvider],
})
export class DbModule {}
Run Code Online (Sandbox Code Playgroud)

这是 AppModule 定义:

@Module({
  controllers: [AppController],
  providers: [Logger, AppService, {
    provide: ConfigService,
    useFactory: getConfigFactory(['DB_URL']),
  }],
  exports: [ConfigService]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

和:

export function getConfigFactory(paramsToLoad: string[]) {
    return async () => {await getConfigService(paramsToLoad)}
}
export async function getConfigService(paramsToLoad: string[]) {

    const …
Run Code Online (Sandbox Code Playgroud)

asynchronous config nestjs

0
推荐指数
1
解决办法
3334
查看次数

标签 统计

asynchronous ×1

config ×1

keras ×1

loss-function ×1

nestjs ×1

tensorflow ×1