首页 > 解决方案 > restricting output values in keras layer

问题描述

i have written this NN

decoder_output = Conv2D(64, (3,3), activation='relu', padding='same')(encoder_input)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Conv2D(32, (3,3), activation='relu', padding='same')(decoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Conv2D(16, (3,3), activation='relu', padding='same')(decoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Conv2D(2, (3, 3), activation='sigmoid', padding='same')(decoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Flatten()(decoder_output)
decoder_output = Dense(height*width, activation='relu')(decoder_output)
model = Model(inputs=encoder_input, outputs=decoder_output)
model.compile(optimizer='adam', loss='mse')
clean_images = model.fit(train_images, y_train_red, epochs=10,validation_data=(validation_images,y_validation_red))


which suppose to return an image values. is there a way to restrict the return values to be int and/or maximize the ouput layer value to 255?

标签: pythontensorflowkerasrestriction

解决方案


应该发生的是,您的模型将学会不输出高于 255 和低于 0 的值。但是,在它这样做的情况下,您可以在预测时将值裁剪为 0 到 255 之间。关于整数输出,我不知道有一种方法。但是,您可以在预测时对输出进行四舍五入。


推荐阅读