我正在使用 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
此致,埃拉德
我正在尝试创建一个数据库模块,如下所示:
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)