Spaces:
Runtime error
Runtime error
| import keras | |
| import tensorflow as tf | |
| from keras import layers | |
| from .average import Upscaler | |
| class CNNUpscaler(keras.Model): | |
| """Convolutional Neural Network for image upscaling. It's just a simple model: upscales first, then applies convolution corrections.""" | |
| def __init__(self, up_ratio: float, name="cnnupscaler", **kwargs): | |
| super().__init__(name=name, **kwargs) | |
| self.up_ratio = up_ratio | |
| self.upscaler = Upscaler(up_ratio) | |
| self.conv1 = layers.Conv2D(64, (3, 3), activation="relu", padding="same") | |
| self.conv2 = layers.Conv2D(32, (3, 3), activation="relu", padding="same") | |
| self.conv3 = layers.Conv2D(3, (3, 3), padding="same") | |
| def call(self, inputs): | |
| # Upscale first | |
| x_up = self.upscaler(inputs) | |
| # Calculate the correction factor | |
| x = self.conv1(x_up) | |
| x = self.conv2(x) | |
| correction = self.conv3(x) | |
| return x_up + correction | |
| def get_config(self): | |
| config = super().get_config() | |
| config.update({"up_ratio": self.up_ratio}) | |
| return config |