diff --git a/bin/lang/Chinese_Simplified.json b/bin/lang/Chinese_Simplified.json index c3537ae..4f484e2 100644 --- a/bin/lang/Chinese_Simplified.json +++ b/bin/lang/Chinese_Simplified.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"2D 插图 — RGB 模型", "IDC_RADIO_MODEL_PHOTO":"照片或动画 — Photo 模型", "IDC_RADIO_MODEL_Y":"2D 插图 — Y 模型", +"IDC_RADIO_MODEL_UpResNet10":"2D 插图 — UpResNet10", "IDC_CHECK_TTA":"TTA 模式", "IDC_STATIC_PROCESS_SPEED_SETTING":"处理速度设置", "IDC_STATIC_PROCESSOR":"处理器", diff --git a/bin/lang/Chinese_Traditional.json b/bin/lang/Chinese_Traditional.json index 3c51fe0..98cb838 100644 --- a/bin/lang/Chinese_Traditional.json +++ b/bin/lang/Chinese_Traditional.json @@ -30,6 +30,7 @@ "IDC_RADIO_MODEL_RGB":"二次元插圖(RGB 模式)", "IDC_RADIO_MODEL_PHOTO":"照片和動畫(Photo 模式)", "IDC_RADIO_MODEL_Y":"二次元插圖(Y 模式)", +"IDC_RADIO_MODEL_UpResNet10":"二次元插圖(UpResNet10)", "IDC_CHECK_TTA":"使用 TTA 模式", "IDC_STATIC_PROCESS_SPEED_SETTING":"處理速度設定", "IDC_STATIC_PROCESSOR":"使用處理器", diff --git a/bin/lang/english.json b/bin/lang/english.json index 5c8d713..fdef4c4 100644 --- a/bin/lang/english.json +++ b/bin/lang/english.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)", "IDC_RADIO_MODEL_PHOTO":"Photography, Anime", "IDC_RADIO_MODEL_Y":"2-D illust (Y Model)", +"IDC_RADIO_MODEL_UpResNet10":"2-D illust (UpResNet10)", "IDC_CHECK_TTA":"Use TTA Mode", "IDC_STATIC_PROCESS_SPEED_SETTING":"Processing Speed Settings", "IDC_STATIC_PROCESSOR":"Use Processor", diff --git a/bin/lang/french.json b/bin/lang/french.json index c350740..207b008 100644 --- a/bin/lang/french.json +++ b/bin/lang/french.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"Illustration 2D (modèle RGB)", "IDC_RADIO_MODEL_PHOTO":"Photo & animé (modèle Photo)", "IDC_RADIO_MODEL_Y":"Illustration 2D (modèle Y)", +"IDC_RADIO_MODEL_UpResNet10":"Illustration 2D (UpResNet10)", "IDC_CHECK_TTA":"Utiliser mode TTA", "IDC_STATIC_PROCESS_SPEED_SETTING":"Vitesse de traitement", "IDC_STATIC_PROCESSOR":"Utiliser le processeur", diff --git a/bin/lang/japanese.json b/bin/lang/japanese.json index 7010fa4..b165bb7 100644 --- a/bin/lang/japanese.json +++ b/bin/lang/japanese.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"2次元イラスト (RGBモデル)", "IDC_RADIO_MODEL_PHOTO":"写真・アニメ (Photoモデル)", "IDC_RADIO_MODEL_Y":"2次元イラスト (Yモデル)", +"IDC_RADIO_MODEL_UpResNet10":"2次元イラスト (UpResNet10)", "IDC_CHECK_TTA":"TTAモードを使う", "IDC_STATIC_PROCESS_SPEED_SETTING":"処理速度設定", "IDC_STATIC_PROCESSOR":"使用プロセッサー", diff --git a/bin/lang/korean.json b/bin/lang/korean.json index ae58a24..718ef20 100644 --- a/bin/lang/korean.json +++ b/bin/lang/korean.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"2D 일러스트 (RGB 모델)", "IDC_RADIO_MODEL_PHOTO":"사진/애니메이션 (Photo 모델)", "IDC_RADIO_MODEL_Y":"2D 일러스트 (Y 모델)", +"IDC_RADIO_MODEL_UpResNet10":"2D 일러스트 (UpResNet10)", "IDC_CHECK_TTA":"TTA 모드 사용", "IDC_STATIC_PROCESS_SPEED_SETTING":"처리 속도 설정", "IDC_STATIC_PROCESSOR":"사용할 처리 방식", diff --git a/bin/lang/russian.json b/bin/lang/russian.json index a1888e6..3e967b0 100644 --- a/bin/lang/russian.json +++ b/bin/lang/russian.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"2D изображ. (Профиль RGB)", "IDC_RADIO_MODEL_PHOTO":"Фотография, Аниме", "IDC_RADIO_MODEL_Y":"2D изображ. (Профиль Y)", +"IDC_RADIO_MODEL_UpResNet10":"2D изображ. (UpResNet10)", "IDC_CHECK_TTA":"В режиме TTA ", "IDC_STATIC_PROCESS_SPEED_SETTING":"Скорость обработки", "IDC_STATIC_PROCESSOR":"Устройство обработки", diff --git a/bin/lang/spanish.json b/bin/lang/spanish.json index bdd85a7..6939eca 100644 --- a/bin/lang/spanish.json +++ b/bin/lang/spanish.json @@ -31,6 +31,7 @@ "IDC_RADIO_MODEL_RGB":"Ilustración 2-D (Modelo RGB)", "IDC_RADIO_MODEL_PHOTO":"Fotografía, Anime", "IDC_RADIO_MODEL_Y":"Ilustración 2-D (Modelo Y)", +"IDC_RADIO_MODEL_UpResNet10":"Ilustración 2-D (UpResNet10)", "IDC_CHECK_TTA":"Utilizar modo TTA", "IDC_STATIC_PROCESS_SPEED_SETTING":"Procesar configuración de velocidad", "IDC_STATIC_PROCESSOR":"Utilizar el procesador", diff --git a/bin/lang/turkish.json b/bin/lang/turkish.json index 3326a2d..c0c8812 100644 --- a/bin/lang/turkish.json +++ b/bin/lang/turkish.json @@ -30,6 +30,7 @@ "IDC_RADIO_MODEL_RGB":"2-B çizim (RGB Modeli)", "IDC_RADIO_MODEL_PHOTO":"Fotoğrafçılık veya Anime", "IDC_RADIO_MODEL_Y":"2-B çizim (Y Modeli)", +"IDC_RADIO_MODEL_UpResNet10":"2-B çizim (UpResNet10)", "IDC_CHECK_TTA":"TTA Modu Kullan", "IDC_STATIC_PROCESS_SPEED_SETTING":"İşleme Hızı Ayarları", "IDC_STATIC_PROCESSOR":"", diff --git a/bin/models/upresnet10/info.json b/bin/models/upresnet10/info.json new file mode 100644 index 0000000..024fb70 --- /dev/null +++ b/bin/models/upresnet10/info.json @@ -0,0 +1,3 @@ +{"name":"UpResNet10","arch_name":"upresnet10","has_noise_scale":true,"channels":3, +"scale_factor":2,"offset":26 +} \ No newline at end of file diff --git a/bin/models/upresnet10/noise0_scale2.0x_model.json.caffemodel b/bin/models/upresnet10/noise0_scale2.0x_model.json.caffemodel new file mode 100644 index 0000000..b9b7469 Binary files /dev/null and b/bin/models/upresnet10/noise0_scale2.0x_model.json.caffemodel differ diff --git a/bin/models/upresnet10/noise0_scale2.0x_model.prototxt b/bin/models/upresnet10/noise0_scale2.0x_model.prototxt new file mode 100644 index 0000000..c083cc7 --- /dev/null +++ b/bin/models/upresnet10/noise0_scale2.0x_model.prototxt @@ -0,0 +1,904 @@ +name: "UpResNet10_3" +layer { + name: "data" + type: "Input" + top: "input" + input_param { + shape { + dim: 1 + dim: 3 + dim: 90 + dim: 90 + } + } +} +layer { + name: "/conv_pre" + type: "Convolution" + bottom: "input" + top: "/conv_pre" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_pre_relu" + type: "ReLU" + bottom: "/conv_pre" + top: "/conv_pre_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv1" + type: "Convolution" + bottom: "/conv_pre_relu" + top: "/res1/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv1_relu" + type: "ReLU" + bottom: "/res1/conv1" + top: "/res1/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv2" + type: "Convolution" + bottom: "/res1/conv1_relu" + top: "/res1/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv2_relu" + type: "ReLU" + bottom: "/res1/conv2" + top: "/res1/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/fc1_globalavgpool" + type: "Pooling" + bottom: "/res1/conv2_relu" + top: "/res1/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res1/fc1" + type: "InnerProduct" + bottom: "/res1/fc1_globalavgpool" + top: "/res1/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc1_relu" + type: "ReLU" + bottom: "/res1/fc1" + top: "/res1/fc1_relu" +} +layer { + name: "/res1/fc2" + type: "InnerProduct" + bottom: "/res1/fc1_relu" + top: "/res1/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res1/fc2" + top: "/res1/fc2_sigmoid" +} +layer { + name: "/res1/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/res1/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res1/axpy" + type: "Axpy" + bottom: "/res1/fc2_sigmoid" + bottom: "/res1/conv2_relu" + bottom: "/res1/crop" + top: "/res1/axpy" +} +layer { + name: "/res2/conv1" + type: "Convolution" + bottom: "/res1/axpy" + top: "/res2/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv1_relu" + type: "ReLU" + bottom: "/res2/conv1" + top: "/res2/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/conv2" + type: "Convolution" + bottom: "/res2/conv1_relu" + top: "/res2/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv2_relu" + type: "ReLU" + bottom: "/res2/conv2" + top: "/res2/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/fc1_globalavgpool" + type: "Pooling" + bottom: "/res2/conv2_relu" + top: "/res2/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res2/fc1" + type: "InnerProduct" + bottom: "/res2/fc1_globalavgpool" + top: "/res2/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc1_relu" + type: "ReLU" + bottom: "/res2/fc1" + top: "/res2/fc1_relu" +} +layer { + name: "/res2/fc2" + type: "InnerProduct" + bottom: "/res2/fc1_relu" + top: "/res2/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res2/fc2" + top: "/res2/fc2_sigmoid" +} +layer { + name: "/res2/crop" + type: "CropCenter" + bottom: "/res1/axpy" + top: "/res2/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res2/axpy" + type: "Axpy" + bottom: "/res2/fc2_sigmoid" + bottom: "/res2/conv2_relu" + bottom: "/res2/crop" + top: "/res2/axpy" +} +layer { + name: "/res3/conv1" + type: "Convolution" + bottom: "/res2/axpy" + top: "/res3/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv1_relu" + type: "ReLU" + bottom: "/res3/conv1" + top: "/res3/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/conv2" + type: "Convolution" + bottom: "/res3/conv1_relu" + top: "/res3/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv2_relu" + type: "ReLU" + bottom: "/res3/conv2" + top: "/res3/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/fc1_globalavgpool" + type: "Pooling" + bottom: "/res3/conv2_relu" + top: "/res3/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res3/fc1" + type: "InnerProduct" + bottom: "/res3/fc1_globalavgpool" + top: "/res3/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc1_relu" + type: "ReLU" + bottom: "/res3/fc1" + top: "/res3/fc1_relu" +} +layer { + name: "/res3/fc2" + type: "InnerProduct" + bottom: "/res3/fc1_relu" + top: "/res3/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res3/fc2" + top: "/res3/fc2_sigmoid" +} +layer { + name: "/res3/crop" + type: "CropCenter" + bottom: "/res2/axpy" + top: "/res3/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res3/axpy" + type: "Axpy" + bottom: "/res3/fc2_sigmoid" + bottom: "/res3/conv2_relu" + bottom: "/res3/crop" + top: "/res3/axpy" +} +layer { + name: "/res4/conv1" + type: "Convolution" + bottom: "/res3/axpy" + top: "/res4/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv1_relu" + type: "ReLU" + bottom: "/res4/conv1" + top: "/res4/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/conv2" + type: "Convolution" + bottom: "/res4/conv1_relu" + top: "/res4/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv2_relu" + type: "ReLU" + bottom: "/res4/conv2" + top: "/res4/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/fc1_globalavgpool" + type: "Pooling" + bottom: "/res4/conv2_relu" + top: "/res4/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res4/fc1" + type: "InnerProduct" + bottom: "/res4/fc1_globalavgpool" + top: "/res4/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc1_relu" + type: "ReLU" + bottom: "/res4/fc1" + top: "/res4/fc1_relu" +} +layer { + name: "/res4/fc2" + type: "InnerProduct" + bottom: "/res4/fc1_relu" + top: "/res4/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res4/fc2" + top: "/res4/fc2_sigmoid" +} +layer { + name: "/res4/crop" + type: "CropCenter" + bottom: "/res3/axpy" + top: "/res4/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res4/axpy" + type: "Axpy" + bottom: "/res4/fc2_sigmoid" + bottom: "/res4/conv2_relu" + bottom: "/res4/crop" + top: "/res4/axpy" +} +layer { + name: "/res5/conv1" + type: "Convolution" + bottom: "/res4/axpy" + top: "/res5/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv1_relu" + type: "ReLU" + bottom: "/res5/conv1" + top: "/res5/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/conv2" + type: "Convolution" + bottom: "/res5/conv1_relu" + top: "/res5/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv2_relu" + type: "ReLU" + bottom: "/res5/conv2" + top: "/res5/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/fc1_globalavgpool" + type: "Pooling" + bottom: "/res5/conv2_relu" + top: "/res5/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res5/fc1" + type: "InnerProduct" + bottom: "/res5/fc1_globalavgpool" + top: "/res5/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc1_relu" + type: "ReLU" + bottom: "/res5/fc1" + top: "/res5/fc1_relu" +} +layer { + name: "/res5/fc2" + type: "InnerProduct" + bottom: "/res5/fc1_relu" + top: "/res5/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res5/fc2" + top: "/res5/fc2_sigmoid" +} +layer { + name: "/res5/crop" + type: "CropCenter" + bottom: "/res4/axpy" + top: "/res5/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res5/axpy" + type: "Axpy" + bottom: "/res5/fc2_sigmoid" + bottom: "/res5/conv2_relu" + bottom: "/res5/crop" + top: "/res5/axpy" +} +layer { + name: "/conv_bridge" + type: "Convolution" + bottom: "/res5/axpy" + top: "/conv_bridge" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_bridge_relu" + type: "ReLU" + bottom: "/conv_bridge" + top: "/conv_bridge_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 11 + crop_size: 11 + } +} +layer { + name: "/add" + type: "Eltwise" + bottom: "/conv_bridge_relu" + bottom: "/crop" + top: "/add" +} +layer { + name: "/conv_post" + type: "Deconvolution" + bottom: "/add" + top: "/conv_post" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + num_output: 3 + bias_term: false + pad: 3 + kernel_size: 4 + stride: 2 + weight_filler { + type: "msra" + } + } +} diff --git a/bin/models/upresnet10/noise1_scale2.0x_model.json.caffemodel b/bin/models/upresnet10/noise1_scale2.0x_model.json.caffemodel new file mode 100644 index 0000000..38e99b1 Binary files /dev/null and b/bin/models/upresnet10/noise1_scale2.0x_model.json.caffemodel differ diff --git a/bin/models/upresnet10/noise1_scale2.0x_model.prototxt b/bin/models/upresnet10/noise1_scale2.0x_model.prototxt new file mode 100644 index 0000000..c083cc7 --- /dev/null +++ b/bin/models/upresnet10/noise1_scale2.0x_model.prototxt @@ -0,0 +1,904 @@ +name: "UpResNet10_3" +layer { + name: "data" + type: "Input" + top: "input" + input_param { + shape { + dim: 1 + dim: 3 + dim: 90 + dim: 90 + } + } +} +layer { + name: "/conv_pre" + type: "Convolution" + bottom: "input" + top: "/conv_pre" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_pre_relu" + type: "ReLU" + bottom: "/conv_pre" + top: "/conv_pre_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv1" + type: "Convolution" + bottom: "/conv_pre_relu" + top: "/res1/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv1_relu" + type: "ReLU" + bottom: "/res1/conv1" + top: "/res1/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv2" + type: "Convolution" + bottom: "/res1/conv1_relu" + top: "/res1/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv2_relu" + type: "ReLU" + bottom: "/res1/conv2" + top: "/res1/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/fc1_globalavgpool" + type: "Pooling" + bottom: "/res1/conv2_relu" + top: "/res1/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res1/fc1" + type: "InnerProduct" + bottom: "/res1/fc1_globalavgpool" + top: "/res1/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc1_relu" + type: "ReLU" + bottom: "/res1/fc1" + top: "/res1/fc1_relu" +} +layer { + name: "/res1/fc2" + type: "InnerProduct" + bottom: "/res1/fc1_relu" + top: "/res1/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res1/fc2" + top: "/res1/fc2_sigmoid" +} +layer { + name: "/res1/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/res1/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res1/axpy" + type: "Axpy" + bottom: "/res1/fc2_sigmoid" + bottom: "/res1/conv2_relu" + bottom: "/res1/crop" + top: "/res1/axpy" +} +layer { + name: "/res2/conv1" + type: "Convolution" + bottom: "/res1/axpy" + top: "/res2/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv1_relu" + type: "ReLU" + bottom: "/res2/conv1" + top: "/res2/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/conv2" + type: "Convolution" + bottom: "/res2/conv1_relu" + top: "/res2/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv2_relu" + type: "ReLU" + bottom: "/res2/conv2" + top: "/res2/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/fc1_globalavgpool" + type: "Pooling" + bottom: "/res2/conv2_relu" + top: "/res2/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res2/fc1" + type: "InnerProduct" + bottom: "/res2/fc1_globalavgpool" + top: "/res2/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc1_relu" + type: "ReLU" + bottom: "/res2/fc1" + top: "/res2/fc1_relu" +} +layer { + name: "/res2/fc2" + type: "InnerProduct" + bottom: "/res2/fc1_relu" + top: "/res2/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res2/fc2" + top: "/res2/fc2_sigmoid" +} +layer { + name: "/res2/crop" + type: "CropCenter" + bottom: "/res1/axpy" + top: "/res2/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res2/axpy" + type: "Axpy" + bottom: "/res2/fc2_sigmoid" + bottom: "/res2/conv2_relu" + bottom: "/res2/crop" + top: "/res2/axpy" +} +layer { + name: "/res3/conv1" + type: "Convolution" + bottom: "/res2/axpy" + top: "/res3/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv1_relu" + type: "ReLU" + bottom: "/res3/conv1" + top: "/res3/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/conv2" + type: "Convolution" + bottom: "/res3/conv1_relu" + top: "/res3/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv2_relu" + type: "ReLU" + bottom: "/res3/conv2" + top: "/res3/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/fc1_globalavgpool" + type: "Pooling" + bottom: "/res3/conv2_relu" + top: "/res3/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res3/fc1" + type: "InnerProduct" + bottom: "/res3/fc1_globalavgpool" + top: "/res3/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc1_relu" + type: "ReLU" + bottom: "/res3/fc1" + top: "/res3/fc1_relu" +} +layer { + name: "/res3/fc2" + type: "InnerProduct" + bottom: "/res3/fc1_relu" + top: "/res3/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res3/fc2" + top: "/res3/fc2_sigmoid" +} +layer { + name: "/res3/crop" + type: "CropCenter" + bottom: "/res2/axpy" + top: "/res3/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res3/axpy" + type: "Axpy" + bottom: "/res3/fc2_sigmoid" + bottom: "/res3/conv2_relu" + bottom: "/res3/crop" + top: "/res3/axpy" +} +layer { + name: "/res4/conv1" + type: "Convolution" + bottom: "/res3/axpy" + top: "/res4/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv1_relu" + type: "ReLU" + bottom: "/res4/conv1" + top: "/res4/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/conv2" + type: "Convolution" + bottom: "/res4/conv1_relu" + top: "/res4/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv2_relu" + type: "ReLU" + bottom: "/res4/conv2" + top: "/res4/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/fc1_globalavgpool" + type: "Pooling" + bottom: "/res4/conv2_relu" + top: "/res4/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res4/fc1" + type: "InnerProduct" + bottom: "/res4/fc1_globalavgpool" + top: "/res4/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc1_relu" + type: "ReLU" + bottom: "/res4/fc1" + top: "/res4/fc1_relu" +} +layer { + name: "/res4/fc2" + type: "InnerProduct" + bottom: "/res4/fc1_relu" + top: "/res4/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res4/fc2" + top: "/res4/fc2_sigmoid" +} +layer { + name: "/res4/crop" + type: "CropCenter" + bottom: "/res3/axpy" + top: "/res4/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res4/axpy" + type: "Axpy" + bottom: "/res4/fc2_sigmoid" + bottom: "/res4/conv2_relu" + bottom: "/res4/crop" + top: "/res4/axpy" +} +layer { + name: "/res5/conv1" + type: "Convolution" + bottom: "/res4/axpy" + top: "/res5/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv1_relu" + type: "ReLU" + bottom: "/res5/conv1" + top: "/res5/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/conv2" + type: "Convolution" + bottom: "/res5/conv1_relu" + top: "/res5/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv2_relu" + type: "ReLU" + bottom: "/res5/conv2" + top: "/res5/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/fc1_globalavgpool" + type: "Pooling" + bottom: "/res5/conv2_relu" + top: "/res5/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res5/fc1" + type: "InnerProduct" + bottom: "/res5/fc1_globalavgpool" + top: "/res5/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc1_relu" + type: "ReLU" + bottom: "/res5/fc1" + top: "/res5/fc1_relu" +} +layer { + name: "/res5/fc2" + type: "InnerProduct" + bottom: "/res5/fc1_relu" + top: "/res5/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res5/fc2" + top: "/res5/fc2_sigmoid" +} +layer { + name: "/res5/crop" + type: "CropCenter" + bottom: "/res4/axpy" + top: "/res5/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res5/axpy" + type: "Axpy" + bottom: "/res5/fc2_sigmoid" + bottom: "/res5/conv2_relu" + bottom: "/res5/crop" + top: "/res5/axpy" +} +layer { + name: "/conv_bridge" + type: "Convolution" + bottom: "/res5/axpy" + top: "/conv_bridge" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_bridge_relu" + type: "ReLU" + bottom: "/conv_bridge" + top: "/conv_bridge_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 11 + crop_size: 11 + } +} +layer { + name: "/add" + type: "Eltwise" + bottom: "/conv_bridge_relu" + bottom: "/crop" + top: "/add" +} +layer { + name: "/conv_post" + type: "Deconvolution" + bottom: "/add" + top: "/conv_post" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + num_output: 3 + bias_term: false + pad: 3 + kernel_size: 4 + stride: 2 + weight_filler { + type: "msra" + } + } +} diff --git a/bin/models/upresnet10/noise2_scale2.0x_model.json.caffemodel b/bin/models/upresnet10/noise2_scale2.0x_model.json.caffemodel new file mode 100644 index 0000000..c045d3a Binary files /dev/null and b/bin/models/upresnet10/noise2_scale2.0x_model.json.caffemodel differ diff --git a/bin/models/upresnet10/noise2_scale2.0x_model.prototxt b/bin/models/upresnet10/noise2_scale2.0x_model.prototxt new file mode 100644 index 0000000..c083cc7 --- /dev/null +++ b/bin/models/upresnet10/noise2_scale2.0x_model.prototxt @@ -0,0 +1,904 @@ +name: "UpResNet10_3" +layer { + name: "data" + type: "Input" + top: "input" + input_param { + shape { + dim: 1 + dim: 3 + dim: 90 + dim: 90 + } + } +} +layer { + name: "/conv_pre" + type: "Convolution" + bottom: "input" + top: "/conv_pre" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_pre_relu" + type: "ReLU" + bottom: "/conv_pre" + top: "/conv_pre_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv1" + type: "Convolution" + bottom: "/conv_pre_relu" + top: "/res1/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv1_relu" + type: "ReLU" + bottom: "/res1/conv1" + top: "/res1/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv2" + type: "Convolution" + bottom: "/res1/conv1_relu" + top: "/res1/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv2_relu" + type: "ReLU" + bottom: "/res1/conv2" + top: "/res1/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/fc1_globalavgpool" + type: "Pooling" + bottom: "/res1/conv2_relu" + top: "/res1/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res1/fc1" + type: "InnerProduct" + bottom: "/res1/fc1_globalavgpool" + top: "/res1/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc1_relu" + type: "ReLU" + bottom: "/res1/fc1" + top: "/res1/fc1_relu" +} +layer { + name: "/res1/fc2" + type: "InnerProduct" + bottom: "/res1/fc1_relu" + top: "/res1/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res1/fc2" + top: "/res1/fc2_sigmoid" +} +layer { + name: "/res1/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/res1/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res1/axpy" + type: "Axpy" + bottom: "/res1/fc2_sigmoid" + bottom: "/res1/conv2_relu" + bottom: "/res1/crop" + top: "/res1/axpy" +} +layer { + name: "/res2/conv1" + type: "Convolution" + bottom: "/res1/axpy" + top: "/res2/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv1_relu" + type: "ReLU" + bottom: "/res2/conv1" + top: "/res2/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/conv2" + type: "Convolution" + bottom: "/res2/conv1_relu" + top: "/res2/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv2_relu" + type: "ReLU" + bottom: "/res2/conv2" + top: "/res2/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/fc1_globalavgpool" + type: "Pooling" + bottom: "/res2/conv2_relu" + top: "/res2/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res2/fc1" + type: "InnerProduct" + bottom: "/res2/fc1_globalavgpool" + top: "/res2/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc1_relu" + type: "ReLU" + bottom: "/res2/fc1" + top: "/res2/fc1_relu" +} +layer { + name: "/res2/fc2" + type: "InnerProduct" + bottom: "/res2/fc1_relu" + top: "/res2/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res2/fc2" + top: "/res2/fc2_sigmoid" +} +layer { + name: "/res2/crop" + type: "CropCenter" + bottom: "/res1/axpy" + top: "/res2/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res2/axpy" + type: "Axpy" + bottom: "/res2/fc2_sigmoid" + bottom: "/res2/conv2_relu" + bottom: "/res2/crop" + top: "/res2/axpy" +} +layer { + name: "/res3/conv1" + type: "Convolution" + bottom: "/res2/axpy" + top: "/res3/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv1_relu" + type: "ReLU" + bottom: "/res3/conv1" + top: "/res3/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/conv2" + type: "Convolution" + bottom: "/res3/conv1_relu" + top: "/res3/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv2_relu" + type: "ReLU" + bottom: "/res3/conv2" + top: "/res3/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/fc1_globalavgpool" + type: "Pooling" + bottom: "/res3/conv2_relu" + top: "/res3/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res3/fc1" + type: "InnerProduct" + bottom: "/res3/fc1_globalavgpool" + top: "/res3/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc1_relu" + type: "ReLU" + bottom: "/res3/fc1" + top: "/res3/fc1_relu" +} +layer { + name: "/res3/fc2" + type: "InnerProduct" + bottom: "/res3/fc1_relu" + top: "/res3/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res3/fc2" + top: "/res3/fc2_sigmoid" +} +layer { + name: "/res3/crop" + type: "CropCenter" + bottom: "/res2/axpy" + top: "/res3/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res3/axpy" + type: "Axpy" + bottom: "/res3/fc2_sigmoid" + bottom: "/res3/conv2_relu" + bottom: "/res3/crop" + top: "/res3/axpy" +} +layer { + name: "/res4/conv1" + type: "Convolution" + bottom: "/res3/axpy" + top: "/res4/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv1_relu" + type: "ReLU" + bottom: "/res4/conv1" + top: "/res4/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/conv2" + type: "Convolution" + bottom: "/res4/conv1_relu" + top: "/res4/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv2_relu" + type: "ReLU" + bottom: "/res4/conv2" + top: "/res4/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/fc1_globalavgpool" + type: "Pooling" + bottom: "/res4/conv2_relu" + top: "/res4/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res4/fc1" + type: "InnerProduct" + bottom: "/res4/fc1_globalavgpool" + top: "/res4/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc1_relu" + type: "ReLU" + bottom: "/res4/fc1" + top: "/res4/fc1_relu" +} +layer { + name: "/res4/fc2" + type: "InnerProduct" + bottom: "/res4/fc1_relu" + top: "/res4/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res4/fc2" + top: "/res4/fc2_sigmoid" +} +layer { + name: "/res4/crop" + type: "CropCenter" + bottom: "/res3/axpy" + top: "/res4/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res4/axpy" + type: "Axpy" + bottom: "/res4/fc2_sigmoid" + bottom: "/res4/conv2_relu" + bottom: "/res4/crop" + top: "/res4/axpy" +} +layer { + name: "/res5/conv1" + type: "Convolution" + bottom: "/res4/axpy" + top: "/res5/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv1_relu" + type: "ReLU" + bottom: "/res5/conv1" + top: "/res5/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/conv2" + type: "Convolution" + bottom: "/res5/conv1_relu" + top: "/res5/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv2_relu" + type: "ReLU" + bottom: "/res5/conv2" + top: "/res5/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/fc1_globalavgpool" + type: "Pooling" + bottom: "/res5/conv2_relu" + top: "/res5/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res5/fc1" + type: "InnerProduct" + bottom: "/res5/fc1_globalavgpool" + top: "/res5/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc1_relu" + type: "ReLU" + bottom: "/res5/fc1" + top: "/res5/fc1_relu" +} +layer { + name: "/res5/fc2" + type: "InnerProduct" + bottom: "/res5/fc1_relu" + top: "/res5/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res5/fc2" + top: "/res5/fc2_sigmoid" +} +layer { + name: "/res5/crop" + type: "CropCenter" + bottom: "/res4/axpy" + top: "/res5/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res5/axpy" + type: "Axpy" + bottom: "/res5/fc2_sigmoid" + bottom: "/res5/conv2_relu" + bottom: "/res5/crop" + top: "/res5/axpy" +} +layer { + name: "/conv_bridge" + type: "Convolution" + bottom: "/res5/axpy" + top: "/conv_bridge" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_bridge_relu" + type: "ReLU" + bottom: "/conv_bridge" + top: "/conv_bridge_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 11 + crop_size: 11 + } +} +layer { + name: "/add" + type: "Eltwise" + bottom: "/conv_bridge_relu" + bottom: "/crop" + top: "/add" +} +layer { + name: "/conv_post" + type: "Deconvolution" + bottom: "/add" + top: "/conv_post" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + num_output: 3 + bias_term: false + pad: 3 + kernel_size: 4 + stride: 2 + weight_filler { + type: "msra" + } + } +} diff --git a/bin/models/upresnet10/noise3_scale2.0x_model.json.caffemodel b/bin/models/upresnet10/noise3_scale2.0x_model.json.caffemodel new file mode 100644 index 0000000..8f1489e Binary files /dev/null and b/bin/models/upresnet10/noise3_scale2.0x_model.json.caffemodel differ diff --git a/bin/models/upresnet10/noise3_scale2.0x_model.prototxt b/bin/models/upresnet10/noise3_scale2.0x_model.prototxt new file mode 100644 index 0000000..c083cc7 --- /dev/null +++ b/bin/models/upresnet10/noise3_scale2.0x_model.prototxt @@ -0,0 +1,904 @@ +name: "UpResNet10_3" +layer { + name: "data" + type: "Input" + top: "input" + input_param { + shape { + dim: 1 + dim: 3 + dim: 90 + dim: 90 + } + } +} +layer { + name: "/conv_pre" + type: "Convolution" + bottom: "input" + top: "/conv_pre" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_pre_relu" + type: "ReLU" + bottom: "/conv_pre" + top: "/conv_pre_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv1" + type: "Convolution" + bottom: "/conv_pre_relu" + top: "/res1/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv1_relu" + type: "ReLU" + bottom: "/res1/conv1" + top: "/res1/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv2" + type: "Convolution" + bottom: "/res1/conv1_relu" + top: "/res1/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv2_relu" + type: "ReLU" + bottom: "/res1/conv2" + top: "/res1/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/fc1_globalavgpool" + type: "Pooling" + bottom: "/res1/conv2_relu" + top: "/res1/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res1/fc1" + type: "InnerProduct" + bottom: "/res1/fc1_globalavgpool" + top: "/res1/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc1_relu" + type: "ReLU" + bottom: "/res1/fc1" + top: "/res1/fc1_relu" +} +layer { + name: "/res1/fc2" + type: "InnerProduct" + bottom: "/res1/fc1_relu" + top: "/res1/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res1/fc2" + top: "/res1/fc2_sigmoid" +} +layer { + name: "/res1/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/res1/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res1/axpy" + type: "Axpy" + bottom: "/res1/fc2_sigmoid" + bottom: "/res1/conv2_relu" + bottom: "/res1/crop" + top: "/res1/axpy" +} +layer { + name: "/res2/conv1" + type: "Convolution" + bottom: "/res1/axpy" + top: "/res2/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv1_relu" + type: "ReLU" + bottom: "/res2/conv1" + top: "/res2/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/conv2" + type: "Convolution" + bottom: "/res2/conv1_relu" + top: "/res2/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv2_relu" + type: "ReLU" + bottom: "/res2/conv2" + top: "/res2/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/fc1_globalavgpool" + type: "Pooling" + bottom: "/res2/conv2_relu" + top: "/res2/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res2/fc1" + type: "InnerProduct" + bottom: "/res2/fc1_globalavgpool" + top: "/res2/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc1_relu" + type: "ReLU" + bottom: "/res2/fc1" + top: "/res2/fc1_relu" +} +layer { + name: "/res2/fc2" + type: "InnerProduct" + bottom: "/res2/fc1_relu" + top: "/res2/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res2/fc2" + top: "/res2/fc2_sigmoid" +} +layer { + name: "/res2/crop" + type: "CropCenter" + bottom: "/res1/axpy" + top: "/res2/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res2/axpy" + type: "Axpy" + bottom: "/res2/fc2_sigmoid" + bottom: "/res2/conv2_relu" + bottom: "/res2/crop" + top: "/res2/axpy" +} +layer { + name: "/res3/conv1" + type: "Convolution" + bottom: "/res2/axpy" + top: "/res3/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv1_relu" + type: "ReLU" + bottom: "/res3/conv1" + top: "/res3/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/conv2" + type: "Convolution" + bottom: "/res3/conv1_relu" + top: "/res3/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv2_relu" + type: "ReLU" + bottom: "/res3/conv2" + top: "/res3/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/fc1_globalavgpool" + type: "Pooling" + bottom: "/res3/conv2_relu" + top: "/res3/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res3/fc1" + type: "InnerProduct" + bottom: "/res3/fc1_globalavgpool" + top: "/res3/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc1_relu" + type: "ReLU" + bottom: "/res3/fc1" + top: "/res3/fc1_relu" +} +layer { + name: "/res3/fc2" + type: "InnerProduct" + bottom: "/res3/fc1_relu" + top: "/res3/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res3/fc2" + top: "/res3/fc2_sigmoid" +} +layer { + name: "/res3/crop" + type: "CropCenter" + bottom: "/res2/axpy" + top: "/res3/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res3/axpy" + type: "Axpy" + bottom: "/res3/fc2_sigmoid" + bottom: "/res3/conv2_relu" + bottom: "/res3/crop" + top: "/res3/axpy" +} +layer { + name: "/res4/conv1" + type: "Convolution" + bottom: "/res3/axpy" + top: "/res4/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv1_relu" + type: "ReLU" + bottom: "/res4/conv1" + top: "/res4/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/conv2" + type: "Convolution" + bottom: "/res4/conv1_relu" + top: "/res4/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv2_relu" + type: "ReLU" + bottom: "/res4/conv2" + top: "/res4/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/fc1_globalavgpool" + type: "Pooling" + bottom: "/res4/conv2_relu" + top: "/res4/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res4/fc1" + type: "InnerProduct" + bottom: "/res4/fc1_globalavgpool" + top: "/res4/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc1_relu" + type: "ReLU" + bottom: "/res4/fc1" + top: "/res4/fc1_relu" +} +layer { + name: "/res4/fc2" + type: "InnerProduct" + bottom: "/res4/fc1_relu" + top: "/res4/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res4/fc2" + top: "/res4/fc2_sigmoid" +} +layer { + name: "/res4/crop" + type: "CropCenter" + bottom: "/res3/axpy" + top: "/res4/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res4/axpy" + type: "Axpy" + bottom: "/res4/fc2_sigmoid" + bottom: "/res4/conv2_relu" + bottom: "/res4/crop" + top: "/res4/axpy" +} +layer { + name: "/res5/conv1" + type: "Convolution" + bottom: "/res4/axpy" + top: "/res5/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv1_relu" + type: "ReLU" + bottom: "/res5/conv1" + top: "/res5/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/conv2" + type: "Convolution" + bottom: "/res5/conv1_relu" + top: "/res5/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv2_relu" + type: "ReLU" + bottom: "/res5/conv2" + top: "/res5/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/fc1_globalavgpool" + type: "Pooling" + bottom: "/res5/conv2_relu" + top: "/res5/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res5/fc1" + type: "InnerProduct" + bottom: "/res5/fc1_globalavgpool" + top: "/res5/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc1_relu" + type: "ReLU" + bottom: "/res5/fc1" + top: "/res5/fc1_relu" +} +layer { + name: "/res5/fc2" + type: "InnerProduct" + bottom: "/res5/fc1_relu" + top: "/res5/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res5/fc2" + top: "/res5/fc2_sigmoid" +} +layer { + name: "/res5/crop" + type: "CropCenter" + bottom: "/res4/axpy" + top: "/res5/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res5/axpy" + type: "Axpy" + bottom: "/res5/fc2_sigmoid" + bottom: "/res5/conv2_relu" + bottom: "/res5/crop" + top: "/res5/axpy" +} +layer { + name: "/conv_bridge" + type: "Convolution" + bottom: "/res5/axpy" + top: "/conv_bridge" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_bridge_relu" + type: "ReLU" + bottom: "/conv_bridge" + top: "/conv_bridge_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 11 + crop_size: 11 + } +} +layer { + name: "/add" + type: "Eltwise" + bottom: "/conv_bridge_relu" + bottom: "/crop" + top: "/add" +} +layer { + name: "/conv_post" + type: "Deconvolution" + bottom: "/add" + top: "/conv_post" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + num_output: 3 + bias_term: false + pad: 3 + kernel_size: 4 + stride: 2 + weight_filler { + type: "msra" + } + } +} diff --git a/bin/models/upresnet10/scale2.0x_model.json.caffemodel b/bin/models/upresnet10/scale2.0x_model.json.caffemodel new file mode 100644 index 0000000..4da660f Binary files /dev/null and b/bin/models/upresnet10/scale2.0x_model.json.caffemodel differ diff --git a/bin/models/upresnet10/scale2.0x_model.prototxt b/bin/models/upresnet10/scale2.0x_model.prototxt new file mode 100644 index 0000000..c083cc7 --- /dev/null +++ b/bin/models/upresnet10/scale2.0x_model.prototxt @@ -0,0 +1,904 @@ +name: "UpResNet10_3" +layer { + name: "data" + type: "Input" + top: "input" + input_param { + shape { + dim: 1 + dim: 3 + dim: 90 + dim: 90 + } + } +} +layer { + name: "/conv_pre" + type: "Convolution" + bottom: "input" + top: "/conv_pre" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_pre_relu" + type: "ReLU" + bottom: "/conv_pre" + top: "/conv_pre_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv1" + type: "Convolution" + bottom: "/conv_pre_relu" + top: "/res1/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv1_relu" + type: "ReLU" + bottom: "/res1/conv1" + top: "/res1/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/conv2" + type: "Convolution" + bottom: "/res1/conv1_relu" + top: "/res1/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res1/conv2_relu" + type: "ReLU" + bottom: "/res1/conv2" + top: "/res1/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res1/fc1_globalavgpool" + type: "Pooling" + bottom: "/res1/conv2_relu" + top: "/res1/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res1/fc1" + type: "InnerProduct" + bottom: "/res1/fc1_globalavgpool" + top: "/res1/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc1_relu" + type: "ReLU" + bottom: "/res1/fc1" + top: "/res1/fc1_relu" +} +layer { + name: "/res1/fc2" + type: "InnerProduct" + bottom: "/res1/fc1_relu" + top: "/res1/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res1/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res1/fc2" + top: "/res1/fc2_sigmoid" +} +layer { + name: "/res1/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/res1/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res1/axpy" + type: "Axpy" + bottom: "/res1/fc2_sigmoid" + bottom: "/res1/conv2_relu" + bottom: "/res1/crop" + top: "/res1/axpy" +} +layer { + name: "/res2/conv1" + type: "Convolution" + bottom: "/res1/axpy" + top: "/res2/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv1_relu" + type: "ReLU" + bottom: "/res2/conv1" + top: "/res2/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/conv2" + type: "Convolution" + bottom: "/res2/conv1_relu" + top: "/res2/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res2/conv2_relu" + type: "ReLU" + bottom: "/res2/conv2" + top: "/res2/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res2/fc1_globalavgpool" + type: "Pooling" + bottom: "/res2/conv2_relu" + top: "/res2/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res2/fc1" + type: "InnerProduct" + bottom: "/res2/fc1_globalavgpool" + top: "/res2/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc1_relu" + type: "ReLU" + bottom: "/res2/fc1" + top: "/res2/fc1_relu" +} +layer { + name: "/res2/fc2" + type: "InnerProduct" + bottom: "/res2/fc1_relu" + top: "/res2/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res2/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res2/fc2" + top: "/res2/fc2_sigmoid" +} +layer { + name: "/res2/crop" + type: "CropCenter" + bottom: "/res1/axpy" + top: "/res2/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res2/axpy" + type: "Axpy" + bottom: "/res2/fc2_sigmoid" + bottom: "/res2/conv2_relu" + bottom: "/res2/crop" + top: "/res2/axpy" +} +layer { + name: "/res3/conv1" + type: "Convolution" + bottom: "/res2/axpy" + top: "/res3/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv1_relu" + type: "ReLU" + bottom: "/res3/conv1" + top: "/res3/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/conv2" + type: "Convolution" + bottom: "/res3/conv1_relu" + top: "/res3/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res3/conv2_relu" + type: "ReLU" + bottom: "/res3/conv2" + top: "/res3/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res3/fc1_globalavgpool" + type: "Pooling" + bottom: "/res3/conv2_relu" + top: "/res3/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res3/fc1" + type: "InnerProduct" + bottom: "/res3/fc1_globalavgpool" + top: "/res3/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc1_relu" + type: "ReLU" + bottom: "/res3/fc1" + top: "/res3/fc1_relu" +} +layer { + name: "/res3/fc2" + type: "InnerProduct" + bottom: "/res3/fc1_relu" + top: "/res3/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res3/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res3/fc2" + top: "/res3/fc2_sigmoid" +} +layer { + name: "/res3/crop" + type: "CropCenter" + bottom: "/res2/axpy" + top: "/res3/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res3/axpy" + type: "Axpy" + bottom: "/res3/fc2_sigmoid" + bottom: "/res3/conv2_relu" + bottom: "/res3/crop" + top: "/res3/axpy" +} +layer { + name: "/res4/conv1" + type: "Convolution" + bottom: "/res3/axpy" + top: "/res4/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv1_relu" + type: "ReLU" + bottom: "/res4/conv1" + top: "/res4/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/conv2" + type: "Convolution" + bottom: "/res4/conv1_relu" + top: "/res4/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res4/conv2_relu" + type: "ReLU" + bottom: "/res4/conv2" + top: "/res4/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res4/fc1_globalavgpool" + type: "Pooling" + bottom: "/res4/conv2_relu" + top: "/res4/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res4/fc1" + type: "InnerProduct" + bottom: "/res4/fc1_globalavgpool" + top: "/res4/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc1_relu" + type: "ReLU" + bottom: "/res4/fc1" + top: "/res4/fc1_relu" +} +layer { + name: "/res4/fc2" + type: "InnerProduct" + bottom: "/res4/fc1_relu" + top: "/res4/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res4/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res4/fc2" + top: "/res4/fc2_sigmoid" +} +layer { + name: "/res4/crop" + type: "CropCenter" + bottom: "/res3/axpy" + top: "/res4/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res4/axpy" + type: "Axpy" + bottom: "/res4/fc2_sigmoid" + bottom: "/res4/conv2_relu" + bottom: "/res4/crop" + top: "/res4/axpy" +} +layer { + name: "/res5/conv1" + type: "Convolution" + bottom: "/res4/axpy" + top: "/res5/conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv1_relu" + type: "ReLU" + bottom: "/res5/conv1" + top: "/res5/conv1_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/conv2" + type: "Convolution" + bottom: "/res5/conv1_relu" + top: "/res5/conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/res5/conv2_relu" + type: "ReLU" + bottom: "/res5/conv2" + top: "/res5/conv2_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/res5/fc1_globalavgpool" + type: "Pooling" + bottom: "/res5/conv2_relu" + top: "/res5/fc1_globalavgpool" + pooling_param { + pool: AVE + stride: 1 + pad: 0 + engine: CAFFE + global_pooling: true + } +} +layer { + name: "/res5/fc1" + type: "InnerProduct" + bottom: "/res5/fc1_globalavgpool" + top: "/res5/fc1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 16 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc1_relu" + type: "ReLU" + bottom: "/res5/fc1" + top: "/res5/fc1_relu" +} +layer { + name: "/res5/fc2" + type: "InnerProduct" + bottom: "/res5/fc1_relu" + top: "/res5/fc2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 64 + weight_filler { + type: "msra" + } + bias_filler { + value: 0 + } + } +} +layer { + name: "/res5/fc2_sigmoid" + type: "Sigmoid" + bottom: "/res5/fc2" + top: "/res5/fc2_sigmoid" +} +layer { + name: "/res5/crop" + type: "CropCenter" + bottom: "/res4/axpy" + top: "/res5/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 2 + crop_size: 2 + } +} +layer { + name: "/res5/axpy" + type: "Axpy" + bottom: "/res5/fc2_sigmoid" + bottom: "/res5/conv2_relu" + bottom: "/res5/crop" + top: "/res5/axpy" +} +layer { + name: "/conv_bridge" + type: "Convolution" + bottom: "/res5/axpy" + top: "/conv_bridge" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + } +} +layer { + name: "/conv_bridge_relu" + type: "ReLU" + bottom: "/conv_bridge" + top: "/conv_bridge_relu" + relu_param { + negative_slope: 0.1 + } +} +layer { + name: "/crop" + type: "CropCenter" + bottom: "/conv_pre_relu" + top: "/crop" + crop_center_param { + crop_size: 0 + crop_size: 0 + crop_size: 11 + crop_size: 11 + } +} +layer { + name: "/add" + type: "Eltwise" + bottom: "/conv_bridge_relu" + bottom: "/crop" + top: "/add" +} +layer { + name: "/conv_post" + type: "Deconvolution" + bottom: "/add" + top: "/conv_post" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + num_output: 3 + bias_term: false + pad: 3 + kernel_size: 4 + stride: 2 + weight_filler { + type: "msra" + } + } +} diff --git a/waifu2x-caffe-gui/MainDialog.cpp b/waifu2x-caffe-gui/MainDialog.cpp index 0f2e8b9..054e535 100644 --- a/waifu2x-caffe-gui/MainDialog.cpp +++ b/waifu2x-caffe-gui/MainDialog.cpp @@ -397,6 +397,11 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent) modelType = eModelTypeY; break; + case 5: + model_dir = TEXT("models/upresnet10"); + modelType = eModelTypeUpResNet10; + break; + default: break; } @@ -1592,6 +1597,7 @@ void DialogEvent::SetWindowTextLang() SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_RGB").c_str()); SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_PHOTO").c_str()); SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_Y").c_str()); + SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_UpResNet10").c_str()); SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, cur, 0); } @@ -2036,6 +2042,8 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData) index = 3; else if (modelType == eModelTypeY) index = 4; + else if (modelType == eModelTypeUpResNet10) + index = 5; else index = 0; @@ -2195,6 +2203,7 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData) cmdModelTypeConstraintV.push_back(L"anime_style_art_rgb"); cmdModelTypeConstraintV.push_back(L"photo"); cmdModelTypeConstraintV.push_back(L"anime_style_art_y"); + cmdModelTypeConstraintV.push_back(L"upresnet10"); TCLAPW::ValuesConstraint cmdModelTypeConstraint(cmdModelTypeConstraintV); TCLAPW::ValueArg cmdModelType(L"y", L"model_type", L"model type", false, L"upconv_7_anime_style_art_rgb", &cmdModelTypeConstraint, cmd); @@ -2462,6 +2471,8 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData) index = 3; else if (cmdModelType.getValue() == L"anime_style_art_y") index = 4; + else if (cmdModelType.getValue() == L"upresnet10") + index = 4; else index = 0; diff --git a/waifu2x-caffe-gui/MainDialog.h b/waifu2x-caffe-gui/MainDialog.h index 0140260..3336974 100644 --- a/waifu2x-caffe-gui/MainDialog.h +++ b/waifu2x-caffe-gui/MainDialog.h @@ -92,6 +92,7 @@ private: eModelTypeY, eModelTypeUpConvRGB, eModelTypeUpConvPhoto, + eModelTypeUpResNet10, eModelTypeEnd, };