mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 21:52:49 +00:00
Compare commits
83 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
807cfcb78f | ||
|
3812b90f68 | ||
|
c365977a1e | ||
|
07daa3665c | ||
|
f69abf82ad | ||
|
c8dde5eb0a | ||
|
df762ffb57 | ||
|
6cecabf248 | ||
|
a7befd9c7f | ||
|
897ae1495f | ||
|
b06dc530fe | ||
|
e27bf60945 | ||
|
e659ab3a43 | ||
|
4e44d4a13f | ||
|
0341ec63c1 | ||
|
735ac9762d | ||
|
bb2aaa8916 | ||
|
67306abc32 | ||
|
d0dc6e6d23 | ||
|
9127b28b55 | ||
|
dd7eae43f6 | ||
|
30e5845ac5 | ||
|
8b155e47f2 | ||
|
c0d9c20432 | ||
|
1d92873d70 | ||
|
698b5d8166 | ||
|
e7d72e255e | ||
|
6e05cdd99a | ||
|
7dc6a9f75f | ||
|
c091a557ec | ||
|
3fc9399a3f | ||
|
daad1f358b | ||
|
01c9e77009 | ||
|
954535e3c0 | ||
|
14ebcea3ce | ||
|
eabf35552d | ||
|
e681af17cb | ||
|
0018275991 | ||
|
3f26c040f2 | ||
|
cc711eb870 | ||
|
991974a240 | ||
|
90d7308ed4 | ||
|
2608a2e85c | ||
|
6a2d1e5813 | ||
|
c131ca38c4 | ||
|
62c0f4bc71 | ||
|
cad223c7e5 | ||
|
20ad7ebd0b | ||
|
424542d3f7 | ||
|
e2fe0325ed | ||
|
e5c310f851 | ||
|
8b53d0f086 | ||
|
0de94b6ff9 | ||
|
df0ceaea1e | ||
|
bc6281ba7d | ||
|
1a3c0d323d | ||
|
6e80372099 | ||
|
d1ba0f1105 | ||
|
b8c29d2aae | ||
|
e9b146ac3a | ||
|
0add9fa2c9 | ||
|
0808ab9027 | ||
|
a96d22b4f4 | ||
|
7d1973c314 | ||
|
de6de69ac6 | ||
|
e388e3a788 | ||
|
125de0277c | ||
|
b08e61bda1 | ||
|
8823bb3a90 | ||
|
d7c9da5f2d | ||
|
1428d36cee | ||
|
6effe0dfaa | ||
|
a17ad89116 | ||
|
b280d34413 | ||
|
c8090a6486 | ||
|
1e3c4796d8 | ||
|
65ad2de604 | ||
|
706ee0d32b | ||
|
ca223b2f00 | ||
|
ccaaf677f7 | ||
|
5fcbf4d657 | ||
|
5296d67a4e | ||
|
76400950b2 |
7
.gitmodules
vendored
7
.gitmodules
vendored
@ -7,3 +7,10 @@
|
|||||||
[submodule "msgpack-c"]
|
[submodule "msgpack-c"]
|
||||||
path = msgpack-c
|
path = msgpack-c
|
||||||
url = https://github.com/msgpack/msgpack-c
|
url = https://github.com/msgpack/msgpack-c
|
||||||
|
[submodule "caffe"]
|
||||||
|
path = caffe
|
||||||
|
url = https://github.com/lltcggie/caffe.git
|
||||||
|
branch = lltcggie/custom
|
||||||
|
[submodule "opencv"]
|
||||||
|
path = opencv
|
||||||
|
url = https://github.com/opencv/opencv.git
|
||||||
|
436
README-EN.md
Normal file
436
README-EN.md
Normal file
@ -0,0 +1,436 @@
|
|||||||
|
waifu2x-caffe (for Windows)
|
||||||
|
----------
|
||||||
|
|
||||||
|
Author: lltcggie
|
||||||
|
|
||||||
|
This software uses only the conversion function of the image conversion software "[waifu2x](https://github.com/nagadomi/waifu2x)"
|
||||||
|
This software was rewritten using [Caffe](http://caffe.berkeleyvision.org/) and built for Windows.
|
||||||
|
It can be converted using CPU, but it can be converted faster than CPU by using CUDA (or cuDNN).
|
||||||
|
|
||||||
|
GUI supports English, Japanese, Simplified Chinese, Traditional Chinese, Korean, Turkish, Spanish, Russian, and French.
|
||||||
|
|
||||||
|
You can download the software from [the releases page](https://github.com/lltcggie/waifu2x-caffe/releases).
|
||||||
|
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
----------
|
||||||
|
|
||||||
|
At least the following environment is required to run this software.
|
||||||
|
|
||||||
|
* OS: Windows Vista or later 64bit (There is no exe for 32bit)
|
||||||
|
* Memory: 1GB or more of free memory (however, this depends on the image size to be converted)
|
||||||
|
* GPU: NVIDIA GPU with Compute Capability 3.5 or higher
|
||||||
|
* Microsoft Visual C++ 2015 Redistributable Package Update 3 (x64 version) must be installed (Required)
|
||||||
|
- The above package is [here.](https://www.microsoft.com/ja-jp/download/details.aspx?id=53587)
|
||||||
|
- After pressing the `Download` button, select `vcredist_x64.exe` to download and install.
|
||||||
|
- If you can't find it, try searching with "Visual C++ 2015 Redistributable Package Update 3".
|
||||||
|
|
||||||
|
If you want to know the Compute Capability of your GPU, check it out on [this page](https://developer.nvidia.com/cuda-gpus).
|
||||||
|
|
||||||
|
|
||||||
|
How to use (GUI version)
|
||||||
|
--------
|
||||||
|
|
||||||
|
"Waifu2x-caffe.exe" is GUI software. Start by double-clicking.
|
||||||
|
Or, drag and drop the file or folder to "waifu2x-caffe.exe" with Explorer and the conversion will be performed with the settings at the last startup.
|
||||||
|
In that case, depending on the settings, if the conversion is successful, the dialog will be closed automatically.
|
||||||
|
You can also use the GUI to set options on the command line.
|
||||||
|
For details, see the section on command line options (common) and command line options (GUI version).
|
||||||
|
|
||||||
|
After starting, drag and drop an image or folder into the "Input path" field to automatically set the "Output path" field.
|
||||||
|
If you want to change the output destination, change the "Output path" column.
|
||||||
|
|
||||||
|
You can change the conversion settings to your liking.
|
||||||
|
|
||||||
|
|
||||||
|
## Input/output setting
|
||||||
|
Settings related to file input/output.
|
||||||
|
|
||||||
|
### Input path
|
||||||
|
Specify the path of the file you want to convert.
|
||||||
|
If you specify a folder, the files with the "extension to be converted in the folder"
|
||||||
|
including subfolders will be converted.
|
||||||
|
|
||||||
|
You can specify multiple files and folders by dragging.
|
||||||
|
In that case, the files are output in the new folder while maintaining the folder structure.
|
||||||
|
(In the input path column, "(Multi Files)" is displayed. The output folder name is generated
|
||||||
|
from the file and folder name that the mouse holds.)
|
||||||
|
When you click the browse button to select a file, you can select a single file, a folder, or multiple files.
|
||||||
|
|
||||||
|
### Output path
|
||||||
|
Specify the path to save the converted image.
|
||||||
|
When a folder is specified in "Input path", the converted file is saved in the specified folder (without changing the folder structure). If the specified folder does not exist, it will be created automatically.
|
||||||
|
|
||||||
|
### Extension to be converted in the folder
|
||||||
|
If the "Input path" is a folder, specify the extension of the image to be converted in the folder.
|
||||||
|
The default value is `png:jpg:jpeg:tif:tiff:bmp:tga`.
|
||||||
|
The delimiter is `:`.
|
||||||
|
Case does not matter.
|
||||||
|
Example.png:jpg:jpeg:tif:tiff:bmp:tga
|
||||||
|
|
||||||
|
### Output extension
|
||||||
|
Specify the format of the converted image.
|
||||||
|
The values that can be set for "Output image quality setting" and "Output depth bit rate" differ depending on the format specified here.
|
||||||
|
|
||||||
|
### Output quality setting
|
||||||
|
Specify the quality of the converted image.
|
||||||
|
The value that can be set is an integer.
|
||||||
|
The range and meaning of the values that can be specified depend on the format set in "Output extension".
|
||||||
|
* .jpg: Value range (0 to 100) The higher the number, the higher the image quality
|
||||||
|
* .webp: Range of values (1 to 100) The higher the number, the higher the image quality
|
||||||
|
* .tga: Value range (0 to 1) 0 means no compression, 1 means RLE compression
|
||||||
|
|
||||||
|
### Output depth bits
|
||||||
|
Specify the number of bits per channel of the converted image.
|
||||||
|
The value that can be specified depends on the format set in "Output extension".
|
||||||
|
|
||||||
|
## Conversion image quality/processing settings
|
||||||
|
Settings related to the file conversion processing method and image quality.
|
||||||
|
|
||||||
|
### Conversion mode
|
||||||
|
Specify the conversion mode.
|
||||||
|
* Noise reduction and magnification: Noise reduction and magnification are performed.
|
||||||
|
* Enlarge: Enlarge
|
||||||
|
* Noise removal: Performs noise removal
|
||||||
|
* Noise removal (automatic detection) and enlargement: Enlarge. Noise removal is also performed only when the input is a JPEG image
|
||||||
|
|
||||||
|
### JPEG noise removal level
|
||||||
|
Specify the noise reduction level. Higher levels remove noise more powerfully, but may result in a flatter picture.
|
||||||
|
|
||||||
|
### Enlarged size
|
||||||
|
Set the size after enlargement.
|
||||||
|
* Specified by enlargement ratio: Enlarges the image at the specified enlargement ratio
|
||||||
|
* Specified width after conversion: Enlarges to the specified width while maintaining the aspect ratio of the image (pixels)
|
||||||
|
* Specified height after conversion: Enlarges to the specified height while maintaining the aspect ratio of the image (pixels)
|
||||||
|
* Specify the width and width after conversion: Enlarges to the specified height and width. Specify as "1920x1080" (Unit is pixel)
|
||||||
|
For magnifications greater than 2x (only one time if removing noise is done the first time) Enlarges by 2x until the specified magnification is exceeded, and if the magnification is not a power of 2, shrinks last The process of doing is performed. Therefore, the conversion result may be a flat picture.
|
||||||
|
|
||||||
|
### Model
|
||||||
|
Specify the model to use.
|
||||||
|
The best model depends on the image to be converted, so we recommend that you try various models.
|
||||||
|
* 2D illustration (RGB model): 2D illustration model that converts all RGB of the image
|
||||||
|
* Photo/Anime (Photo model): Model for photo/animation
|
||||||
|
* 2D illustration (UpRGB model): A model that converts faster than 2D illustration (RGB model) with the same or higher image quality. However, the amount of memory (VRAM) that is consumed is larger than that of the RGB model, so adjust the division size if forced termination during conversion.
|
||||||
|
* Photo/animation (Up Photo model): A model that converts at higher speed than the photo/animation (Photo model) with the same or higher image quality. However, the amount of memory (VRAM) that is consumed is larger than that of the Photo model, so adjust the division size if it is forcibly terminated during conversion.
|
||||||
|
* 2D illustration (Y model): A model for 2D illustration that converts only the brightness of the image
|
||||||
|
* 2D illustration (UpResNet10 model): A model that converts with higher image quality than 2D illustration (UpRGB model). Note that this model will change the output result if the division size is different.
|
||||||
|
* 2D illustration (CUnet model): The model that can convert the 2D illustration with the highest image quality with the included model. Note that this model will change the output result if the division size is different.
|
||||||
|
|
||||||
|
### Use TTA mode
|
||||||
|
Specify whether to use TTA (Test-Time Augmentation) mode.
|
||||||
|
Using TTA mode, conversion is 8 times slower, but PSNR (one of the image evaluation indexes) is about 0.15.
|
||||||
|
|
||||||
|
## Processing speed setting
|
||||||
|
It is a group of setting items that affect the processing speed of image conversion.
|
||||||
|
|
||||||
|
### division size
|
||||||
|
Specify the width (pixel unit) when dividing and processing internally.
|
||||||
|
How to decide the optimum number (the process ends at the fastest) is explained in the section "Split size".
|
||||||
|
Separated by "-------", the upper one is the divisor of the vertical and horizontal size of the input image,
|
||||||
|
The lower one is a general division size read from "crop_size_list.txt".
|
||||||
|
If the partition size is too large, the amount of memory required (VRAM amount when using GPU) exceeds the memory available on the PC, and the software will be killed, so be careful.
|
||||||
|
Since it will affect the processing speed to some extent, when converting a large number of images with the same image size by specifying a folder, it is recommended to check the optimal division size before conversion.
|
||||||
|
However, be aware that depending on the model, the output result may change when the division size is changed.
|
||||||
|
(In that case, use the default split size and adjust the batch size to speed up processing.)
|
||||||
|
|
||||||
|
### Batch size
|
||||||
|
Specify the size when processing all at once internally.
|
||||||
|
Increasing the batch size may increase the processing speed.
|
||||||
|
Make sure that the amount of memory required, as well as the partition size, does not exceed the memory available on your PC.
|
||||||
|
|
||||||
|
## Operation setting
|
||||||
|
Settings that summarize the operation settings which are unlikely to be changed.
|
||||||
|
|
||||||
|
### Automatic conversion start setting at file input
|
||||||
|
Set whether to start the conversion automatically when the input file is specified by the reference button or drag and drop.
|
||||||
|
If the input file is given to exe as an argument, the setting contents of this item have no effect.
|
||||||
|
* Do not start automatically: Do not start conversion automatically when inputting a file
|
||||||
|
* Start after inputting one file: Start conversion automatically after inputting one file
|
||||||
|
* Start after inputting a folder or multiple files: Start conversion automatically when inputting a folder or multiple files. Single image file Convert files only when adjusting conversion settings
|
||||||
|
|
||||||
|
### Processor used
|
||||||
|
Specifies the processor that does the conversion.
|
||||||
|
* CUDA (cuDNN if available): CUDA(GPU) is used for conversion (cuDNN is used when cuDNN is available)
|
||||||
|
* CPU: Only CPU is used for conversion
|
||||||
|
|
||||||
|
### Do not overwrite output file
|
||||||
|
If this setting is ON, conversion will not be performed if a file with the same name exists in the image writing destination.
|
||||||
|
|
||||||
|
### Startup settings with arguments
|
||||||
|
Set the operation when an input file is given to exe as an argument.
|
||||||
|
* Convert at startup: Start conversion automatically at startup
|
||||||
|
* Exit on success: auto exit if not failed at the end of conversion
|
||||||
|
|
||||||
|
### Used GPU No.
|
||||||
|
You can specify the device number to use when there are multiple GPUs. Ignored when in CPU mode or when an invalid device number is specified.
|
||||||
|
|
||||||
|
### Fixed folder for input reference
|
||||||
|
The folder that is first displayed when you click the input reference button is fixed to the folder set here.
|
||||||
|
|
||||||
|
### Fixed folder when referencing output
|
||||||
|
The output destination folder of the converted image is fixed to the folder set here.
|
||||||
|
Also, the folder that is first displayed when you click the output reference button is fixed to the folder set here.
|
||||||
|
|
||||||
|
## Other
|
||||||
|
It is a group of other setting items.
|
||||||
|
|
||||||
|
### UI language
|
||||||
|
Set the UI language.
|
||||||
|
When starting up for the first time, the same language as the PC language setting is selected. (English if not present)
|
||||||
|
|
||||||
|
### cuDNN check
|
||||||
|
You can check if you can use cuDNN by clicking the "cuDNN check" button.
|
||||||
|
If cuDNN is not available, the reason will be displayed.
|
||||||
|
|
||||||
|
Click "Run" button to start conversion.
|
||||||
|
If you want to cancel while it is converting, click the "Cancel" button.
|
||||||
|
However, there is a time lag before it actually stops.
|
||||||
|
The progress bar shows the progress when changing multiple images.
|
||||||
|
The log shows the estimated remaining time, which is an estimate when processing multiple files with the same height and width.
|
||||||
|
Therefore, it is not useful when the size of the file is different, and when the number of images to be processed is 2 or less, only "Unknown" is displayed.
|
||||||
|
|
||||||
|
|
||||||
|
How to use (CUI version)
|
||||||
|
--------
|
||||||
|
|
||||||
|
"Waifu2x-caffe-cui.exe" is a command line tool.
|
||||||
|
Start a `command prompt`, type the command as follows, and press enter.
|
||||||
|
|
||||||
|
|
||||||
|
The following command prints usage information to the screen.
|
||||||
|
```
|
||||||
|
waifu2x-caffe-cui.exe --help
|
||||||
|
```
|
||||||
|
|
||||||
|
The following command is an example of commands that perform image conversion.
|
||||||
|
```
|
||||||
|
waifu2x-caffe-cui.exe -i mywaifu.png -m noise_scale --scale_ratio 1.6 --noise_level 2
|
||||||
|
```
|
||||||
|
After executing the above, the conversion result is saved in `mywaifu(noise_scale)(Level2)(x1.600000).png`.
|
||||||
|
|
||||||
|
For the command list and details of each command, refer to the section on command line options (common) and command line options (CUI version).
|
||||||
|
|
||||||
|
|
||||||
|
Command line options (common)
|
||||||
|
--------
|
||||||
|
|
||||||
|
With this software, the following options can be specified.
|
||||||
|
In the GUI version, if the command line option other than the input file is specified and started, the option file is not currently saved.
|
||||||
|
For the options not specified in the GUI version, the options at the time of the previous termination will be used.
|
||||||
|
|
||||||
|
### -l <string>, --input_extention_list <string>
|
||||||
|
When input_file is a folder, specify the extension of the image to be converted in the folder.
|
||||||
|
The default value is `png:jpg:jpeg:tif:tiff:bmp:tga`.
|
||||||
|
The delimiter is `:`.
|
||||||
|
Example.png:jpg:jpeg:tif:tiff:bmp:tga
|
||||||
|
|
||||||
|
### -e <string>, --output_extention <string>
|
||||||
|
Specifies the extension of the output image when input_file is a folder.
|
||||||
|
The default value is `png`.
|
||||||
|
|
||||||
|
### -m <noise|scale|noise_scale>, --mode <noise|scale|noise_scale>
|
||||||
|
Specify the conversion mode. If not specified, `noise_scale` is selected.
|
||||||
|
* noise: Performs noise reduction (to be exact, performs image conversion using a noise reduction model)
|
||||||
|
* scale: Enlarge (to be exact, after enlarging with the existing algorithm, perform image conversion using the model for enlarged image complement)
|
||||||
|
* noise_scale: Performs noise reduction and enlargement (after noise reduction, enlargement processing continues)
|
||||||
|
* auto_scale: Scales. Noise removal is also performed only when the input is a JPEG image
|
||||||
|
|
||||||
|
### -s <number with decimal point>, --scale_ratio <number with decimal point>
|
||||||
|
Specify how many times to enlarge the image. The default value is `2.0`, but you can specify a value other than 2.0.
|
||||||
|
If scale_width or scale_height is specified, that one has priority.
|
||||||
|
If you specify a number other than 2.0, the following processing is performed.
|
||||||
|
* First, repeat 2x enlargement to cover the specified magnification as necessary and sufficient.
|
||||||
|
* If a value other than a power of 2 is specified, the enlarged image will be reduced to the specified magnification.
|
||||||
|
|
||||||
|
### -w <integer>, --scale_width <integer>
|
||||||
|
Enlarges to the specified width while maintaining the aspect ratio of the image (in pixels).
|
||||||
|
If specified at the same time as scale_height, the image will be enlarged to have the specified width and height.
|
||||||
|
|
||||||
|
### -h <integer>, --scale_height <integer>
|
||||||
|
Enlarges to the specified height while maintaining the aspect ratio of the image (pixels).
|
||||||
|
If specified at the same time as scale_width, the image will be enlarged to have the specified width and height.
|
||||||
|
|
||||||
|
### -n <0|1|2|3>, --noise_level <0|1|2|3>
|
||||||
|
Specify the noise reduction level. As for the model for noise removal, only levels 0-3 are prepared, so
|
||||||
|
Please specify 0, 1 or 2 or 3.
|
||||||
|
The default value is `0`.
|
||||||
|
|
||||||
|
### -p <cpu|gpu|cudnn>, --process <cpu|gpu|cudnn>
|
||||||
|
Specifies the processor used for processing. The default value is `gpu`.
|
||||||
|
* cpu: Perform conversion using CPU.
|
||||||
|
* gpu: Convert using CUDA (GPU). For Windows version only, if cuDNN is available, use cuDNN.
|
||||||
|
* cudnn: Convert using cuDNN.
|
||||||
|
|
||||||
|
### -c <integer>, --crop_size <integer>
|
||||||
|
Specify the division size. The default value is `128`.
|
||||||
|
|
||||||
|
### -q <integer>, --output_quality <integer>
|
||||||
|
Set the image quality of the converted image. The default value is `-1`
|
||||||
|
The values that can be specified and their meanings depend on the format set in "Output extension".
|
||||||
|
If -1, the default value for each image format will be used.
|
||||||
|
|
||||||
|
### -d <integer>, --output_depth <integer>
|
||||||
|
Specify the number of bits per channel of the converted image. The default value is `8`.
|
||||||
|
The value that can be specified depends on the format set in "Output extension".
|
||||||
|
|
||||||
|
### -b <integer>, --batch_size <integer>
|
||||||
|
Specify the mini-batch size. The default value is `1`.
|
||||||
|
The mini-batch size is the number of blocks that the image is divided into by "division size" and processed at the same time. For example, if you specify `2`, it will be converted every 2 blocks.
|
||||||
|
When the mini-batch size is increased, the GPU usage rate increases as well as when the split size is increased, but if you feel it is measured, it is more effective to increase the split size.
|
||||||
|
(For example, if the split size is `64` and the mini-batch size is `4`, the split size is `128` and the mini-batch size is `1`.
|
||||||
|
|
||||||
|
### --gpu <int>
|
||||||
|
Specify the GPU device number used for processing. The default value is `0`.
|
||||||
|
Note that GPU device numbers start at 0.
|
||||||
|
Ignored if no GPU is used for processing.
|
||||||
|
If a GPU device number that does not exist is specified, it will be executed on the default GPU.
|
||||||
|
|
||||||
|
### -t <0|1>, --tta <0|1>
|
||||||
|
If you specify `1`, TTA mode is used. The default value is `0`.
|
||||||
|
|
||||||
|
### --, --ignore_rest
|
||||||
|
Ignores all options after this option is specified.
|
||||||
|
For script batch files.
|
||||||
|
|
||||||
|
|
||||||
|
Command line option (GUI version)
|
||||||
|
--------
|
||||||
|
|
||||||
|
In the GUI version, arguments that do not apply to the option specification are recognized as an input file.
|
||||||
|
Input files can be specified as files, folders, multiple files and folders at the same time.
|
||||||
|
|
||||||
|
### -o <string>, --output_folder <string>
|
||||||
|
Set the path to the folder where you want to save the converted images.
|
||||||
|
Save the converted file in the specified folder.
|
||||||
|
The conversion file naming convention is the same as the output file name that is automatically determined when the input file is set in the GUI.
|
||||||
|
If not specified, it will be saved in the same folder as the first input file.
|
||||||
|
|
||||||
|
### --auto_start <0|1>
|
||||||
|
If you specify `1`, the conversion will start automatically at startup.
|
||||||
|
|
||||||
|
### --auto_exit <0|1>
|
||||||
|
If you specify `1`, if conversion is successful at startup, it will end automatically if conversion is successful.
|
||||||
|
|
||||||
|
### --no_overwrite <0|1>
|
||||||
|
If you specify `1`, if there is a file with the same name in the image write destination, conversion will not be performed.
|
||||||
|
|
||||||
|
### -y <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y|upresnet10|cunet>, --model_type <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_net_net_up_art_rg_net_style_art_rg_net_art_rg_
|
||||||
|
Specify the model to use.
|
||||||
|
The setting item “Model” on the GUI and the following we respond.
|
||||||
|
* upconv_7_anime_style_art_rgb: 2D illustration (UpRGB model)
|
||||||
|
* upconv_7_photo :Photo/Anime (UpPhoto model)
|
||||||
|
* anime_style_art_rgb: 2D illustration (RGB model)
|
||||||
|
* photo: Photo/animation (Photo model)
|
||||||
|
* anime_style_art_y: 2D illustration (Y model)
|
||||||
|
* upresnet10: 2D illustration (UpResNet10 model)
|
||||||
|
* cunet: 2D illustration (CUnet model)
|
||||||
|
|
||||||
|
|
||||||
|
Command line option (CUI version)
|
||||||
|
--------
|
||||||
|
|
||||||
|
### --version
|
||||||
|
Print version information and exit.
|
||||||
|
|
||||||
|
### -?, --help
|
||||||
|
Display usage information and exit.
|
||||||
|
Please use when you want to check how to use it easily.
|
||||||
|
|
||||||
|
### -i <string>, --input_file <string>
|
||||||
|
(Required) Path to the image to convert
|
||||||
|
When a folder is specified, all image files under that folder will be converted and output to the folder specified by output_file.
|
||||||
|
|
||||||
|
### -o <string>, --output_file <string>
|
||||||
|
The path to the file where you want to save the converted image
|
||||||
|
(when input_file is a folder) Path to the folder to save the converted image
|
||||||
|
(When input_file is an image file) Be sure to enter the extension (such as .png at the end).
|
||||||
|
If not specified, the file name is automatically determined and saved in that file.
|
||||||
|
The file name determination rule is
|
||||||
|
`[original image file name] ``(model name) ``(mode name) ``(noise reduction level (in noise reduction mode)) ``(magnification ratio (in magnification mode))'' (output (Number of bits (other than 8 bits)) ``.output extension`
|
||||||
|
It looks like.
|
||||||
|
The location to save is basically the same directory as the input image.
|
||||||
|
|
||||||
|
### --model_dir <string>
|
||||||
|
Specify the path to the directory where the model is stored. The default value is `models/cunet`.
|
||||||
|
The following models are included as standard.
|
||||||
|
* `models/anime_style_art_rgb`: 2D illustration (RGB model)
|
||||||
|
* `models/anime_style_art`: 2D illustration (Y model)
|
||||||
|
* `models/photo`: Photo/animation (Photo model)
|
||||||
|
* `models/upconv_7_anime_style_art_rgb`: 2D illustration (UpRGB model)
|
||||||
|
* `models/upconv_7_photo` :Photo/Anime (UpPhoto model)
|
||||||
|
* `models/upresnet10`: 2D illustration (UpResNet10 model)
|
||||||
|
* `models/cunet`: 2D illustration (CUnet model)
|
||||||
|
* `models/ukbench`: Old-fashioned photographic model (only the enlarged model is included, noise removal is not possible)
|
||||||
|
Basically, you don't have to specify it. Please specify it when using a model other than the default model or your own model.
|
||||||
|
|
||||||
|
### --crop_w <int>
|
||||||
|
Specify the division size (width). If not set, the value of crop_size will be used.
|
||||||
|
If you specify the divisor of the width of the input image, conversion may be faster.
|
||||||
|
|
||||||
|
### --crop_h <integer>
|
||||||
|
Specify the division size (vertical width). If not set, the value of crop_size will be used.
|
||||||
|
If you specify a divisor of the height of the input image, conversion may be faster.
|
||||||
|
|
||||||
|
|
||||||
|
Division size
|
||||||
|
--------
|
||||||
|
|
||||||
|
waifu2x-caffe (also waifu2x) converts images.
|
||||||
|
The image is divided into pieces of a certain size, converted one by one, and finally combined into a single image.
|
||||||
|
The division size (crop_size) is the width (in pixels) when dividing this image.
|
||||||
|
|
||||||
|
If the GPU is not exhausted even if it is converted with CUDA (the usage of the GPU is not close to 100%),
|
||||||
|
If you increase this number, the process may end sooner. (Because the GPU can be used up)
|
||||||
|
Please adjust it while seeing GPU Load (GPU usage rate) and Memory Used (VRAM usage rate) with [GPU-Z](http://www.techpowerup.com/gpuz/).
|
||||||
|
Also, refer to the following characteristics.
|
||||||
|
|
||||||
|
* Larger numbers do not necessarily mean faster
|
||||||
|
* If the division size is a divisor (or a number with a small remainder when divided) of the vertical and horizontal size of the image, the amount of wasteful calculation decreases and the speed increases. (In some cases, it seems that the numerical value that does not apply to this condition is the fastest.)
|
||||||
|
* If you double the number, theoretically the amount of memory used will be 4 times (actually it is 3 to 4 times), so be careful not to drop the software. Especially, CUDA consumes much more memory than cuDNN, so be careful.
|
||||||
|
|
||||||
|
|
||||||
|
About images with alpha channel
|
||||||
|
--------
|
||||||
|
|
||||||
|
This software also supports enlargement of images with alpha channel.
|
||||||
|
However, please note that it takes about twice as long as the image without alpha channel is enlarged because the process is to enlarge the alpha channel by itself.
|
||||||
|
However, if the alpha channel is composed of a single color, it can be expanded in about the same time as it was without.
|
||||||
|
|
||||||
|
|
||||||
|
The format of language files
|
||||||
|
--------
|
||||||
|
|
||||||
|
Language files format is JSON.
|
||||||
|
If you create new language file, add language setting to'lang/LangList.txt'.
|
||||||
|
'lang/LangList.txt' format is TSV(Tab-Separated Values).
|
||||||
|
|
||||||
|
* LangName: Language name
|
||||||
|
* LangID: Primary language [See MSDN](https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693.aspx)
|
||||||
|
* SubLangID :Sublanguage [See MSDN](https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693.aspx)
|
||||||
|
* FileName: Language file name
|
||||||
|
|
||||||
|
ex.
|
||||||
|
|
||||||
|
* Japanese LangID: 0x11(LANG_JAPANESE), SubLangID: 0x01(SUBLANG_JAPANESE_JAPAN)
|
||||||
|
* English(US) LangID: 0x09(LANG_ENGLISH), SubLangID: 0x01(SUBLANG_ENGLISH_US)
|
||||||
|
* English(UK) LangID: 0x09(LANG_ENGLISH), SubLangID: 0x02(SUBLANG_ENGLISH_UK)
|
||||||
|
|
||||||
|
|
||||||
|
Note
|
||||||
|
------------
|
||||||
|
|
||||||
|
This software is not guaranteed safe.
|
||||||
|
Please use it at the discretion of the user.
|
||||||
|
The creator does not assume any obligation.
|
||||||
|
|
||||||
|
|
||||||
|
Acknowledgment
|
||||||
|
------
|
||||||
|
The original [waifu2x](https://github.com/nagadomi/waifu2x) and model were produced and published under the MIT license [ultraist](https://twitter.com/ultraistter) Mr.
|
||||||
|
Created [waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp) based on the original waifu2x [Amigo](https://twitter.com/WL_Amigo) Mr. (I used to refer to how to write README and LICENSE.txt, how to use OpenCV)
|
||||||
|
[waifu2x-chainer](https://github.com/tsurumeso/waifu2x-chainer) was created to create the original model, and it was published under the MIT license [tsurumeso](https:// github.com/tsurumeso)
|
||||||
|
will be grateful to.
|
||||||
|
Also, @paul70078 for translating the message into English, @yoonhakcher for translating the message into Simplified Chinese, @mzhboy for the pull request for Simplified Chinese translation,
|
||||||
|
@Kenin0726 for translating the message into Korean, @aruhirin for suggesting improvements to the Korean translation,
|
||||||
|
@Lizardon1995 for translating messages in Traditional Chinese, @yoonhakcher, @Scharynche for pull request for Turkish translation, @Serized for pull request for French translation, Brazilian Portuguese @Simrafael for pull request for translation, @AndreasWebdev for pull request for German translation, @07pepa for pull request for Czech translation, @07pepa for pull request for Italian translation,
|
||||||
|
Thanks to JYUNYA for providing the GUI version of the icon.
|
113
README.md
113
README.md
@ -1,4 +1,4 @@
|
|||||||
waifu2x-caffe (for Windows)
|
waifu2x-caffe (for Windows)
|
||||||
----------
|
----------
|
||||||
|
|
||||||
制作者 : lltcggie
|
制作者 : lltcggie
|
||||||
@ -7,7 +7,7 @@
|
|||||||
[Caffe](http://caffe.berkeleyvision.org/)を用いて書き直し、Windows向けにビルドしたソフトです。
|
[Caffe](http://caffe.berkeleyvision.org/)を用いて書き直し、Windows向けにビルドしたソフトです。
|
||||||
CPUで変換することも出来ますが、CUDA(あるいはcuDNN)を使うとCPUより高速に変換することが出来ます。
|
CPUで変換することも出来ますが、CUDA(あるいはcuDNN)を使うとCPUより高速に変換することが出来ます。
|
||||||
|
|
||||||
GUI supports English, Spanish, Japanese, Simplified Chinese, Traditional Chinese, Korean, Russian, Turkish, and French.
|
GUI supports English, Japanese, Simplified Chinese, Traditional Chinese, Korean, Turkish, Spanish, Russian, and French.
|
||||||
|
|
||||||
ソフトのダウンロードは[こちらのreleasesページ](https://github.com/lltcggie/waifu2x-caffe/releases)の「Downloads」の項で出来ます。
|
ソフトのダウンロードは[こちらのreleasesページ](https://github.com/lltcggie/waifu2x-caffe/releases)の「Downloads」の項で出来ます。
|
||||||
|
|
||||||
@ -19,84 +19,15 @@ GUI supports English, Spanish, Japanese, Simplified Chinese, Traditional Chinese
|
|||||||
|
|
||||||
* OS : Windows Vista以降 64bit (32bit用exeはありません)
|
* OS : Windows Vista以降 64bit (32bit用exeはありません)
|
||||||
* メモリ : 空きメモリ1GB以上 (ただし、変換する画像サイズによる)
|
* メモリ : 空きメモリ1GB以上 (ただし、変換する画像サイズによる)
|
||||||
* GPU : Compute Capability 2.0 以上のNVIDIA製GPU(CPUで変換する場合は不要)
|
* GPU : Compute Capability 3.5 以上のNVIDIA製GPU(CPUで変換する場合は不要)
|
||||||
* Visual C++ 2013 再頒布可能パッケージがインストールされていること(必須)
|
* Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3(x64版)がインストールされていること(必須)
|
||||||
- 上記パッケージは[こちら](https://www.microsoft.com/ja-jp/download/details.aspx?id=40784)
|
- 上記パッケージは[こちら](https://www.microsoft.com/ja-jp/download/details.aspx?id=53587)
|
||||||
- `ダウンロード` ボタンを押した後、`vcredist_x64.exe`を選択し、ダウンロード・インストールを行って下さい。
|
- `ダウンロード` ボタンを押した後、`vcredist_x64.exe`を選択し、ダウンロード・インストールを行って下さい。
|
||||||
- 見つからない場合は、「Visual C++ 2013 再頒布可能パッケージ」で検索してみて下さい。
|
- 見つからない場合は、「Visual C++ 2015 再頒布可能パッケージ Update 3」で検索してみて下さい。
|
||||||
|
|
||||||
cuDNNで変換する場合はさらに
|
|
||||||
|
|
||||||
* GPU : Compute Capability 3.0 以上のNVIDIA製GPU
|
|
||||||
|
|
||||||
自分のGPUのCompute Capabilityが知りたい場合は[こちらのページ](https://developer.nvidia.com/cuda-gpus)で調べて下さい。
|
自分のGPUのCompute Capabilityが知りたい場合は[こちらのページ](https://developer.nvidia.com/cuda-gpus)で調べて下さい。
|
||||||
|
|
||||||
|
|
||||||
cuDNNについて
|
|
||||||
--------
|
|
||||||
|
|
||||||
cuDNNはNVIDIA製GPUでのみつかえる高速な機械学習向けのライブラリです。
|
|
||||||
cuDNNを使わなくてもCUDAで変換出来ますが、cuDNNを使うと以下のような利点があります。
|
|
||||||
|
|
||||||
* 使用するGPUの種類によっては画像をより高速に変換することが出来る
|
|
||||||
* VRAMの使用量を減らすことが出来る(最低でもCUDAの半分未満。分割サイズが大きくなるほど差が開いていく)
|
|
||||||
|
|
||||||
このような利点があるcuDNNですが、ライセンスの関係上動作に必要なファイルを配布することが出来ません。
|
|
||||||
なので、cuDNNを使いたい人は[こちらのページ](https://developer.nvidia.com/cuDNN)でWindows向けバイナリ(v5.1 RC以降)をダウンロードし、
|
|
||||||
「cudnn64_7.dll」をwaifu2x-caffeのフォルダに入れて下さい。
|
|
||||||
なお、ソフトを起動している最中にdllを入れた場合はソフトを起動しなおしてください。
|
|
||||||
(cuDNNをダウンロードするにはNVIDIA Developerへの登録とCUDA Registered Developersへの登録が必要です。
|
|
||||||
CUDA Registered Developersはおそらく(簡単な)審査があるっぽいので登録してもすぐにcuDNNをダウンロード出来るわけではありません。)
|
|
||||||
|
|
||||||
作者の環境での処理速度、VRAM使用量の計測結果は以下の通りです。
|
|
||||||
|
|
||||||
* GPU : GTX 980 Ti
|
|
||||||
* VRAM : 6GB
|
|
||||||
* 処理内容 : 1000*1000のPNG 4ch画像でノイズ除去と拡大、JPEGノイズ除去レベル1、拡大率2.00、TTAモード未使用
|
|
||||||
* 処理時間計測方法 : CUI版で10回の平均処理時間を計測。ただし初めに2回事前に処理を行う(初期化にかかる時間を含めないようにするため)
|
|
||||||
* VRAM使用量計算方法 : (GUI版で処理中に使用した最大VRAM) - (GUI版を起動した後のVRAM使用量)
|
|
||||||
|
|
||||||
cuDNN RGBモデル
|
|
||||||
|
|
||||||
| 分割サイズ | 処理時間 | VRAM使用量(MB) |
|
|
||||||
|:-----------|:-------------|:-------------------|
|
|
||||||
| 100 | 00:00:03.170 | 278 |
|
|
||||||
| 125 | 00:00:02.745 | 279 |
|
|
||||||
| 200 | 00:00:02.253 | 365 |
|
|
||||||
| 250 | 00:00:02.147 | 446 |
|
|
||||||
| 500 | 00:00:01.982 | 1110 |
|
|
||||||
|
|
||||||
CUDA RGBモデル
|
|
||||||
|
|
||||||
| 分割サイズ | 処理時間 | VRAM使用量(MB) |
|
|
||||||
|:-----------|:-------------|:-------------------|
|
|
||||||
| 100 | 00:00:06.192 | 724 |
|
|
||||||
| 125 | 00:00:05.504 | 724 |
|
|
||||||
| 200 | 00:00:04.642 | 1556 |
|
|
||||||
| 250 | 00:00:04.436 | 2345 |
|
|
||||||
| 500 | 計測不能 | 計測不能(6144以上) |
|
|
||||||
|
|
||||||
cuDNN UpRGBモデル
|
|
||||||
|
|
||||||
| 分割サイズ | 処理時間 | VRAM使用量(MB) |
|
|
||||||
|:-----------|:-------------|:-------------------|
|
|
||||||
| 100 | 00:00:02.831 | 328 |
|
|
||||||
| 125 | 00:00:02.573 | 329 |
|
|
||||||
| 200 | 00:00:02.261 | 461 |
|
|
||||||
| 250 | 00:00:02.150 | 578 |
|
|
||||||
| 500 | 00:00:01.991 | 1554 |
|
|
||||||
|
|
||||||
CUDA UpRGBモデル
|
|
||||||
|
|
||||||
| 分割サイズ | 処理時間 | VRAM使用量(MB) |
|
|
||||||
|:-----------|:-------------|:-------------------|
|
|
||||||
| 100 | 00:00:03.669 | 788 |
|
|
||||||
| 125 | 00:00:03.382 | 787 |
|
|
||||||
| 200 | 00:00:02.965 | 1596 |
|
|
||||||
| 250 | 00:00:02.852 | 2345 |
|
|
||||||
| 500 | 計測不能 | 計測不能(6144以上) |
|
|
||||||
|
|
||||||
|
|
||||||
使い方(GUI版)
|
使い方(GUI版)
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@ -180,6 +111,8 @@ CUDA UpRGBモデル
|
|||||||
* 2次元イラスト(UpRGBモデル) : 2次元イラスト(RGBモデル)より高速かつ同等以上の画質で変換するモデル。ただしRGBモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
* 2次元イラスト(UpRGBモデル) : 2次元イラスト(RGBモデル)より高速かつ同等以上の画質で変換するモデル。ただしRGBモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
||||||
* 写真・アニメ(UpPhotoモデル) : 写真・アニメ(Photoモデル)より高速かつ同等以上の画質で変換するモデル。ただしPhotoモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
* 写真・アニメ(UpPhotoモデル) : 写真・アニメ(Photoモデル)より高速かつ同等以上の画質で変換するモデル。ただしPhotoモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
||||||
* 2次元イラスト(Yモデル) : 画像の輝度のみを変換する2次元イラスト用モデル
|
* 2次元イラスト(Yモデル) : 画像の輝度のみを変換する2次元イラスト用モデル
|
||||||
|
* 2次元イラスト(UpResNet10モデル) : 2次元イラスト(UpRGBモデル)より高画質で変換するモデル。このモデルは分割サイズが違うと出力結果が変わるので注意すること
|
||||||
|
* 2次元イラスト(CUnetモデル) : 2次元イラストを同梱のモデルで一番高画質で変換できるモデル。このモデルは分割サイズが違うと出力結果が変わるので注意すること
|
||||||
|
|
||||||
### 「TTAモードを使う」
|
### 「TTAモードを使う」
|
||||||
TTA(Test-Time Augmentation)モードを使うかどうかを指定します。
|
TTA(Test-Time Augmentation)モードを使うかどうかを指定します。
|
||||||
@ -195,6 +128,13 @@ CUDA UpRGBモデル
|
|||||||
下の方は「crop_size_list.txt」から読み出した汎用的な分割サイズです。
|
下の方は「crop_size_list.txt」から読み出した汎用的な分割サイズです。
|
||||||
分割サイズが大きすぎる場合、要求されるメモリの量(GPUを使う場合はVRAMの量)がPCで使用できるメモリを超えてソフトが強制終了するので気をつけてください。
|
分割サイズが大きすぎる場合、要求されるメモリの量(GPUを使う場合はVRAMの量)がPCで使用できるメモリを超えてソフトが強制終了するので気をつけてください。
|
||||||
処理速度にそれなりに影響するので、同じ画像サイズの画像をフォルダ指定で大量に変換するときは、最適な分割サイズを調べてから変換することをおすすめします。
|
処理速度にそれなりに影響するので、同じ画像サイズの画像をフォルダ指定で大量に変換するときは、最適な分割サイズを調べてから変換することをおすすめします。
|
||||||
|
ただし、モデルによっては分割サイズを変更すると出力結果が変わるものがあるので気を付けてください。
|
||||||
|
(その場合は分割サイズはデフォルトを使用し、バッチサイズを調整することで処理速度を上げることができます)
|
||||||
|
|
||||||
|
### 「バッチサイズ」
|
||||||
|
内部でまとめて処理を行う際のサイズを指定します。
|
||||||
|
バッチサイズを大きくすると処理速度が速くなることがあります。
|
||||||
|
分割サイズと同様に要求されるメモリの量がPCで使用できるメモリを超えないように気を付けてください。
|
||||||
|
|
||||||
## 動作設定
|
## 動作設定
|
||||||
あまり変更する機会がないと思われる動作設定をまとめた設定群です。
|
あまり変更する機会がないと思われる動作設定をまとめた設定群です。
|
||||||
@ -298,7 +238,7 @@ GUI版では入力ファイル以外のコマンドラインオプションを
|
|||||||
scale_widthかscale_heightが指定された場合、そちらが優先されます。
|
scale_widthかscale_heightが指定された場合、そちらが優先されます。
|
||||||
2.0以外の数値を指定すると、次のような処理を行います。
|
2.0以外の数値を指定すると、次のような処理を行います。
|
||||||
* まず、指定された倍率を必要十分にカバーするように、2倍拡大を繰り返し行います。
|
* まず、指定された倍率を必要十分にカバーするように、2倍拡大を繰り返し行います。
|
||||||
* 2の累乗以外の数値が指定されている場合は、指定倍率になるように拡大した画像を線形フィルタで縮小します。
|
* 2の累乗以外の数値が指定されている場合は、指定倍率になるように拡大した画像を縮小します。
|
||||||
|
|
||||||
### -w <整数>, --scale_width <整数>
|
### -w <整数>, --scale_width <整数>
|
||||||
画像の縦横比を維持したまま、指定された横幅になるように拡大します(単位はピクセル)。
|
画像の縦横比を維持したまま、指定された横幅になるように拡大します(単位はピクセル)。
|
||||||
@ -372,7 +312,7 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
|||||||
### --no_overwrite <0|1>
|
### --no_overwrite <0|1>
|
||||||
`1`を指定すると、画像の書き込み先に同名のファイルが存在する場合は変換を行いません。
|
`1`を指定すると、画像の書き込み先に同名のファイルが存在する場合は変換を行いません。
|
||||||
|
|
||||||
### -y <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y>, --model_type <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y>
|
### -y <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y|upresnet10|cunet>, --model_type <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y|upresnet10|cunet>
|
||||||
使用するモデルを指定します。
|
使用するモデルを指定します。
|
||||||
GUIでの設定項目「モデル」と以下のように対応しています。
|
GUIでの設定項目「モデル」と以下のように対応しています。
|
||||||
* upconv_7_anime_style_art_rgb : 2次元イラスト(UpRGBモデル)
|
* upconv_7_anime_style_art_rgb : 2次元イラスト(UpRGBモデル)
|
||||||
@ -380,6 +320,8 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
|||||||
* anime_style_art_rgb : 2次元イラスト(RGBモデル)
|
* anime_style_art_rgb : 2次元イラスト(RGBモデル)
|
||||||
* photo : 写真・アニメ(Photoモデル)
|
* photo : 写真・アニメ(Photoモデル)
|
||||||
* anime_style_art_y : 2次元イラスト(Yモデル)
|
* anime_style_art_y : 2次元イラスト(Yモデル)
|
||||||
|
* upresnet10 : 2次元イラスト(UpResNet10モデル)
|
||||||
|
* cunet : 2次元イラスト(CUnetモデル)
|
||||||
|
|
||||||
|
|
||||||
コマンドラインオプション(CUI版)
|
コマンドラインオプション(CUI版)
|
||||||
@ -407,13 +349,15 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
|||||||
保存される場所は、基本的には入力画像と同じディレクトリになります。
|
保存される場所は、基本的には入力画像と同じディレクトリになります。
|
||||||
|
|
||||||
### --model_dir <文字列>
|
### --model_dir <文字列>
|
||||||
モデルが格納されているディレクトリへのパスを指定します。デフォルト値は`models/upconv_7_anime_style_art_rgb`です。
|
モデルが格納されているディレクトリへのパスを指定します。デフォルト値は`models/cunet`です。
|
||||||
標準では以下のモデルが付属しています。
|
標準では以下のモデルが付属しています。
|
||||||
* `models/anime_style_art_rgb` : RGBすべてを変換する2次元画像用モデル
|
* `models/anime_style_art_rgb` : 2次元イラスト(RGBモデル)
|
||||||
* `models/anime_style_art` : 輝度のみを変換する2次元画像用モデル
|
* `models/anime_style_art` : 2次元イラスト(Yモデル)
|
||||||
* `models/photo` : RGBすべてを変換する写真、アニメ画像用モデル
|
* `models/photo` : 写真・アニメ(Photoモデル)
|
||||||
* `models/upconv_7_anime_style_art_rgb` : anime_style_art_rgbより高速かつ同等以上の画質で変換するモデル
|
* `models/upconv_7_anime_style_art_rgb` : 2次元イラスト(UpRGBモデル)
|
||||||
* `models/upconv_7_photo` : photoより高速かつ同等以上の画質で変換するモデル
|
* `models/upconv_7_photo` : 写真・アニメ(UpPhotoモデル)
|
||||||
|
* `models/upresnet10` : 2次元イラスト(UpResNet10モデル)
|
||||||
|
* `models/cunet` : 2次元イラスト(CUnetモデル)
|
||||||
* `models/ukbench` : 旧式の写真用モデル(拡大するモデルのみ付属しています。ノイズ除去は出来ません)
|
* `models/ukbench` : 旧式の写真用モデル(拡大するモデルのみ付属しています。ノイズ除去は出来ません)
|
||||||
基本的には指定しなくても大丈夫です。デフォルト以外のモデルや自作のモデルを使用する時などに指定して下さい。
|
基本的には指定しなくても大丈夫です。デフォルト以外のモデルや自作のモデルを使用する時などに指定して下さい。
|
||||||
|
|
||||||
@ -482,8 +426,9 @@ ex.
|
|||||||
------
|
------
|
||||||
オリジナルの[waifu2x](https://github.com/nagadomi/waifu2x)、及びモデルの制作を行い、MITライセンスの下で公開して下さった [ultraist](https://twitter.com/ultraistter)さん、
|
オリジナルの[waifu2x](https://github.com/nagadomi/waifu2x)、及びモデルの制作を行い、MITライセンスの下で公開して下さった [ultraist](https://twitter.com/ultraistter)さん、
|
||||||
オリジナルのwaifu2xを元に[waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp)を作成して下さった [アミーゴ](https://twitter.com/WL_Amigo)さん(READMEやLICENSE.txtの書き方、OpenCVの使い方等かなり参考にさせていただきました)
|
オリジナルのwaifu2xを元に[waifu2x-converter](https://github.com/WL-Amigo/waifu2x-converter-cpp)を作成して下さった [アミーゴ](https://twitter.com/WL_Amigo)さん(READMEやLICENSE.txtの書き方、OpenCVの使い方等かなり参考にさせていただきました)
|
||||||
|
[waifu2x-chainer](https://github.com/tsurumeso/waifu2x-chainer)を作成してオリジナルのモデルの制作を行い、MITライセンスの下で公開して下さった[tsurumeso](https://github.com/tsurumeso)さん
|
||||||
に、感謝します。
|
に、感謝します。
|
||||||
また、メッセージを英訳してくださった @paul70078 さん、メッセージを中国語(簡体字)に翻訳してくださった @yoonhakcher さん、中国語(簡体字)訳のプルリクエストを下さった @mzhboy さん、
|
また、メッセージを英訳してくださった @paul70078 さん、メッセージを中国語(簡体字)に翻訳してくださった @yoonhakcher さん、中国語(簡体字)訳のプルリクエストを下さった @mzhboy さん、
|
||||||
メッセージを韓国語に翻訳してくださった @kenin0726 さん、韓国語訳の改善を提案してくださった @aruhirin さん、
|
メッセージを韓国語に翻訳してくださった @kenin0726 さん、韓国語訳の改善を提案してくださった @aruhirin さん、
|
||||||
メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さん、トルコ語訳のプルリクエストを下さった @Scharynche さん、フランス語訳のプルリクエストを下さった @Serized さん、
|
メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さん、トルコ語訳のプルリクエストを下さった @Scharynche さん、フランス語訳のプルリクエストを下さった @Serized さん、ブラジルポルトガル語訳のプルリクエストを下さった @simrafael さん、ドイツ語訳のプルリクエストを下さった @AndreasWebdev さん、チェコ語訳のプルリクエストを下さった @07pepa さん、イタリア語訳のプルリクエストを下さった @AndryGabry01 さん、
|
||||||
GUI版のアイコンを提供してくださった JYUNYAさん に感謝します。
|
GUI版のアイコンを提供してくださった JYUNYAさん に感謝します。
|
||||||
|
63
appendix/check_diff_upresnet10.py
Normal file
63
appendix/check_diff_upresnet10.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import os
|
||||||
|
import os.path as osp
|
||||||
|
import sys
|
||||||
|
import google.protobuf as pb
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
import numpy as np
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
import caffe
|
||||||
|
from caffe.proto import caffe_pb2
|
||||||
|
|
||||||
|
sys.path.append('waifu2x-chainer')
|
||||||
|
from lib import srcnn
|
||||||
|
import chainer
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
caffe.set_mode_cpu()
|
||||||
|
|
||||||
|
model_name = 'UpResNet10'
|
||||||
|
model_dir = 'waifu2x-chainer/models/{}'.format(model_name.lower())
|
||||||
|
model_class = srcnn.archs[model_name]
|
||||||
|
|
||||||
|
for filename in os.listdir(model_dir):
|
||||||
|
basename, ext = os.path.splitext(filename)
|
||||||
|
if ext == '.npz':
|
||||||
|
model_path = os.path.join(model_dir, filename)
|
||||||
|
print(model_path)
|
||||||
|
channels = 3 if 'rgb' in filename else 1
|
||||||
|
model = model_class(channels)
|
||||||
|
chainer.serializers.load_npz(model_path, model)
|
||||||
|
|
||||||
|
model.to_cpu()
|
||||||
|
|
||||||
|
params = {}
|
||||||
|
for path, param in model.namedparams():
|
||||||
|
params[path] = param.array
|
||||||
|
|
||||||
|
net = caffe.Net('upresnet10_3.prototxt', caffe.TEST)
|
||||||
|
for key in net.params:
|
||||||
|
l = len(net.params[key])
|
||||||
|
net.params[key][0].data[...] = params[key + '/W']
|
||||||
|
if l >= 2:
|
||||||
|
net.params[key][1].data[...] = params[key + '/b']
|
||||||
|
|
||||||
|
input_data = np.empty(net.blobs['input'].data.shape, dtype=np.float32)
|
||||||
|
input_data[...] = np.random.random_sample(net.blobs['input'].data.shape)
|
||||||
|
|
||||||
|
net.blobs['input'].data[...] = input_data
|
||||||
|
ret = net.forward()
|
||||||
|
|
||||||
|
input_data = np.empty(net.blobs['input'].data.shape, dtype=np.float32)
|
||||||
|
input_data[...] = np.random.random_sample(net.blobs['input'].data.shape)
|
||||||
|
|
||||||
|
net.blobs['input'].data[...] = input_data
|
||||||
|
ret = net.forward()
|
||||||
|
|
||||||
|
batch_y = model(input_data)
|
||||||
|
print(batch_y.array - ret['/conv_post'])
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
caffe.init_log(3)
|
||||||
|
main()
|
61
appendix/gen_caffemodel_upresnet10.py
Normal file
61
appendix/gen_caffemodel_upresnet10.py
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
import os
|
||||||
|
import os.path as osp
|
||||||
|
import sys
|
||||||
|
import google.protobuf as pb
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
import numpy as np
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
import caffe
|
||||||
|
from caffe.proto import caffe_pb2
|
||||||
|
|
||||||
|
sys.path.append('waifu2x-chainer')
|
||||||
|
from lib import srcnn
|
||||||
|
import chainer
|
||||||
|
|
||||||
|
fname_convert_table = {
|
||||||
|
'anime_style_noise0_scale_rgb': 'noise0_scale2.0x_model',
|
||||||
|
'anime_style_noise1_scale_rgb': 'noise1_scale2.0x_model',
|
||||||
|
'anime_style_noise2_scale_rgb': 'noise2_scale2.0x_model',
|
||||||
|
'anime_style_noise3_scale_rgb': 'noise3_scale2.0x_model',
|
||||||
|
'anime_style_scale_rgb': 'scale2.0x_model',
|
||||||
|
}
|
||||||
|
|
||||||
|
def main():
|
||||||
|
caffe.set_mode_cpu()
|
||||||
|
|
||||||
|
model_name = 'UpResNet10'
|
||||||
|
model_dir = 'waifu2x-chainer/models/{}'.format(model_name.lower())
|
||||||
|
model_class = srcnn.archs[model_name]
|
||||||
|
|
||||||
|
for filename in os.listdir(model_dir):
|
||||||
|
basename, ext = os.path.splitext(filename)
|
||||||
|
if ext == '.npz':
|
||||||
|
model_path = os.path.join(model_dir, filename)
|
||||||
|
print(model_path)
|
||||||
|
channels = 3 if 'rgb' in filename else 1
|
||||||
|
model = model_class(channels)
|
||||||
|
size = 64 + model.offset
|
||||||
|
data = np.zeros((1, channels, size, size), dtype=np.float32)
|
||||||
|
x = chainer.Variable(data)
|
||||||
|
chainer.serializers.load_npz(model_path, model)
|
||||||
|
|
||||||
|
params = {}
|
||||||
|
for path, param in model.namedparams():
|
||||||
|
params[path] = param.array
|
||||||
|
|
||||||
|
net = caffe.Net('upresnet10_3.prototxt', caffe.TEST)
|
||||||
|
for key in net.params:
|
||||||
|
l = len(net.params[key])
|
||||||
|
net.params[key][0].data[...] = params[key + '/W']
|
||||||
|
if l >= 2:
|
||||||
|
net.params[key][1].data[...] = params[key + '/b']
|
||||||
|
|
||||||
|
prototxt_path = '{}.prototxt'.format(fname_convert_table[basename])
|
||||||
|
caffemodel_path = '{}.json.caffemodel'.format(fname_convert_table[basename])
|
||||||
|
net.save(caffemodel_path)
|
||||||
|
shutil.copy('upresnet10_3.prototxt', prototxt_path)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
caffe.init_log(3)
|
||||||
|
main()
|
251
appendix/gen_prototxt_upresnet10.py
Normal file
251
appendix/gen_prototxt_upresnet10.py
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
import os
|
||||||
|
import os.path as osp
|
||||||
|
import sys
|
||||||
|
import google.protobuf as pb
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
import caffe
|
||||||
|
from caffe.proto import caffe_pb2
|
||||||
|
|
||||||
|
|
||||||
|
def _get_include(phase):
|
||||||
|
inc = caffe_pb2.NetStateRule()
|
||||||
|
if phase == 'train':
|
||||||
|
inc.phase = caffe_pb2.TRAIN
|
||||||
|
elif phase == 'test':
|
||||||
|
inc.phase = caffe_pb2.TEST
|
||||||
|
else:
|
||||||
|
raise ValueError("Unknown phase {}".format(phase))
|
||||||
|
return inc
|
||||||
|
|
||||||
|
|
||||||
|
def _get_param(num_param):
|
||||||
|
if num_param == 1:
|
||||||
|
# only weight
|
||||||
|
param = caffe_pb2.ParamSpec()
|
||||||
|
param.lr_mult = 1
|
||||||
|
param.decay_mult = 1
|
||||||
|
return [param]
|
||||||
|
elif num_param == 2:
|
||||||
|
# weight and bias
|
||||||
|
param_w = caffe_pb2.ParamSpec()
|
||||||
|
param_w.lr_mult = 1
|
||||||
|
param_w.decay_mult = 1
|
||||||
|
param_b = caffe_pb2.ParamSpec()
|
||||||
|
param_b.lr_mult = 2
|
||||||
|
param_b.decay_mult = 0
|
||||||
|
return [param_w, param_b]
|
||||||
|
else:
|
||||||
|
raise ValueError("Unknown num_param {}".format(num_param))
|
||||||
|
|
||||||
|
|
||||||
|
def Input(name, top, shape):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'Input'
|
||||||
|
layer.top.append(top)
|
||||||
|
blobShape = layer.input_param.shape.add()
|
||||||
|
blobShape.dim.extend(shape)
|
||||||
|
return layer
|
||||||
|
|
||||||
|
def Conv(name, bottom, num_output, kernel_size, stride = 1, pad = 0, nobias = False):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'Convolution'
|
||||||
|
layer.bottom.extend([bottom])
|
||||||
|
layer.top.extend([name])
|
||||||
|
layer.convolution_param.num_output = num_output
|
||||||
|
layer.convolution_param.kernel_size.extend([kernel_size])
|
||||||
|
layer.convolution_param.stride.extend([stride])
|
||||||
|
layer.convolution_param.pad.extend([pad])
|
||||||
|
layer.convolution_param.weight_filler.type = 'msra'
|
||||||
|
layer.convolution_param.bias_term = not(nobias)
|
||||||
|
layer.param.extend(_get_param(1 if nobias else 2))
|
||||||
|
return layer
|
||||||
|
|
||||||
|
def DeConv(name, bottom, num_output, kernel_size, stride = 1, pad = 0, nobias = False):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'Deconvolution'
|
||||||
|
layer.bottom.extend([bottom])
|
||||||
|
layer.top.extend([name])
|
||||||
|
layer.convolution_param.num_output = num_output
|
||||||
|
layer.convolution_param.kernel_size.extend([kernel_size])
|
||||||
|
layer.convolution_param.stride.extend([stride])
|
||||||
|
layer.convolution_param.pad.extend([pad])
|
||||||
|
layer.convolution_param.weight_filler.type = 'msra'
|
||||||
|
layer.convolution_param.bias_term = not(nobias)
|
||||||
|
layer.param.extend(_get_param(1 if nobias else 2))
|
||||||
|
return layer
|
||||||
|
|
||||||
|
|
||||||
|
def Sigmoid(name, bottom):
|
||||||
|
top_name = name + '_sigmoid'
|
||||||
|
# ReLU
|
||||||
|
sigmoid_layer = caffe_pb2.LayerParameter()
|
||||||
|
sigmoid_layer.name = name + '_sigmoid'
|
||||||
|
sigmoid_layer.type = 'Sigmoid'
|
||||||
|
sigmoid_layer.bottom.extend([bottom])
|
||||||
|
sigmoid_layer.top.extend([top_name])
|
||||||
|
return sigmoid_layer
|
||||||
|
|
||||||
|
|
||||||
|
def Relu(name, bottom):
|
||||||
|
top_name = name + '_relu'
|
||||||
|
# ReLU
|
||||||
|
relu_layer = caffe_pb2.LayerParameter()
|
||||||
|
relu_layer.name = name + '_relu'
|
||||||
|
relu_layer.type = 'ReLU'
|
||||||
|
relu_layer.bottom.extend([bottom])
|
||||||
|
relu_layer.top.extend([top_name])
|
||||||
|
return relu_layer
|
||||||
|
|
||||||
|
|
||||||
|
def LeakyRelu(name, bottom, negative_slope):
|
||||||
|
top_name = name + '_relu'
|
||||||
|
# LeakyRelu
|
||||||
|
relu_layer = caffe_pb2.LayerParameter()
|
||||||
|
relu_layer.name = name + '_relu'
|
||||||
|
relu_layer.type = 'ReLU'
|
||||||
|
relu_layer.relu_param.negative_slope = negative_slope
|
||||||
|
relu_layer.bottom.extend([bottom])
|
||||||
|
relu_layer.top.extend([top_name])
|
||||||
|
return relu_layer
|
||||||
|
|
||||||
|
|
||||||
|
def ConvLeakyRelu(name, bottom, num_output, kernel_size, stride = 1, pad = 0, negative_slope = 0.1):
|
||||||
|
layers = []
|
||||||
|
layers.append(Conv(name, bottom, num_output, kernel_size, stride, pad))
|
||||||
|
layers.append(LeakyRelu(name, layers[-1].top[0], negative_slope))
|
||||||
|
return layers
|
||||||
|
|
||||||
|
|
||||||
|
def GlobalAvgPool(name, bottom, stride = 1, pad = 0):
|
||||||
|
top_name = name + '_globalavgpool'
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name + '_globalavgpool'
|
||||||
|
layer.type = 'Pooling'
|
||||||
|
layer.bottom.extend([bottom])
|
||||||
|
layer.top.extend([top_name])
|
||||||
|
layer.pooling_param.pool = caffe_pb2.PoolingParameter.AVE
|
||||||
|
layer.pooling_param.stride = stride
|
||||||
|
layer.pooling_param.pad = pad
|
||||||
|
layer.pooling_param.global_pooling = True
|
||||||
|
layer.pooling_param.engine = caffe_pb2.PoolingParameter.CAFFE
|
||||||
|
return layer
|
||||||
|
|
||||||
|
|
||||||
|
def Linear(name, bottom, num_output):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'InnerProduct'
|
||||||
|
layer.bottom.extend([bottom])
|
||||||
|
layer.top.extend([name])
|
||||||
|
layer.inner_product_param.num_output = num_output
|
||||||
|
layer.inner_product_param.weight_filler.type = 'msra'
|
||||||
|
layer.inner_product_param.bias_filler.value = 0
|
||||||
|
layer.param.extend(_get_param(2))
|
||||||
|
return layer
|
||||||
|
|
||||||
|
|
||||||
|
def Crop(name, bottom, crop_size):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'CropCenter'
|
||||||
|
layer.bottom.extend([bottom])
|
||||||
|
layer.top.extend([name])
|
||||||
|
layer.crop_center_param.crop_size.extend(crop_size)
|
||||||
|
return layer
|
||||||
|
|
||||||
|
def Add(name, bottoms):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'Eltwise'
|
||||||
|
layer.bottom.extend(bottoms)
|
||||||
|
layer.top.extend([name])
|
||||||
|
return layer
|
||||||
|
|
||||||
|
def Axpy(name, bottoms):
|
||||||
|
layer = caffe_pb2.LayerParameter()
|
||||||
|
layer.name = name
|
||||||
|
layer.type = 'Axpy'
|
||||||
|
layer.bottom.extend(bottoms)
|
||||||
|
layer.top.extend([name])
|
||||||
|
return layer
|
||||||
|
|
||||||
|
|
||||||
|
def SEResBlock(name, bottom, in_channels, out_channels, r=16, slope=0.1):
|
||||||
|
layers = []
|
||||||
|
res_bottom = bottom
|
||||||
|
|
||||||
|
layers.extend(ConvLeakyRelu(name + '/conv1', res_bottom, out_channels, 3, 1, 0, slope))
|
||||||
|
layers.extend(ConvLeakyRelu(name + '/conv2', layers[-1].top[0], out_channels, 3, 1, 0, slope))
|
||||||
|
h = layers[-1].top[0]
|
||||||
|
|
||||||
|
layers.append(GlobalAvgPool(name + '/fc1', h))
|
||||||
|
layers.append(Linear(name + '/fc1', layers[-1].top[0], out_channels // r))
|
||||||
|
layers.append(Relu(name + '/fc1', layers[-1].top[0]))
|
||||||
|
|
||||||
|
layers.append(Linear(name + '/fc2', layers[-1].top[0], out_channels))
|
||||||
|
layers.append(Sigmoid(name + '/fc2', layers[-1].top[0]))
|
||||||
|
se = layers[-1].top[0]
|
||||||
|
|
||||||
|
layers.append(Crop(name + '/crop', res_bottom, [0, 0, 2, 2]))
|
||||||
|
x = layers[-1].top[0]
|
||||||
|
|
||||||
|
if in_channels != out_channels:
|
||||||
|
layers.extend(ConvLeakyRelu(name + '/conv_bridge', x, out_channels, 3, 1, 0, slope))
|
||||||
|
x = layers[-1].top[0]
|
||||||
|
|
||||||
|
# h * se + x
|
||||||
|
layers.append(Axpy(name + '/axpy', [se, h, x]))
|
||||||
|
return layers
|
||||||
|
|
||||||
|
|
||||||
|
def create_model(ch):
|
||||||
|
model = caffe_pb2.NetParameter()
|
||||||
|
model.name = 'UpResNet10_{}'.format(ch)
|
||||||
|
layers = []
|
||||||
|
|
||||||
|
layers.append(Input('data', 'input', [1, ch, 90, 90]))
|
||||||
|
|
||||||
|
layers.extend(ConvLeakyRelu('/conv_pre', layers[-1].top[0], 64, 3, 1, 0, 0.1))
|
||||||
|
skip = layers[-1].top[0]
|
||||||
|
|
||||||
|
layers.extend(SEResBlock('/res1', layers[-1].top[0], 64, 64, 4))
|
||||||
|
layers.extend(SEResBlock('/res2', layers[-1].top[0], 64, 64, 4))
|
||||||
|
layers.extend(SEResBlock('/res3', layers[-1].top[0], 64, 64, 4))
|
||||||
|
layers.extend(SEResBlock('/res4', layers[-1].top[0], 64, 64, 4))
|
||||||
|
layers.extend(SEResBlock('/res5', layers[-1].top[0], 64, 64, 4))
|
||||||
|
|
||||||
|
layers.extend(ConvLeakyRelu('/conv_bridge', layers[-1].top[0], 64, 3, 1, 0, 0.1))
|
||||||
|
h = layers[-1].top[0]
|
||||||
|
|
||||||
|
layers.append(Crop('/crop', skip, [0, 0, 11, 11]))
|
||||||
|
skip = layers[-1].top[0]
|
||||||
|
|
||||||
|
layers.append(Add('/add', [h, skip]))
|
||||||
|
|
||||||
|
layers.append(DeConv('/conv_post', layers[-1].top[0], ch, 4, 2, 3, True))
|
||||||
|
|
||||||
|
model.layer.extend(layers)
|
||||||
|
return model
|
||||||
|
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
model = create_model(args.ch)
|
||||||
|
if args.output is None:
|
||||||
|
args.output = osp.join(osp.dirname(__file__),
|
||||||
|
'upresnet10_{}.prototxt'.format(args.ch))
|
||||||
|
with open(args.output, 'w') as f:
|
||||||
|
f.write(pb.text_format.MessageToString(model))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = ArgumentParser()
|
||||||
|
parser.add_argument('--ch', type=int, default=3,
|
||||||
|
choices=[1, 3])
|
||||||
|
parser.add_argument('-o', '--output', type=str)
|
||||||
|
args = parser.parse_args()
|
||||||
|
main(args)
|
@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"输入和输出设置",
|
"IDC_STATIC_IO_SETTING":"输入和输出设置",
|
||||||
"IDC_STATIC_INPUT_PATH":"输入\r\n(文件或文件夹)",
|
"IDC_STATIC_INPUT_PATH":"输入路径\r\n(文件或文件夹)",
|
||||||
"IDC_BUTTON_INPUT_REF":"浏览...",
|
"IDC_BUTTON_INPUT_REF":"浏览...",
|
||||||
"IDC_STATIC_OUTPUT_PATH":"输出",
|
"IDC_STATIC_OUTPUT_PATH":"输出路径",
|
||||||
"IDC_STATIC_TANS_EXT_LIST":"文件夹内进行转换的格式",
|
"IDC_STATIC_TANS_EXT_LIST":"文件夹内进行转换的文件格式",
|
||||||
"IDC_STATIC_OUTPUT_EXT":"输出格式",
|
"IDC_STATIC_OUTPUT_EXT":"输出文件格式",
|
||||||
"IDC_STATIC_OUTPUT_QUALITY":"输出图像质量",
|
"IDC_STATIC_OUTPUT_QUALITY":"输出图像质量",
|
||||||
"IDC_STATIC_OUTPUT_DEPTH":"输出色彩深度",
|
"IDC_STATIC_OUTPUT_DEPTH":"输出色彩深度",
|
||||||
"IDC_STATIC_AUTO_START":"输入文件后自动开始转换",
|
"IDC_STATIC_AUTO_START":"输入文件后自动开始转换",
|
||||||
"IDC_RADIO_AUTO_START_NONE":"不启用",
|
"IDC_RADIO_AUTO_START_NONE":"不启用",
|
||||||
"IDC_RADIO_AUTO_START_ONE":"输入单个文件时启用",
|
"IDC_RADIO_AUTO_START_ONE":"输入单个文件时启用",
|
||||||
"IDC_RADIO_AUTO_START_MULTI":"输入文件夹或多个文件时启用",
|
"IDC_RADIO_AUTO_START_MULTI":"输入文件夹或多个文件时启用",
|
||||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"质量和处理设置",
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"转换质量和处理设置",
|
||||||
"IDC_STATIC_TRANS_MODE":"转换模式",
|
"IDC_STATIC_TRANS_MODE":"转换模式",
|
||||||
"IDC_RADIO_MODE_NOISE_SCALE":"降噪和放大",
|
"IDC_RADIO_MODE_NOISE_SCALE":"降噪和放大",
|
||||||
"IDC_RADIO_MODE_SCALE":"仅放大",
|
"IDC_RADIO_MODE_SCALE":"仅放大",
|
||||||
@ -31,70 +31,75 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"2D 插图 — RGB 模型",
|
"IDC_RADIO_MODEL_RGB":"2D 插图 — RGB 模型",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"照片或动画 — Photo 模型",
|
"IDC_RADIO_MODEL_PHOTO":"照片或动画 — Photo 模型",
|
||||||
"IDC_RADIO_MODEL_Y":"2D 插图 — Y 模型",
|
"IDC_RADIO_MODEL_Y":"2D 插图 — Y 模型",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2D 插图 — UpResNet10 模型",
|
||||||
"IDC_CHECK_TTA":"TTA 模式",
|
"IDC_CHECK_TTA":"TTA 模式",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"处理速度设置",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"处理速度设置",
|
||||||
"IDC_STATIC_PROCESSOR":"处理器",
|
"IDC_STATIC_PROCESSOR":"处理器",
|
||||||
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 优先)",
|
"IDC_RADIO_MODE_GPU":"CUDA (优先使用 cuDNN)",
|
||||||
"IDC_RADIO_MODE_CPU":"CPU",
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
"IDC_STATIC_CROP_SIZE":"拆分大小",
|
"IDC_STATIC_CROP_SIZE":"拆分尺寸",
|
||||||
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 检查",
|
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 检查...",
|
||||||
"IDC_BUTTON_CANCEL":"取消",
|
"IDC_BUTTON_CANCEL":"取消",
|
||||||
"IDC_BUTTON_EXEC":"开始",
|
"IDC_BUTTON_EXEC":"开始",
|
||||||
"IDC_STATIC_LANG_UI":"界面语言",
|
"IDC_STATIC_LANG_UI":"界面语言",
|
||||||
"IDC_BUTTON_OUTPUT_REF":"浏览...",
|
"IDC_BUTTON_OUTPUT_REF":"浏览...",
|
||||||
"IDC_BUTTON_APP_SETTING":"应用设置...",
|
"IDC_BUTTON_APP_SETTING":"应用设置...",
|
||||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"重设输出路径",
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"重设输出文件夹",
|
||||||
"IDC_STATIC_ARG_START":"带参数的启动设置",
|
"IDC_STATIC_ARG_START":"启动参数",
|
||||||
"IDC_CHECK_ARG_START_AUTO":"启动时开始转换",
|
"IDC_CHECK_ARG_START_AUTO":"启动时开始转换",
|
||||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"成功后自动退出",
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"成功后自动退出",
|
||||||
"IDC_STATIC_INPUT_DIR_FIX":"默认输入文件夹",
|
"IDC_STATIC_INPUT_DIR_FIX":"默认输入文件夹",
|
||||||
"IDC_STATIC_OUTPUT_DIR_FIX":"默认输出文件夹",
|
"IDC_STATIC_OUTPUT_DIR_FIX":"默认输出文件夹",
|
||||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"输出文件不覆盖",
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"输出时不覆盖同名文件",
|
||||||
"MessageUseProcessorMode":"使用的处理模式: %s",
|
"MessageUseProcessorMode":"使用的处理模式: %s",
|
||||||
"MessageProcessTime":"处理时间: %02d:%02d:%02d.%03d",
|
"MessageProcessTime":"处理时间: %02d:%02d:%02d.%03d",
|
||||||
"MessageInitTime":"初始化时间: %02d:%02d:%02d.%03d",
|
"MessageInitTime":"初始化时间: %02d:%02d:%02d.%03d",
|
||||||
"MessagecuDNNCheckTime":"cuDNN 检查时间: %02d:%02d:%02d.%03d",
|
"MessagecuDNNCheckTime":"cuDNN 检查时间: %02d:%02d:%02d.%03d",
|
||||||
"MessageTitleError":"错误",
|
"MessageTitleError":"错误",
|
||||||
"MessageScaleRateCheckError":"放大倍率必须大于 0 的正数",
|
"MessageScaleRateCheckError":"放大倍率必须是大于 0.0 的正数",
|
||||||
"MessageScaleWidthCheckError":"放大尺寸必须大于 0 的正数",
|
"MessageScaleWidthCheckError":"放大尺寸必须是大于 0 的整数",
|
||||||
"MessageCropSizeCheckError":"拆分大小必须大于 0 的正数",
|
"MessageCropSizeCheckError":"拆分尺寸必须是大于 0 的整数",
|
||||||
"MessageInputPathCheckError":"请设置输入路径",
|
"MessageInputPathCheckError":"请设置输入路径",
|
||||||
"MessageOutputPathCheckError":"请设置输出路径",
|
"MessageOutputPathCheckError":"请设置输出路径",
|
||||||
"MessageOutputExtCheckError":"请设置输出格式",
|
"MessageOutputExtCheckError":"请设置输出文件格式",
|
||||||
"MessageInputCheckError":"输入或输出路径不存在",
|
"MessageInputCheckError":"输入的文件或文件夹不存在",
|
||||||
"MessageOutputExtentionCheckError":"请选择输出格式",
|
"MessageOutputExtentionCheckError":"请选择输出格式",
|
||||||
"MessageOutputQualityCheckError":"输出图像质量过大",
|
"MessageOutputQualityCheckError":"输出图像质量的值超出范围",
|
||||||
"MessageOutputDepthCheckError":"输出图像色彩深度数值不正确",
|
"MessageOutputDepthCheckError":"输出色彩深度数值无效",
|
||||||
"MessageCudaNotFindError":"使用 GPU 转换失败。\r\n可能是因为没有安装可调用的 CUDA 驱动。\r\n请安装驱动。",
|
"MessageCudaNotFindError":"无法使用 GPU 转换。\r\n可能是因为没有安装有效的 CUDA 驱动。\r\n请安装驱动。",
|
||||||
"MessageCudaOldVersionError":"使用 GPU 转换失败。\r\n可能是因为安装的 CUDA 驱动太旧。\r\n请更新驱动。",
|
"MessageCudaOldVersionError":"无法使用 GPU 转换。\r\n可能是因为安装的 CUDA 驱动版本过旧。\r\n请更新驱动。",
|
||||||
"MessageTransSuccess":"转换成功",
|
"MessageTransSuccess":"转换成功",
|
||||||
"MessageErrorHappen":"发生错误",
|
"MessageErrorHappen":"发生错误",
|
||||||
"MessageCreateOutDirError":"输出目录\r\n「%s」\r\n创建失败",
|
"MessageCreateOutDirError":"输出文件夹\r\n「%s」\r\n创建失败",
|
||||||
"MessageCancelError":"已经取消",
|
"MessageCancelError":"转换被取消",
|
||||||
"MessageInvalidParameterError":"参数无效",
|
"MessageInvalidParameterError":"参数无效",
|
||||||
"MessageFailedOpenModelFileError":"模型文件无法打开",
|
"MessageFailedOpenModelFileError":"模型文件无法打开",
|
||||||
"MessageFailedParseModelFileError":"模型文件已损坏",
|
"MessageFailedParseModelFileError":"模型文件已损坏",
|
||||||
"MessageFailedConstructModelError":"无法构建模型",
|
"MessageFailedConstructModelError":"构建网络失败",
|
||||||
"MessageFailedOpenInputFileError":"无法打开输入文件「%s」",
|
"MessageFailedOpenInputFileError":"无法打开输入文件「%s」",
|
||||||
"MessageFailedOpenOutputFileError":"无法输出文件「%s」",
|
"MessageFailedOpenOutputFileError":"无法保存输出文件「%s」",
|
||||||
"MessageFailedProcessCaffeError":"插值处理失败",
|
"MessageFailedProcessCaffeError":"插值处理失败",
|
||||||
"MessageTitleResult":"结果",
|
"MessageTitleResult":"结果",
|
||||||
"MessagecuDNNOK":"可以使用 cuDNN。",
|
"MessagecuDNNOK":"可以使用 cuDNN。",
|
||||||
"MessagecuDNNNotFindError":"调用 cuDNN 失败。\r\n没有发现「%s」。",
|
"MessagecuDNNNotFindError":"无法使用 cuDNN。\r\n找不到「%s」。",
|
||||||
"MessagecuDNNOldVersionError":"调用 cuDNN 失败。\r\n「%s」版本太旧。请使用 %s。",
|
"MessagecuDNNOldVersionError":"无法使用 cuDNN。\r\n「%s」的版本过旧。请使用 %s。",
|
||||||
"MessagecuDNNCannotCreateError":"调用 cuDNN 失败。\r\n初始化 cuDNN 失败。",
|
"MessagecuDNNCannotCreateError":"无法使用 cuDNN。\r\ncuDNN 无法初始化。",
|
||||||
"MessagecuDNNDefautlError":"调用 cuDNN 失败",
|
"MessagecuDNNDefautlError":"无法使用 cuDNN",
|
||||||
"MessageExtStr":"输入文件扩展名 (%s)",
|
"MessageExtStr":"自定义文件 (%s)",
|
||||||
"MessageAllFileFolder":"所有文件和文件夹 (.)",
|
"MessageAllFileFolder":"所有文件 (*.*)",
|
||||||
"MessageTitleInputDialog":"请选择输入文件或文件夹",
|
"MessageTitleInputDialog":"请选择文件或文件夹",
|
||||||
"MessageTimeLeftUnknown":"估计剩余时间: 未知",
|
"MessageTimeLeftUnknown":"估计剩余时间: 未知",
|
||||||
"MessageTimeLeft":"估计剩余时间",
|
"MessageTimeLeft":"估计剩余时间",
|
||||||
"MessageNoOverwrite":"此位置已经包含同名文件: %s",
|
"MessageNoOverwrite":"此位置已经包含同名文件: %s",
|
||||||
"MessageCudaOldDeviceError":"CUDA 组件版本太旧。\r\n请使用 rnCompute Capability 2.0 以上版本。",
|
"MessageCudaOldDeviceError":"CUDA 设备过旧。\r\n请使用 Compute Capability (计算能力) 2.0 以上的设备。",
|
||||||
"OK":"确定",
|
"OK":"确定",
|
||||||
"Cancel":"取消",
|
"Cancel":"取消",
|
||||||
"IDC_STATIC_USE_GPU_NO":"使用GPU No.",
|
"IDC_STATIC_USE_GPU_NO":"使用的 GPU No.",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 插图 — UpRGB 模型",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 插图 — UpRGB 模型",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"照片或动画 — UpPhoto 模型",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"照片或动画 — UpPhoto 模型",
|
||||||
"MessageLogFatalError":"发生了致命错误。\r\n分割尺寸可能过大。"
|
"MessageLogFatalError":"发生了致命错误。\r\n拆分尺寸可能过大。",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"批尺寸",
|
||||||
|
"MessageBatchSizeCheckError":"批尺寸必须是大于 0 的整数",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2D 插图 — CUnet 模型",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"这个模组的拆分尺寸必须是 %d 的正整数倍"
|
||||||
}
|
}
|
||||||
|
@ -24,12 +24,13 @@
|
|||||||
"IDC_RADIONOISE_LEVEL3":"等級 3",
|
"IDC_RADIONOISE_LEVEL3":"等級 3",
|
||||||
"IDC_STATIC_SCALE_RATE":"放大倍率",
|
"IDC_STATIC_SCALE_RATE":"放大倍率",
|
||||||
"IDC_RADIO_SCALE_RATIO":"比例設定",
|
"IDC_RADIO_SCALE_RATIO":"比例設定",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"轉換高度設定",
|
"IDC_RADIO_SCALE_WIDTH":"轉換寬度設定",
|
||||||
"IDC_RADIO_SCALE_HEIGHT":"轉換寬度設定",
|
"IDC_RADIO_SCALE_HEIGHT":"轉換高度設定",
|
||||||
"IDC_STATIC_MODEL":"模組",
|
"IDC_STATIC_MODEL":"模組",
|
||||||
"IDC_RADIO_MODEL_RGB":"二次元插圖(RGB 模式)",
|
"IDC_RADIO_MODEL_RGB":"二次元插圖(RGB 模式)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"照片和動畫(Photo 模式)",
|
"IDC_RADIO_MODEL_PHOTO":"照片和動畫(Photo 模式)",
|
||||||
"IDC_RADIO_MODEL_Y":"二次元插圖(Y 模式)",
|
"IDC_RADIO_MODEL_Y":"二次元插圖(Y 模式)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"二次元插圖(UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"使用 TTA 模式",
|
"IDC_CHECK_TTA":"使用 TTA 模式",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"處理速度設定",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"處理速度設定",
|
||||||
"IDC_STATIC_PROCESSOR":"使用處理器",
|
"IDC_STATIC_PROCESSOR":"使用處理器",
|
||||||
@ -95,5 +96,6 @@
|
|||||||
"IDC_STATIC_USE_GPU_NO":"使用GPU數量",
|
"IDC_STATIC_USE_GPU_NO":"使用GPU數量",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"二次元插圖(UpRGB 模式)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"二次元插圖(UpRGB 模式)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"照片和動畫(UpPhoto 模式)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"照片和動畫(UpPhoto 模式)",
|
||||||
"MessageLogFatalError":"發生嚴重錯誤。\r\n可能是分割大小過大"
|
"MessageLogFatalError":"發生嚴重錯誤。\r\n可能是分割大小過大",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"二次元插圖(CUnet 模式)"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
;LangName LangID SubLangID FileName
|
;LangName LangID SubLangID FileName
|
||||||
English(US) 0x09 0x01 english.json
|
English(US) 0x09 0x01 english.json
|
||||||
Español 0x0A 0x01 spanish.json
|
Deutsch(DE) 0x07 0x01 german.json
|
||||||
|
Español(ES) 0x0A 0x01 spanish.json
|
||||||
Français(FR) 0x0C 0x01 french.json
|
Français(FR) 0x0C 0x01 french.json
|
||||||
Русский(RU) 0x19 0x01 russian.json
|
Русский(RU) 0x19 0x01 russian.json
|
||||||
Türkçe(TR) 0x1F 0x01 turkish.json
|
Türkçe(TR) 0x1F 0x01 turkish.json
|
||||||
@ -8,3 +9,6 @@ Türkçe(TR) 0x1F 0x01 turkish.json
|
|||||||
한국어 0x12 0x01 korean.json
|
한국어 0x12 0x01 korean.json
|
||||||
繁體中文 0x04 0x01 Chinese_Traditional.json
|
繁體中文 0x04 0x01 Chinese_Traditional.json
|
||||||
简体中文 0x04 0x02 Chinese_Simplified.json
|
简体中文 0x04 0x02 Chinese_Simplified.json
|
||||||
|
Português(BR) 0x16 0x01 portuguese_brazilian.json
|
||||||
|
Čeština 0x05 0x01 czech.json
|
||||||
|
Italian 0x10 0x01 italian.json
|
||||||
|
105
bin/lang/czech.json
Normal file
105
bin/lang/czech.json
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"IDC_STATIC_IO_SETTING": "Nasvavení vstupu/výstupu",
|
||||||
|
"IDC_STATIC_INPUT_PATH": "Vstupní cesta\r\n(soubor či složka)",
|
||||||
|
"IDC_BUTTON_INPUT_REF": "Procházet",
|
||||||
|
"IDC_STATIC_OUTPUT_PATH": "výstupní cesta",
|
||||||
|
"IDC_STATIC_TANS_EXT_LIST": "Formáty vstupů",
|
||||||
|
"IDC_STATIC_OUTPUT_EXT": "Formát výstupů",
|
||||||
|
"IDC_STATIC_OUTPUT_QUALITY": "Výstupní kvalita",
|
||||||
|
"IDC_STATIC_OUTPUT_DEPTH": "Výstupní bitová hloubka",
|
||||||
|
"IDC_STATIC_AUTO_START": "Nastavení samozpuštění při nastavení vstupu",
|
||||||
|
"IDC_RADIO_AUTO_START_NONE": "Vypnuto",
|
||||||
|
"IDC_RADIO_AUTO_START_ONE": "Zapnuto při jednom souboru",
|
||||||
|
"IDC_RADIO_AUTO_START_MULTI": "Zapnuto při složce, více siuborech",
|
||||||
|
"IDC_STATIC_QUALITY_PROCESS_SETTING": "Nasvavení kvality a zpracování",
|
||||||
|
"IDC_STATIC_TRANS_MODE": "Způsoby zpracování",
|
||||||
|
"IDC_RADIO_MODE_NOISE_SCALE": "Odšumit a zvětšit",
|
||||||
|
"IDC_RADIO_MODE_SCALE": "Pouze zvětšit",
|
||||||
|
"IDC_RADIO_MODE_NOISE": "Pouze odšumit",
|
||||||
|
"IDC_RADIO_AUTO_SCALE": "Zvětšit a automaticky odstranit šum",
|
||||||
|
"IDC_STATIC_JPEG_NOISE_LEVEL": "Úroveň odšumení",
|
||||||
|
"IDC_RADIONOISE_LEVEL0": "Úroveň 0",
|
||||||
|
"IDC_RADIONOISE_LEVEL1": "Úroveň 1",
|
||||||
|
"IDC_RADIONOISE_LEVEL2": "Úroveň 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3": "Úroveň 3",
|
||||||
|
"IDC_STATIC_SCALE_RATE": "Zvětšení",
|
||||||
|
"IDC_RADIO_SCALE_RATIO": "Násobné",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH": "Dle šířky",
|
||||||
|
"IDC_RADIO_SCALE_HEIGHT": "Dle déky",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT": "Přesně na (š x délka)",
|
||||||
|
"IDC_STATIC_MODEL": "Model",
|
||||||
|
"IDC_RADIO_MODEL_RGB": "2-D ilustrace (RGB Model)",
|
||||||
|
"IDC_RADIO_MODEL_PHOTO": "Fotka, Anime",
|
||||||
|
"IDC_RADIO_MODEL_Y": "2-D ilustrace (Y Model)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10": "2-D ilustrace (UpResNet10)",
|
||||||
|
"IDC_CHECK_TTA": "Uží TTA Mode(průměr z 8 zvětšení)",
|
||||||
|
"IDC_STATIC_PROCESS_SPEED_SETTING": "Nastavení rychlosti zpracování",
|
||||||
|
"IDC_STATIC_PROCESSOR": "Užít pracovní jednotku",
|
||||||
|
"IDC_RADIO_MODE_GPU": "GPU - CUDA (je třeba cuDNN)",
|
||||||
|
"IDC_RADIO_MODE_CPU": "Procesor (ultra pomalé)",
|
||||||
|
"IDC_STATIC_CROP_SIZE": "Velokost rozdělení",
|
||||||
|
"IDC_BUTTON_CHECK_CUDNN": "Kontr. cuDNN",
|
||||||
|
"IDC_BUTTON_CANCEL": "Zrušit",
|
||||||
|
"IDC_BUTTON_EXEC": "Start",
|
||||||
|
"IDC_STATIC_LANG_UI": "Jazyk rozhraní",
|
||||||
|
"IDC_BUTTON_OUTPUT_REF": "Procházet",
|
||||||
|
"IDC_BUTTON_APP_SETTING": "Nastavení",
|
||||||
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR": "Reset. výst. soubor",
|
||||||
|
"IDC_STATIC_ARG_START": "Nastartovat s ARGEM (konverzní engine)",
|
||||||
|
"IDC_CHECK_ARG_START_AUTO": "Nastartovat automaticky",
|
||||||
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH": "vypnout po dokončení",
|
||||||
|
"IDC_STATIC_INPUT_DIR_FIX": "Stálá vstupní složka",
|
||||||
|
"IDC_STATIC_OUTPUT_DIR_FIX": "Stálá výstupní složka",
|
||||||
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE": "Nepřepepisovat již existující soubory",
|
||||||
|
"MessageUseProcessorMode": "Použít %s. pracovní jednotku",
|
||||||
|
"MessageProcessTime": "Délka zpracování: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageInitTime": "Délka inicializace: %02d:%02d:%02d.%03d",
|
||||||
|
"MessagecuDNNCheckTime": "Čas kontroly cuDNN: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageTitleError": "Chyba",
|
||||||
|
"MessageScaleRateCheckError": "násobek musí být větší než 0 a nezáporný",
|
||||||
|
"MessageScaleWidthCheckError": "Velikost musí být celé číslo větší než nula.",
|
||||||
|
"MessageCropSizeCheckError": "Velikost rozdělení musí být větší než 1",
|
||||||
|
"MessageInputPathCheckError": "Vložte prosím vstupní cestu",
|
||||||
|
"MessageOutputPathCheckError": "Vložte prosím výstupní cestu",
|
||||||
|
"MessageOutputExtCheckError": "Vložte formát výstupu",
|
||||||
|
"MessageInputCheckError": "Vstupní soubor či složka nenalezena",
|
||||||
|
"MessageOutputExtentionCheckError": "Vložte formát výstupu",
|
||||||
|
"MessageOutputQualityCheckError": "Výstupní kvalita je mimo rozsah",
|
||||||
|
"MessageOutputDepthCheckError": "Nasavení výstupní bitové hloubky je špatně",
|
||||||
|
"MessageCudaNotFindError": "Nelze použít GPU pro konverzi\r\nCUDA ovladač možná není nainstalován. \r\nZkuste ho instalovat",
|
||||||
|
"MessageCudaOldVersionError": "Nelze použít GPU pro konverzi\r\nCUDA ovladač je asi zastaralí \r\nZkuste ho updatovat",
|
||||||
|
"MessageTransSuccess": "Uspěšně provedeno",
|
||||||
|
"MessageErrorHappen": "nastala chyba",
|
||||||
|
"MessageCreateOutDirError": "Nelze vytvořit výstupní složku \r\n[%s]",
|
||||||
|
"MessageCancelError": "Konverze přerušena",
|
||||||
|
"MessageInvalidParameterError": "Parameter je špatně",
|
||||||
|
"MessageFailedOpenModelFileError": "Nelze otevřít soubor s modelem",
|
||||||
|
"MessageFailedParseModelFileError": "Nelze načíst soubor s modelem",
|
||||||
|
"MessageFailedConstructModelError": "Nelze zkonstruovat model z souboru",
|
||||||
|
"MessageFailedOpenInputFileError": "Nezle otevřít vstupní soubor: %s",
|
||||||
|
"MessageFailedOpenOutputFileError": "Nezle zapsat výstupní soubor: %s",
|
||||||
|
"MessageFailedProcessCaffeError": "Nelze zpracovat interpolaci",
|
||||||
|
"MessageTitleResult": "Výsledek kontroly",
|
||||||
|
"MessagecuDNNOK": "cuDNN lze použít",
|
||||||
|
"MessagecuDNNNotFindError": "cuDNN nemuže být použito\r\n[%s] nenalezeno",
|
||||||
|
"MessagecuDNNOldVersionError": "cuDNN nemuže být použito\r\n[%s]je stará verze. použíjte v2",
|
||||||
|
"MessagecuDNNCannotCreateError": "cuDNN nemuže být použito\r\n nelze inicializovat cuDNN",
|
||||||
|
"MessagecuDNNDefautlError": "cuDNN nemuže být použito",
|
||||||
|
"MessageExtStr": "Formát výstupi(%s)",
|
||||||
|
"MessageAllFileFolder": "Všechny soubory a složky(*.*)",
|
||||||
|
"MessageTitleInputDialog": "Zvolte vstupní soubor/složku",
|
||||||
|
"MessageTimeLeftUnknown": "Zbývající čas: Neznámé",
|
||||||
|
"MessageTimeLeft": "Zbyvající čas",
|
||||||
|
"MessageNoOverwrite": "Soubor: %s už existuje v složce ",
|
||||||
|
"MessageCudaOldDeviceError": "Vaše zařízení s podporou CUDA je zastaralé.\r\n Použíte prosím zařízení s „Compute Capability 2.0“ čí starší",
|
||||||
|
"OK": "OK",
|
||||||
|
"Cancel": "Zrušit",
|
||||||
|
"IDC_STATIC_USE_GPU_NO": "Užít GPU číslo:",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_RGB": "2-D ilustrace (UpRGB Model)",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_PHOTO": "Fotka (UpPhoto Model)",
|
||||||
|
"MessageLogFatalError": "Nastala fatální chyba.\r\nJe možné že velikost rozdělení je příliš velká",
|
||||||
|
"IDC_STATIC_BATCH_SIZE": "Velikost dávky",
|
||||||
|
"MessageBatchSizeCheckError": "Velikost dávky musí být větší než 0",
|
||||||
|
"IDC_RADIO_MODEL_CUNET": "2-D ilustrace (CUnet Model)",
|
||||||
|
"MessageCropSizeDivisibleCheckError": "Velikost rozdělení pro tento model Musí být bezezbytku dělitelná %d"
|
||||||
|
}
|
@ -31,6 +31,7 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)",
|
"IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"Photography, Anime",
|
"IDC_RADIO_MODEL_PHOTO":"Photography, Anime",
|
||||||
"IDC_RADIO_MODEL_Y":"2-D illust (Y Model)",
|
"IDC_RADIO_MODEL_Y":"2-D illust (Y Model)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2-D illust (UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"Use TTA Mode",
|
"IDC_CHECK_TTA":"Use TTA Mode",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Processing Speed Settings",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Processing Speed Settings",
|
||||||
"IDC_STATIC_PROCESSOR":"Use Processor",
|
"IDC_STATIC_PROCESSOR":"Use Processor",
|
||||||
@ -96,5 +97,9 @@
|
|||||||
"IDC_STATIC_USE_GPU_NO":"Use GPU No",
|
"IDC_STATIC_USE_GPU_NO":"Use GPU No",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2-D illust (UpRGB Model)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2-D illust (UpRGB Model)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Photo (UpPhoto Model)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Photo (UpPhoto Model)",
|
||||||
"MessageLogFatalError":"A fatal error has occurred.\r\nThere is a possibility the split size is too large"
|
"MessageLogFatalError":"A fatal error has occurred.\r\nThere is a possibility the split size is too large",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"Batch size",
|
||||||
|
"MessageBatchSizeCheckError":"Batch size must be greater than 0",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2-D illust (CUnet Model)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"Split size of this model must be divisible by %d"
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"Illustration 2D (modèle RGB)",
|
"IDC_RADIO_MODEL_RGB":"Illustration 2D (modèle RGB)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"Photo & animé (modèle Photo)",
|
"IDC_RADIO_MODEL_PHOTO":"Photo & animé (modèle Photo)",
|
||||||
"IDC_RADIO_MODEL_Y":"Illustration 2D (modèle Y)",
|
"IDC_RADIO_MODEL_Y":"Illustration 2D (modèle Y)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"Illustration 2D (UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"Utiliser mode TTA",
|
"IDC_CHECK_TTA":"Utiliser mode TTA",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Vitesse de traitement",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Vitesse de traitement",
|
||||||
"IDC_STATIC_PROCESSOR":"Utiliser le processeur",
|
"IDC_STATIC_PROCESSOR":"Utiliser le processeur",
|
||||||
@ -96,5 +97,6 @@
|
|||||||
"IDC_STATIC_USE_GPU_NO":"Utiliser GPU n°",
|
"IDC_STATIC_USE_GPU_NO":"Utiliser GPU n°",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"Illustration 2D (modèle UpRGB)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"Illustration 2D (modèle UpRGB)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Photo (modèle UpPhoto)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Photo (modèle UpPhoto)",
|
||||||
"MessageLogFatalError":"Erreur fatale\r\nLa taille de découpage est peut-être trop grande"
|
"MessageLogFatalError":"Erreur fatale\r\nLa taille de découpage est peut-être trop grande",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"Illustration 2D (modèle CUnet)"
|
||||||
}
|
}
|
||||||
|
105
bin/lang/german.json
Normal file
105
bin/lang/german.json
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"IDC_STATIC_IO_SETTING":"Eingabe/Ausgabe Einstellungen",
|
||||||
|
"IDC_STATIC_INPUT_PATH":"Eingabepfad\r\n(Datei oder Ordner)",
|
||||||
|
"IDC_BUTTON_INPUT_REF":"Durchsuchen",
|
||||||
|
"IDC_STATIC_OUTPUT_PATH":"Ausgabepfad",
|
||||||
|
"IDC_STATIC_TANS_EXT_LIST":"Eingabedateiendungen",
|
||||||
|
"IDC_STATIC_OUTPUT_EXT":"Ausgabedateiendung",
|
||||||
|
"IDC_STATIC_OUTPUT_QUALITY":"Ausgabequalität",
|
||||||
|
"IDC_STATIC_OUTPUT_DEPTH":"Farbtiefe pro Kanal",
|
||||||
|
"IDC_STATIC_AUTO_START":"Automatischer Start wenn Eingabedatei ausgewählt wurde",
|
||||||
|
"IDC_RADIO_AUTO_START_NONE":"Kein automatischer Start",
|
||||||
|
"IDC_RADIO_AUTO_START_ONE":"Bei einer Eingabedatei",
|
||||||
|
"IDC_RADIO_AUTO_START_MULTI":"Bei mehreren Eingabedateien/Ordner",
|
||||||
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"Konvertierungseinstellungen für Bildqualität und Bildverarbeitung",
|
||||||
|
"IDC_STATIC_TRANS_MODE":"Umwandlungsmodus",
|
||||||
|
"IDC_RADIO_MODE_NOISE_SCALE":"Entrauschen && Vergrößern",
|
||||||
|
"IDC_RADIO_MODE_SCALE":"Nur Vergrößern",
|
||||||
|
"IDC_RADIO_MODE_NOISE":"Nur Entrauschen",
|
||||||
|
"IDC_RADIO_AUTO_SCALE":"Vergrößern & Auto-Entrauschen",
|
||||||
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"Entrauschlevel",
|
||||||
|
"IDC_RADIONOISE_LEVEL0":"Level 0",
|
||||||
|
"IDC_RADIONOISE_LEVEL1":"Level 1",
|
||||||
|
"IDC_RADIONOISE_LEVEL2":"Level 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"Level 3",
|
||||||
|
"IDC_STATIC_SCALE_RATE":"Vergrößerung",
|
||||||
|
"IDC_RADIO_SCALE_RATIO":"Größenfaktor setzen",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH":"Endbreite setzen",
|
||||||
|
"IDC_RADIO_SCALE_HEIGHT":"Endhöhe setzen",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Endbreite und Endhöhe setzen",
|
||||||
|
"IDC_STATIC_MODEL":"Model",
|
||||||
|
"IDC_RADIO_MODEL_RGB":"2-D illust (RGB Model)",
|
||||||
|
"IDC_RADIO_MODEL_PHOTO":"Fotografie, Anime",
|
||||||
|
"IDC_RADIO_MODEL_Y":"2-D illust (Y Model)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2-D illust (UpResNet10)",
|
||||||
|
"IDC_CHECK_TTA":"TTA Modus nutzen",
|
||||||
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Prozesseinstellungen",
|
||||||
|
"IDC_STATIC_PROCESSOR":"Prozessornutzung",
|
||||||
|
"IDC_RADIO_MODE_GPU":"CUDA (nutzt cuDNN)",
|
||||||
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
|
"IDC_STATIC_CROP_SIZE":"Zuschneidegröße",
|
||||||
|
"IDC_BUTTON_CHECK_CUDNN":"cuDNN überprüfen",
|
||||||
|
"IDC_BUTTON_CANCEL":"Abbrechen",
|
||||||
|
"IDC_BUTTON_EXEC":"Starten",
|
||||||
|
"IDC_STATIC_LANG_UI":"UI Sprache",
|
||||||
|
"IDC_BUTTON_OUTPUT_REF":"Durchsuchen",
|
||||||
|
"IDC_BUTTON_APP_SETTING":"Optionen",
|
||||||
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Ausgabepfad zurücksetzen",
|
||||||
|
"IDC_STATIC_ARG_START":"Mit Startoptionen Booten",
|
||||||
|
"IDC_CHECK_ARG_START_AUTO":"Starten wenn geöffnet",
|
||||||
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Beenden wenn vollständig fertig",
|
||||||
|
"IDC_STATIC_INPUT_DIR_FIX":"Fixer Eingabeordner",
|
||||||
|
"IDC_STATIC_OUTPUT_DIR_FIX":"Fixer Ausgabeordner",
|
||||||
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"Ausgabedateien nicht überschreiben",
|
||||||
|
"MessageUseProcessorMode":"Genutzter Prozessor: %s",
|
||||||
|
"MessageProcessTime":"Umwandlungszeit: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageInitTime":"Initialisierungszeit: %02d:%02d:%02d.%03d",
|
||||||
|
"MessagecuDNNCheckTime":"cuDNN-überprüfungszeit: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageTitleError":"Fehler",
|
||||||
|
"MessageScaleRateCheckError":"Vergrößerungsfaktor muss größer als 0.0 und positiv sein.",
|
||||||
|
"MessageScaleWidthCheckError":"Größe muss eine Ganzzahl und größer als 0 sein.",
|
||||||
|
"MessageCropSizeCheckError":"Teilungsgröße muss größer als 0 sein.",
|
||||||
|
"MessageInputPathCheckError":"Bitte gebe einen Eingabepfad an.",
|
||||||
|
"MessageOutputPathCheckError":"Bitte gebe einen Ausgabepfad an.",
|
||||||
|
"MessageOutputExtCheckError":"Bitte eine Dateiendung für die Ausgabe wählen.",
|
||||||
|
"MessageInputCheckError":"Eingabedatei oder Ordner existiert nicht.",
|
||||||
|
"MessageOutputExtentionCheckError":"Bitte die Dateiendung der Ausgabe wählen.",
|
||||||
|
"MessageOutputQualityCheckError":"Ausgabequalität ist außerhalb des gültigen Bereichs",
|
||||||
|
"MessageOutputDepthCheckError":"Bittiefe der Ausgabe ist inkorrekt.",
|
||||||
|
"MessageCudaNotFindError":"Eingabe kann nicht mittels GPU umgewandelt werden.\r\nDer CUDA Treiber ist möglicherweise nicht installiert. \r\nInstalliere bitte den CUDA Treiber.",
|
||||||
|
"MessageCudaOldVersionError":"Eingabe kann nicht mittels GPU umgewandelt werden.\r\nDie CUDA Treiberversion scheint veraltet.\r\nBitte aktualisiere den CUDA Treiber.",
|
||||||
|
"MessageTransSuccess":"Erfolgreich umgewandelt",
|
||||||
|
"MessageErrorHappen":"Ein Fehler ist aufgetreten",
|
||||||
|
"MessageCreateOutDirError":"Ausgabeordner\r\n[%s]\r\nkonnte nicht erstellt werden",
|
||||||
|
"MessageCancelError":"Umwandlung wurde abgebrochen",
|
||||||
|
"MessageInvalidParameterError":"Parameter ist ungültig",
|
||||||
|
"MessageFailedOpenModelFileError":"Modeldatei konnte nicht geöffnet werden",
|
||||||
|
"MessageFailedParseModelFileError":"Modeldatei konnte nicht verarbeitet werden",
|
||||||
|
"MessageFailedConstructModelError":"Model konnte nicht konstruiert werden",
|
||||||
|
"MessageFailedOpenInputFileError":"Die Eingabedatei %s konnte nicht geöffnet werden",
|
||||||
|
"MessageFailedOpenOutputFileError":"In die Ausgabedatei %s konnte nicht geschrieben werden",
|
||||||
|
"MessageFailedProcessCaffeError":"Die Interpolation konnte nicht durchgeführt werden",
|
||||||
|
"MessageTitleResult":"Ergebnis",
|
||||||
|
"MessagecuDNNOK":"cuDNN kann genutzt werden",
|
||||||
|
"MessagecuDNNNotFindError":"cuDNN kann nicht genutzt werden\r\n[%s] konnte nicht gefunden werden",
|
||||||
|
"MessagecuDNNOldVersionError":"cuDNN kann nicht genutzt werden\r\n[%s] ist eine veraltete Version. Bitte v2 benutzen",
|
||||||
|
"MessagecuDNNCannotCreateError":"cuDNN kann nicht genutzt werden\r\ncKonnte cuDNN nicht initialisieren",
|
||||||
|
"MessagecuDNNDefautlError":"cuDNN kann nicht genutzt werden",
|
||||||
|
"MessageExtStr":"Eingabedateiendungen(%s)",
|
||||||
|
"MessageAllFileFolder":"Alle Dateien und Ordner(*.*)",
|
||||||
|
"MessageTitleInputDialog":"Bitte wähle eine Datei oder einen Ordner",
|
||||||
|
"MessageTimeLeftUnknown":"Restzeit: Unbekannt",
|
||||||
|
"MessageTimeLeft":"Übrige Zeit",
|
||||||
|
"MessageNoOverwrite":"Es existiert bereits eine Datei an dem Speicherort: %s",
|
||||||
|
"MessageCudaOldDeviceError":"Dein CUDA Gerät ist veraltet.\r\nBitte nutze ein Gerät mit Compute Capability 2.0 oder neuer",
|
||||||
|
"OK":"OK",
|
||||||
|
"Cancel":"Abbrechen",
|
||||||
|
"IDC_STATIC_USE_GPU_NO":"Benutze GPU Nr.",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2-D illust (UpRGB Model)",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Foto (UpPhoto Model)",
|
||||||
|
"MessageLogFatalError":"Ein fataler Fehler ist aufgetreten.\r\nEventuell ist die Teilungsgröße zu hoch.",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"Batchgröße",
|
||||||
|
"MessageBatchSizeCheckError":"Stapelgröße muss größer als 0 sein",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2-D illust (CUnet Model)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"Teilungsgröße bei diesem Model muss durch %d teilbar sein."
|
||||||
|
}
|
105
bin/lang/italian.json
Normal file
105
bin/lang/italian.json
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"IDC_STATIC_IO_SETTING":"Impostazioni Input/Output",
|
||||||
|
"IDC_STATIC_INPUT_PATH":"Percorso di Input\r\n(File o Cartelle)",
|
||||||
|
"IDC_BUTTON_INPUT_REF":"Browse",
|
||||||
|
"IDC_STATIC_OUTPUT_PATH":"Percorso di Output",
|
||||||
|
"IDC_STATIC_TANS_EXT_LIST":"Estensioni file in input",
|
||||||
|
"IDC_STATIC_OUTPUT_EXT":"Estensione di Output",
|
||||||
|
"IDC_STATIC_OUTPUT_QUALITY":"Qualita Output",
|
||||||
|
"IDC_STATIC_OUTPUT_DEPTH":"Output depth bits",
|
||||||
|
"IDC_STATIC_AUTO_START":"Avvio automatico quando vengono impostati i file di input",
|
||||||
|
"IDC_RADIO_AUTO_START_NONE":"No Avvio Automatico",
|
||||||
|
"IDC_RADIO_AUTO_START_ONE":"Al inserimento di un file",
|
||||||
|
"IDC_RADIO_AUTO_START_MULTI":"Al inserimento di più file o di una cartella",
|
||||||
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"Conversione qualità immagine e impostazioni di elaborazione ",
|
||||||
|
"IDC_STATIC_TRANS_MODE":"Modalità di conversione",
|
||||||
|
"IDC_RADIO_MODE_NOISE_SCALE":"Riduci rumore e ingrandisci",
|
||||||
|
"IDC_RADIO_MODE_SCALE":"Ingrandisci",
|
||||||
|
"IDC_RADIO_MODE_NOISE":"eliminazione delle impurità",
|
||||||
|
"IDC_RADIO_AUTO_SCALE":"Ingrandisci e elimina le inpurità in automatico",
|
||||||
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"Livello di eliminazione delle impurità",
|
||||||
|
"IDC_RADIONOISE_LEVEL0":"Livello 0",
|
||||||
|
"IDC_RADIONOISE_LEVEL1":"Livello 1",
|
||||||
|
"IDC_RADIONOISE_LEVEL2":"Livello 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"Livello 3",
|
||||||
|
"IDC_STATIC_SCALE_RATE":"Dimensione dell'ingrandimento",
|
||||||
|
"IDC_RADIO_SCALE_RATIO":"Imposta rate",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH":"Imposta trans width",
|
||||||
|
"IDC_RADIO_SCALE_HEIGHT":"Imposta trans height",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Imposta trans width e height",
|
||||||
|
"IDC_STATIC_MODEL":"Modello",
|
||||||
|
"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":"Usa la modalita TTA",
|
||||||
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Impostazioni della velocità di elaborazione",
|
||||||
|
"IDC_STATIC_PROCESSOR":"Usa processore",
|
||||||
|
"IDC_RADIO_MODE_GPU":"CUDA (Usa cuDNN)",
|
||||||
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
|
"IDC_STATIC_CROP_SIZE":"Split size",
|
||||||
|
"IDC_BUTTON_CHECK_CUDNN":"Controlla cuDNN",
|
||||||
|
"IDC_BUTTON_CANCEL":"Cancella",
|
||||||
|
"IDC_BUTTON_EXEC":"Avvia",
|
||||||
|
"IDC_STATIC_LANG_UI":"Lingua UI",
|
||||||
|
"IDC_BUTTON_OUTPUT_REF":"Browse",
|
||||||
|
"IDC_BUTTON_APP_SETTING":"Impostazioni App",
|
||||||
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Resetta cartella di output",
|
||||||
|
"IDC_STATIC_ARG_START":"Avvia con Arg",
|
||||||
|
"IDC_CHECK_ARG_START_AUTO":"Avvia Quando Lanciato",
|
||||||
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Esci quando completato con successo",
|
||||||
|
"IDC_STATIC_INPUT_DIR_FIX":"Cartella di input prestabilita",
|
||||||
|
"IDC_STATIC_OUTPUT_DIR_FIX":"Cartella di output prestabilita",
|
||||||
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"Non sovrascrivere file di output",
|
||||||
|
"MessageUseProcessorMode":"Processore usato: %s",
|
||||||
|
"MessageProcessTime":"Tempo di elaborazione: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageInitTime":"Tempo di inizializzazione: %02d:%02d:%02d.%03d",
|
||||||
|
"MessagecuDNNCheckTime":"Tempo di controllo cuDNN: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageTitleError":"Errore",
|
||||||
|
"MessageScaleRateCheckError":"Il fattore di ingrandimento deve essere maggiore di 0,0 e positivo",
|
||||||
|
"MessageScaleWidthCheckError":"La dimensione deve essere un numero intero maggiore di 0.",
|
||||||
|
"MessageCropSizeCheckError":"La dimensione della divisione deve essere maggiore di 0",
|
||||||
|
"MessageInputPathCheckError":"Si prega di specificare il percorso di input",
|
||||||
|
"MessageOutputPathCheckError":"Si prega di specificare il percorso di output",
|
||||||
|
"MessageOutputExtCheckError":"Si prega di specificare l'estensione di output",
|
||||||
|
"MessageInputCheckError":"Il file o la cartella di input non esiste",
|
||||||
|
"MessageOutputExtentionCheckError":"Seleziona l'estensione di output",
|
||||||
|
"MessageOutputQualityCheckError":"La qualità dell'output è fuori dal intervallo",
|
||||||
|
"MessageOutputDepthCheckError":"I bit di profondità di output non sono corretti",
|
||||||
|
"MessageCudaNotFindError":"L'input non puo essere elaborato dalla GPU\r\n I driver CUDA potrebbero non essere stati installati. \r\nPer favore installa i driver CUDA",
|
||||||
|
"MessageCudaOldVersionError":"L'input non puo essere elaborato dalla GPU\r\n I driver CUDA potrebbero non essere aggiornati. \r\nPer favore aggiorna i driver CUDA",
|
||||||
|
"MessageTransSuccess":"Convertito con successo",
|
||||||
|
"MessageErrorHappen":"C'è stato un errore",
|
||||||
|
"MessageCreateOutDirError":"Cartella di Output\r\n[%s]\r\nCreazione fallita",
|
||||||
|
"MessageCancelError":"L'elaborazione è stata bloccata",
|
||||||
|
"MessageInvalidParameterError":"Parametro non valido",
|
||||||
|
"MessageFailedOpenModelFileError":"Errore nell'apertura del file del modello",
|
||||||
|
"MessageFailedParseModelFileError":"Impossibile analizzare il file del modello",
|
||||||
|
"MessageFailedConstructModelError":"Impossibile costruire il modello",
|
||||||
|
"MessageFailedOpenInputFileError":"Errore nell'apertura del file %s",
|
||||||
|
"MessageFailedOpenOutputFileError":"Impossibile scrivere nel file di output %s",
|
||||||
|
"MessageFailedProcessCaffeError":"Impossibile elaborare l'interpolazione",
|
||||||
|
"MessageTitleResult":"Risultato",
|
||||||
|
"MessagecuDNNOK":"cuDNN è disponibile",
|
||||||
|
"MessagecuDNNNotFindError":"cuDNN non puo essere usato\r\n[%s]non trovato",
|
||||||
|
"MessagecuDNNOldVersionError":"cuDNN non puo essere usato\r\n[%s]è una vecchia versione, per favore usa la versione v2",
|
||||||
|
"MessagecuDNNCannotCreateError":"cuDNN non puo essere usato\r\ncInizializzazione di cuDNN fallita",
|
||||||
|
"MessagecuDNNDefautlError":"cuDNN non puo essere usato",
|
||||||
|
"MessageExtStr":"Input file extensions(%s)",
|
||||||
|
"MessageAllFileFolder":"Tutti i file e le cartelle(*.*)",
|
||||||
|
"MessageTitleInputDialog":"Perfavore seleziona il file o la cartella di input",
|
||||||
|
"MessageTimeLeftUnknown":"Tempo mancante: Sconosciuto",
|
||||||
|
"MessageTimeLeft":"Tempo Mancante",
|
||||||
|
"MessageNoOverwrite":"File gia esistente in: %s",
|
||||||
|
"MessageCudaOldDeviceError":"Il tuo dispositivo CUDA è troppo vecchio.\r\nPer favore usa un dispositivo con Compute Capability 2.0 o superiore",
|
||||||
|
"OK":"OK",
|
||||||
|
"Cancel":"Cancella",
|
||||||
|
"IDC_STATIC_USE_GPU_NO":"Usa la GPU n°",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2-D illust (UpRGB Model)",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Photo (UpPhoto Model)",
|
||||||
|
"MessageLogFatalError":"Si è verificato un errore irreversibile.\r\nc'è la possibilità che la dimensione dello split sia troppo grande",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"Batch size",
|
||||||
|
"MessageBatchSizeCheckError":"La dimensione del batch deve essere maggiore di 0",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2-D illust (CUnet Model)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"La dimensione della divisione di questo modello deve essere divisibile per %d"
|
||||||
|
}
|
@ -31,6 +31,7 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"2次元イラスト (RGBモデル)",
|
"IDC_RADIO_MODEL_RGB":"2次元イラスト (RGBモデル)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"写真・アニメ (Photoモデル)",
|
"IDC_RADIO_MODEL_PHOTO":"写真・アニメ (Photoモデル)",
|
||||||
"IDC_RADIO_MODEL_Y":"2次元イラスト (Yモデル)",
|
"IDC_RADIO_MODEL_Y":"2次元イラスト (Yモデル)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2次元イラスト (UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"TTAモードを使う",
|
"IDC_CHECK_TTA":"TTAモードを使う",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"処理速度設定",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"処理速度設定",
|
||||||
"IDC_STATIC_PROCESSOR":"使用プロセッサー",
|
"IDC_STATIC_PROCESSOR":"使用プロセッサー",
|
||||||
@ -96,5 +97,9 @@
|
|||||||
"IDC_STATIC_USE_GPU_NO":"使用GPU No",
|
"IDC_STATIC_USE_GPU_NO":"使用GPU No",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2次元イラスト (UpRGBモデル)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2次元イラスト (UpRGBモデル)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"写真・アニメ (UpPhotoモデル)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"写真・アニメ (UpPhotoモデル)",
|
||||||
"MessageLogFatalError":"致命的なエラーが発生しました。\r\n分割サイズが大きすぎる可能性があります"
|
"MessageLogFatalError":"致命的なエラーが発生しました。\r\n分割サイズが大きすぎる可能性があります",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"バッチサイズ",
|
||||||
|
"MessageBatchSizeCheckError":"バッチサイズは0より大きい整数である必要があります",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2次元イラスト (CUnet)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"このモデルの分割サイズは %d で割り切れる必要があります"
|
||||||
}
|
}
|
||||||
|
@ -1,40 +1,41 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"입출력 설정",
|
"IDC_STATIC_IO_SETTING":"입출력 설정",
|
||||||
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일이나 폴더)",
|
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일 또는 폴더)",
|
||||||
"IDC_BUTTON_INPUT_REF":"설정",
|
"IDC_BUTTON_INPUT_REF":"설정",
|
||||||
"IDC_STATIC_OUTPUT_PATH":"출력 경로",
|
"IDC_STATIC_OUTPUT_PATH":"출력 경로",
|
||||||
"IDC_STATIC_TANS_EXT_LIST":"변환시킬 파일 확장자 대상",
|
"IDC_STATIC_TANS_EXT_LIST":"변환 대상 확장자 종류",
|
||||||
"IDC_STATIC_OUTPUT_EXT":"출력할 확장자",
|
"IDC_STATIC_OUTPUT_EXT":"출력 확장자",
|
||||||
"IDC_STATIC_OUTPUT_QUALITY":"출력 화질 설정",
|
"IDC_STATIC_OUTPUT_QUALITY":"출력 화질 설정",
|
||||||
"IDC_STATIC_OUTPUT_DEPTH":"색상별 비트수 설정",
|
"IDC_STATIC_OUTPUT_DEPTH":"색상 비트수 설정",
|
||||||
"IDC_STATIC_AUTO_START":"퀵 스타트 설정",
|
"IDC_STATIC_AUTO_START":"퀵 스타트 설정",
|
||||||
"IDC_RADIO_AUTO_START_NONE":"사용 안 함",
|
"IDC_RADIO_AUTO_START_NONE":"자동 시작 안 함",
|
||||||
"IDC_RADIO_AUTO_START_ONE":"파일이 추가되면 바로 시작",
|
"IDC_RADIO_AUTO_START_ONE":"파일 추가시 바로 시작",
|
||||||
"IDC_RADIO_AUTO_START_MULTI":"폴더 또는 여러 파일이\r\n추가되면 바로 시작",
|
"IDC_RADIO_AUTO_START_MULTI":"폴더 또는 여러 파일\r\n추가시 바로 시작",
|
||||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"이미지 변환 및 처리 설정",
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"변환 화질 및 처리 설정",
|
||||||
"IDC_STATIC_TRANS_MODE":"변환 모드",
|
"IDC_STATIC_TRANS_MODE":"변환 모드",
|
||||||
"IDC_RADIO_MODE_NOISE_SCALE":"확대 및 노이즈 줄이기",
|
"IDC_RADIO_MODE_NOISE_SCALE":"확대 및 노이즈 제거",
|
||||||
"IDC_RADIO_MODE_SCALE":"확대만",
|
"IDC_RADIO_MODE_SCALE":"확대",
|
||||||
"IDC_RADIO_MODE_NOISE":"노이즈만 줄이기",
|
"IDC_RADIO_MODE_NOISE":"노이즈 제거",
|
||||||
"IDC_RADIO_AUTO_SCALE":"확대 후 자동으로 노이즈 줄이기",
|
"IDC_RADIO_AUTO_SCALE":"노이즈 제거(자동판별)&& 확대",
|
||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"노이즈 감소 단계",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"노이즈 제거 수준",
|
||||||
"IDC_RADIONOISE_LEVEL0":"0단계",
|
"IDC_RADIONOISE_LEVEL0":"0단계",
|
||||||
"IDC_RADIONOISE_LEVEL1":"1단계",
|
"IDC_RADIONOISE_LEVEL1":"1단계",
|
||||||
"IDC_RADIONOISE_LEVEL2":"2단계",
|
"IDC_RADIONOISE_LEVEL2":"2단계",
|
||||||
"IDC_RADIONOISE_LEVEL3":"3단계",
|
"IDC_RADIONOISE_LEVEL3":"3단계",
|
||||||
"IDC_STATIC_SCALE_RATE":"확대 설정",
|
"IDC_STATIC_SCALE_RATE":"확대 설정",
|
||||||
"IDC_RADIO_SCALE_RATIO":"확대율로 설정",
|
"IDC_RADIO_SCALE_RATIO":"확대율로 설정",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"변환 후의 가로 길이",
|
"IDC_RADIO_SCALE_WIDTH":"변환 후 가로 길이",
|
||||||
"IDC_RADIO_SCALE_HEIGHT":"변환 후의 세로 길이",
|
"IDC_RADIO_SCALE_HEIGHT":"변환 후 세로 길이",
|
||||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"가로x세로로 확대",
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"'가로 세로'로 확대",
|
||||||
"IDC_STATIC_MODEL":"모델",
|
"IDC_STATIC_MODEL":"모델",
|
||||||
"IDC_RADIO_MODEL_RGB":"2D 일러스트 (RGB 모델)",
|
"IDC_RADIO_MODEL_RGB":"2D 일러스트 (RGB모델)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"사진/애니메이션 (Photo 모델)",
|
"IDC_RADIO_MODEL_PHOTO":"사진/애니메이션 (Photo모델)",
|
||||||
"IDC_RADIO_MODEL_Y":"2D 일러스트 (Y 모델)",
|
"IDC_RADIO_MODEL_Y":"2D 일러스트 (Y모델)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2D 일러스트 (UpResNet10모델)",
|
||||||
"IDC_CHECK_TTA":"TTA 모드 사용",
|
"IDC_CHECK_TTA":"TTA 모드 사용",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"처리 속도 설정",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"처리 속도 설정",
|
||||||
"IDC_STATIC_PROCESSOR":"사용할 처리 방식",
|
"IDC_STATIC_PROCESSOR":"사용할 프로세서",
|
||||||
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 사용)",
|
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 우선)",
|
||||||
"IDC_RADIO_MODE_CPU":"CPU",
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
"IDC_STATIC_CROP_SIZE":"분할 크기",
|
"IDC_STATIC_CROP_SIZE":"분할 크기",
|
||||||
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 검사",
|
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 검사",
|
||||||
@ -44,57 +45,61 @@
|
|||||||
"IDC_BUTTON_OUTPUT_REF":"설정",
|
"IDC_BUTTON_OUTPUT_REF":"설정",
|
||||||
"IDC_BUTTON_APP_SETTING":"환경 설정",
|
"IDC_BUTTON_APP_SETTING":"환경 설정",
|
||||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"출력 경로 초기화",
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"출력 경로 초기화",
|
||||||
"IDC_STATIC_ARG_START":"인수로 시작 설정",
|
"IDC_STATIC_ARG_START":"인수 추가 실행시 설정",
|
||||||
"IDC_CHECK_ARG_START_AUTO":"즉시 작업 시작",
|
"IDC_CHECK_ARG_START_AUTO":"즉시 변환 시작",
|
||||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"오류가 없으면 바로 종료",
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"오류가 없으면 자동 종료",
|
||||||
"IDC_STATIC_INPUT_DIR_FIX":"입력 경로 창\n기본 폴더",
|
"IDC_STATIC_INPUT_DIR_FIX":"입력 경로\n기본 폴더",
|
||||||
"IDC_STATIC_OUTPUT_DIR_FIX":"결과 경로 창\n기본 폴더",
|
"IDC_STATIC_OUTPUT_DIR_FIX":"출력 경로\n기본 폴더",
|
||||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"출력 파일을 덮어쓰지 않음",
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"출력 파일을 덮어쓰지 않음",
|
||||||
"MessageUseProcessorMode":"사용한 프로세서 : %s",
|
"MessageUseProcessorMode":"사용한 프로세서 모드 : %s",
|
||||||
"MessageProcessTime":"처리 시간 : %02d:%02d:%02d.%03d",
|
"MessageProcessTime":"처리 시간 : %02d:%02d:%02d.%03d",
|
||||||
"MessageInitTime":"초기화 시간 : %02d:%02d:%02d.%03d",
|
"MessageInitTime":"초기화 시간 : %02d:%02d:%02d.%03d",
|
||||||
"MessagecuDNNCheckTime":"cuDNN 검사 시간 : %02d:%02d:%02d.%03d",
|
"MessagecuDNNCheckTime":"cuDNN 검사 시간 : %02d:%02d:%02d.%03d",
|
||||||
"MessageTitleError":"오류",
|
"MessageTitleError":"오류",
|
||||||
"MessageScaleRateCheckError":"확대 비율은 0.0 이상의 숫자를 입력해주세요.",
|
"MessageScaleRateCheckError":"확대 비율은 0.0 이상의 숫자를 입력해 주십시오.",
|
||||||
"MessageScaleWidthCheckError":"확대 크기는 0보다 큰 정수여야 합니다.",
|
"MessageScaleWidthCheckError":"확대 크기는 0보다 큰 정수여야 합니다.",
|
||||||
"MessageCropSizeCheckError":"분할 크기는 0 이상이어야 합니다.",
|
"MessageCropSizeCheckError":"분할 크기는 0 이상이어야 합니다.",
|
||||||
"MessageInputPathCheckError":"입력 경로를 설정해 주세요.",
|
"MessageInputPathCheckError":"입력 경로를 설정해 주십시오.",
|
||||||
"MessageOutputPathCheckError":"출력 경로를 설정해 주세요.",
|
"MessageOutputPathCheckError":"출력 경로를 설정해 주십시오.",
|
||||||
"MessageOutputExtCheckError":"출력할 확장자를 설정해 주세요.",
|
"MessageOutputExtCheckError":"출력 확장자를 설정해 주십시오.",
|
||||||
"MessageInputCheckError":"입력한 파일이나 폴더가 존재하지 않습니다.",
|
"MessageInputCheckError":"입력 파일 혹은 폴더가 존재하지 않습니다.",
|
||||||
"MessageOutputExtentionCheckError":"출력할 파일의 확장자가 잘못되었습니다.",
|
"MessageOutputExtentionCheckError":"출력 확장자를 설정해 주십시오.",
|
||||||
"MessageOutputQualityCheckError":"출력 화질 설정이 설정 가능한 범위를 벗어났습니다.",
|
"MessageOutputQualityCheckError":"출력 화질이 설정 가능한 범위를 벗어났습니다.",
|
||||||
"MessageOutputDepthCheckError":"출력할 색상별 비트수가 올바르지 않습니다.",
|
"MessageOutputDepthCheckError":"출력할 색상 비트수가 올바르지 않습니다.",
|
||||||
"MessageCudaNotFindError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 설치되어 있지 않은 것일 수 있습니다. \r\nCUDA 드라이버를 다시 설치해 주세요.",
|
"MessageCudaNotFindError":"GPU를 사용하여 변환할 수 없습니다.\r\nCUDA 드라이버가 설치되어 있지 않은 것일 수 있습니다. \r\nCUDA 드라이버를 다시 설치해 주십시오.",
|
||||||
"MessageCudaOldVersionError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 너무 오래된 것일 수도 있습니다.\r\nCUDA 드라이버를 다시 설치해 주세요.",
|
"MessageCudaOldVersionError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 너무 오래된 것일 수도 있습니다.\r\n최신 CUDA 드라이버를 설치해 주십시오.",
|
||||||
"MessageTransSuccess":"변환 성공",
|
"MessageTransSuccess":"변환에 성공했습니다.",
|
||||||
"MessageErrorHappen":"오류가 발생했습니다.",
|
"MessageErrorHappen":"오류가 발생했습니다.",
|
||||||
"MessageCreateOutDirError":"출력할 폴더\r\n'%s'\r\n을 만들지 못했습니다.",
|
"MessageCreateOutDirError":"출력 폴더\r\n'%s'\r\n를 만들지 못했습니다.",
|
||||||
"MessageCancelError":"변환이 취소되었습니다.",
|
"MessageCancelError":"변환이 취소되었습니다.",
|
||||||
"MessageInvalidParameterError":"설정값이 잘못되었습니다.",
|
"MessageInvalidParameterError":"설정값이 잘못되었습니다.",
|
||||||
"MessageFailedOpenModelFileError":"모델 파일을 열지 못했습니다.",
|
"MessageFailedOpenModelFileError":"모델 파일을 열지 못했습니다.",
|
||||||
"MessageFailedParseModelFileError":"모델 파일을 구문 분석하지 못했습니다.",
|
"MessageFailedParseModelFileError":"모델 파일을 구문 분석하지 못했습니다.",
|
||||||
"MessageFailedConstructModelError":"모델을 구성하지 못했습니다.",
|
"MessageFailedConstructModelError":"모델 구성에 실패했습니다.",
|
||||||
"MessageFailedOpenInputFileError":"파일 %s를 열지 못했습니다.",
|
"MessageFailedOpenInputFileError":"파일 %s을 불러오지 못했습니다.",
|
||||||
"MessageFailedOpenOutputFileError":"%s로 변환하지 못했습니다.",
|
"MessageFailedOpenOutputFileError":"%s로 변환하지 못했습니다.",
|
||||||
"MessageFailedProcessCaffeError":"보정 처리를 하지 못했습니다.",
|
"MessageFailedProcessCaffeError":"보정 처리에 실패했습니다.",
|
||||||
"MessageTitleResult":"결과",
|
"MessageTitleResult":"결과",
|
||||||
"MessagecuDNNOK":"cuDNN을 사용할 수 있습니다.",
|
"MessagecuDNNOK":"cuDNN을 사용할 수 있습니다.",
|
||||||
"MessagecuDNNNotFindError":"cuDNN을 사용할 수 없습니다. \r\n%s 파일이 없습니다.",
|
"MessagecuDNNNotFindError":"cuDNN을 사용할 수 없습니다. \r\n%s가 없습니다.",
|
||||||
"MessagecuDNNOldVersionError":"cuDNN을 사용할 수 없습니다.\r\n%s 파일이 오래되었습니다. %s를 사용해 주세요.",
|
"MessagecuDNNOldVersionError":"cuDNN을 사용할 수 없습니다.\r\n%s의 버전이 오래 되었습니다. %s를 사용해 주십시오.",
|
||||||
"MessagecuDNNCannotCreateError":"cuDNN을 사용할 수 없습니다.\r\n cuDNN을 초기화하는 데 실패했습니다.",
|
"MessagecuDNNCannotCreateError":"cuDNN을 사용할 수 없습니다.\r\n cuDNN 초기화에 실패했습니다.",
|
||||||
"MessagecuDNNDefautlError":"cuDNN을 사용할 수 없습니다.",
|
"MessagecuDNNDefautlError":"cuDNN을 사용할 수 없습니다.",
|
||||||
"MessageExtStr":"입력 파일 확장자(%s)",
|
"MessageExtStr":"변환 대상 확장자(%s)",
|
||||||
"MessageAllFileFolder":"모든 파일과 폴더(*.*)",
|
"MessageAllFileFolder":"모든 파일과 폴더(*.*)",
|
||||||
"MessageTitleInputDialog":"입력할 파일 또는 폴더를 선택해 주세요.",
|
"MessageTitleInputDialog":"변환할 파일 또는 폴더를 선택해 주십시오.",
|
||||||
"MessageTimeLeftUnknown":"남은 시간 : 알 수 없음",
|
"MessageTimeLeftUnknown":"남은 시간 : 알 수 없음",
|
||||||
"MessageTimeLeft":"남은 시간",
|
"MessageTimeLeft":"남은 시간",
|
||||||
"MessageNoOverwrite":"출력 경로에 이미 %s 파일이 존재합니다.",
|
"MessageNoOverwrite":"출력 경로에 이미 %s 파일이 존재합니다.",
|
||||||
"MessageCudaOldDeviceError":"CUDA 장치가 오래되었습니다.r\nCompute Capability 2.0 이상 호환되는 장치를 사용해 주세요.",
|
"MessageCudaOldDeviceError":"CUDA 장치가 오래 되었습니다.r\nCompute Capability 3.0 이상의 장치를 사용해 주십시오.",
|
||||||
"OK":"확인",
|
"OK":"확인",
|
||||||
"Cancel":"취소",
|
"Cancel":"취소",
|
||||||
"IDC_STATIC_USE_GPU_NO":"사용할 GPU 번호",
|
"IDC_STATIC_USE_GPU_NO":"사용할 GPU 번호",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 일러스트 (UpRGB 모델)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 일러스트 (UpRGB모델)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"사진/애니메이션 (UpPhoto 모델)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"사진/애니메이션 (UpPhoto모델)",
|
||||||
"MessageLogFatalError":"치명적인 오류가 발생했습니다.\r\n분할 크기가 너무 크게 설정되어 있을 가능성이 있습니다."
|
"MessageLogFatalError":"치명적인 오류가 발생했습니다.\r\n분할 크기가 너무 크게 설정되어 있을 가능성이 있습니다.",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"bat 크기",
|
||||||
|
"MessageBatchSizeCheckError":"bat 크기는 0보다 큰 정수여야 합니다.",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2D 일러스트 (CUnet모델)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"이 모델의 분할 크기는 %d 로 나눠져야만 합니다."
|
||||||
}
|
}
|
||||||
|
105
bin/lang/portuguese_brazilian.json
Normal file
105
bin/lang/portuguese_brazilian.json
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"IDC_STATIC_IO_SETTING":"Config Entrada/Saída",
|
||||||
|
"IDC_STATIC_INPUT_PATH":"Entrada\r\n(arquivo ou pasta)",
|
||||||
|
"IDC_BUTTON_INPUT_REF":"Abrir",
|
||||||
|
"IDC_STATIC_OUTPUT_PATH":"Saída",
|
||||||
|
"IDC_STATIC_TANS_EXT_LIST":"Extensão da entrada",
|
||||||
|
"IDC_STATIC_OUTPUT_EXT":"Extensão da saída ",
|
||||||
|
"IDC_STATIC_OUTPUT_QUALITY":"Qualidade da saída",
|
||||||
|
"IDC_STATIC_OUTPUT_DEPTH":"Depth bits da saída",
|
||||||
|
"IDC_STATIC_AUTO_START":"Iniciar direto ao inserir arquivo",
|
||||||
|
"IDC_RADIO_AUTO_START_NONE":"Sem auto início",
|
||||||
|
"IDC_RADIO_AUTO_START_ONE":"Ao colocar um arquivo",
|
||||||
|
"IDC_RADIO_AUTO_START_MULTI":"Ao colocar vários arquivos ou uma pasta",
|
||||||
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"Qualidade da Imagem de Conversão e Config de Processamento",
|
||||||
|
"IDC_STATIC_TRANS_MODE":"Modo de Conversão",
|
||||||
|
"IDC_RADIO_MODE_NOISE_SCALE":"Reduzir Ruído e Aumentar",
|
||||||
|
"IDC_RADIO_MODE_SCALE":"Somente Aumentar",
|
||||||
|
"IDC_RADIO_MODE_NOISE":"Somente Reduzir Ruído",
|
||||||
|
"IDC_RADIO_AUTO_SCALE":"Aumentar e Auto Reduzir Ruído",
|
||||||
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"Reduzir Ruído",
|
||||||
|
"IDC_RADIONOISE_LEVEL0":"Nível 0",
|
||||||
|
"IDC_RADIONOISE_LEVEL1":"Nível 1",
|
||||||
|
"IDC_RADIONOISE_LEVEL2":"Nível 2",
|
||||||
|
"IDC_RADIONOISE_LEVEL3":"Nível 3",
|
||||||
|
"IDC_STATIC_SCALE_RATE":"Tamanho do Aumentar",
|
||||||
|
"IDC_RADIO_SCALE_RATIO":"Mudar por taxa",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH":"Mudar por largura",
|
||||||
|
"IDC_RADIO_SCALE_HEIGHT":"Mudar por altura",
|
||||||
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Mudar por largura/altura",
|
||||||
|
"IDC_STATIC_MODEL":"Modelo",
|
||||||
|
"IDC_RADIO_MODEL_RGB":"Ilustração 2-D (Modelo RGB)",
|
||||||
|
"IDC_RADIO_MODEL_PHOTO":"Fotografia, Anime",
|
||||||
|
"IDC_RADIO_MODEL_Y":"Ilustração 2-D (Modelo Y)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"Ilustração 2-D (UpResNet10)",
|
||||||
|
"IDC_CHECK_TTA":"Usar modo TTA",
|
||||||
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Config Velocidade de Processamento",
|
||||||
|
"IDC_STATIC_PROCESSOR":"Usar Processador",
|
||||||
|
"IDC_RADIO_MODE_GPU":"CUDA (usa cuDNN)",
|
||||||
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
|
"IDC_STATIC_CROP_SIZE":"Tamanho da divisão",
|
||||||
|
"IDC_BUTTON_CHECK_CUDNN":"Checar cuDNN",
|
||||||
|
"IDC_BUTTON_CANCEL":"Cancelar",
|
||||||
|
"IDC_BUTTON_EXEC":"Iniciar",
|
||||||
|
"IDC_STATIC_LANG_UI":"Idioma",
|
||||||
|
"IDC_BUTTON_OUTPUT_REF":"Abrir",
|
||||||
|
"IDC_BUTTON_APP_SETTING":"Config do App",
|
||||||
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Resetar dir. saída",
|
||||||
|
"IDC_STATIC_ARG_START":"Iniciar como argumento",
|
||||||
|
"IDC_CHECK_ARG_START_AUTO":"Iniciar quando lançado",
|
||||||
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Sair quando completado com sucesso",
|
||||||
|
"IDC_STATIC_INPUT_DIR_FIX":"Pasta fixa de entrada",
|
||||||
|
"IDC_STATIC_OUTPUT_DIR_FIX":"Pasta fixa de saída",
|
||||||
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"Não sobrescrever arquivos de saída",
|
||||||
|
"MessageUseProcessorMode":"Processador Usado: %s",
|
||||||
|
"MessageProcessTime":"Tempo de Processamento: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageInitTime":"Tempo de inicialização: %02d:%02d:%02d.%03d",
|
||||||
|
"MessagecuDNNCheckTime":"Tempo de checagem cuDNN: %02d:%02d:%02d.%03d",
|
||||||
|
"MessageTitleError":"Erro",
|
||||||
|
"MessageScaleRateCheckError":"Fator de escala deve ser maior que 0.0 e positivo",
|
||||||
|
"MessageScaleWidthCheckError":"Tamanho deve ser um inteiro maior que 0.",
|
||||||
|
"MessageCropSizeCheckError":"Tamanho da divisão deve ser maior que 0",
|
||||||
|
"MessageInputPathCheckError":"Por favor especifique o caminho de entrada",
|
||||||
|
"MessageOutputPathCheckError":"Por favor especifique o caminho de saída",
|
||||||
|
"MessageOutputExtCheckError":"Por favor especifique a extensão de saída",
|
||||||
|
"MessageInputCheckError":"Arquivo de entrada ou pasta não existe",
|
||||||
|
"MessageOutputExtentionCheckError":"Por favor selecione a extensão de saída",
|
||||||
|
"MessageOutputQualityCheckError":"Qualidade de saída está fora do limite",
|
||||||
|
"MessageOutputDepthCheckError":"Profundidade de bits está incorreta",
|
||||||
|
"MessageCudaNotFindError":"Entrada não pode ser convertida pela GPU\r\nO driver CUDA não está instalado. \r\nPor favor instale o driver CUDA",
|
||||||
|
"MessageCudaOldVersionError":"Entrada não pode ser convertida pela GPU\r\nA versão do driver CUDA é antiga \r\nPor favor atualize o driver CUDA",
|
||||||
|
"MessageTransSuccess":"Convertido com sucesso",
|
||||||
|
"MessageErrorHappen":"Ocorreu um erro",
|
||||||
|
"MessageCreateOutDirError":"Pasta de saída\r\n[%s]\r\ncriação falhou",
|
||||||
|
"MessageCancelError":"Conversão foi cancelada",
|
||||||
|
"MessageInvalidParameterError":"Parâmetro não é válido",
|
||||||
|
"MessageFailedOpenModelFileError":"Falha ao abrir o arquivo de modelo",
|
||||||
|
"MessageFailedParseModelFileError":"Falha ao analizar o arquivo de modelo",
|
||||||
|
"MessageFailedConstructModelError":"Falha ao construir o modelo",
|
||||||
|
"MessageFailedOpenInputFileError":"Falha ao abrir o arquivo de entrada %s",
|
||||||
|
"MessageFailedOpenOutputFileError":"Falha para escrever o arquivo de saída %s",
|
||||||
|
"MessageFailedProcessCaffeError":"Falha ao processar a interpolação",
|
||||||
|
"MessageTitleResult":"Resultado",
|
||||||
|
"MessagecuDNNOK":"cuDNN pode ser usado",
|
||||||
|
"MessagecuDNNNotFindError":"cuDNN não pode ser usado\r\n[%s]não encontrado",
|
||||||
|
"MessagecuDNNOldVersionError":"cuDNN não pode ser usado\r\n[%s]é uma versão antiga. Por favor use a v2",
|
||||||
|
"MessagecuDNNCannotCreateError":"cuDNN não pode ser usado\r\ncFalha ao iniciar o cuDNN",
|
||||||
|
"MessagecuDNNDefautlError":"cuDNN não pode ser usado",
|
||||||
|
"MessageExtStr":"Extensões do arquivo de entrada(%s)",
|
||||||
|
"MessageAllFileFolder":"Todos os arquivos e pastas(*.*)",
|
||||||
|
"MessageTitleInputDialog":"Por favor selecione o arquivo ou pasta de entrada",
|
||||||
|
"MessageTimeLeftUnknown":"Tempo Restante: Desconhecido",
|
||||||
|
"MessageTimeLeft":"Tempo Restante",
|
||||||
|
"MessageNoOverwrite":"Arquivo já existe no destino: %s",
|
||||||
|
"MessageCudaOldDeviceError":"Seu dispositivo CUDA é antigo.\r\nPor favor use um dispositivo com Compute Capability 2.0 ou superior",
|
||||||
|
"OK":"OK",
|
||||||
|
"Cancel":"Cancelar",
|
||||||
|
"IDC_STATIC_USE_GPU_NO":"Usar GPU Nº",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_RGB":"Ilustração 2-D (Modelo UpRGB)",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Foto (Modelo UpPhoto)",
|
||||||
|
"MessageLogFatalError":"Um erro fatal ocorreu.\r\nHá a possibilidade do tamanho da divisão ser muito grande",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"Tamanho da Batch",
|
||||||
|
"MessageBatchSizeCheckError":"Tamanho da batch deve ser maior que 0",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"Ilustração 2-D (Modelo CUnet)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"Tamanho da divisão deste modelo deve ser divisível por %d"
|
||||||
|
}
|
@ -31,6 +31,7 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"2D изображ. (Профиль RGB)",
|
"IDC_RADIO_MODEL_RGB":"2D изображ. (Профиль RGB)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"Фотография, Аниме",
|
"IDC_RADIO_MODEL_PHOTO":"Фотография, Аниме",
|
||||||
"IDC_RADIO_MODEL_Y":"2D изображ. (Профиль Y)",
|
"IDC_RADIO_MODEL_Y":"2D изображ. (Профиль Y)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2D изображ. (UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"В режиме TTA ",
|
"IDC_CHECK_TTA":"В режиме TTA ",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Скорость обработки",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Скорость обработки",
|
||||||
"IDC_STATIC_PROCESSOR":"Устройство обработки",
|
"IDC_STATIC_PROCESSOR":"Устройство обработки",
|
||||||
@ -96,5 +97,6 @@
|
|||||||
"IDC_STATIC_USE_GPU_NO":"Использ. GPU №",
|
"IDC_STATIC_USE_GPU_NO":"Использ. GPU №",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D изображ. (Профиль UpRGB)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2D изображ. (Профиль UpRGB)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Фото (Профиль UpPhoto)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Фото (Профиль UpPhoto)",
|
||||||
"MessageLogFatalError":"Произошла критическая ошибка.\r\nВозможно размер блока слишком большой"
|
"MessageLogFatalError":"Произошла критическая ошибка.\r\nВозможно размер блока слишком большой",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2D изображ. (Профиль CUnet)"
|
||||||
}
|
}
|
||||||
|
@ -1,100 +1,105 @@
|
|||||||
{
|
{
|
||||||
"IDC_STATIC_IO_SETTING":"Configuraciones de entrada/salida",
|
"IDC_STATIC_IO_SETTING":"Configuración de entrada y salida",
|
||||||
"IDC_STATIC_INPUT_PATH":"Ruta de entrada\r\n(archivo o carpeta)",
|
"IDC_STATIC_INPUT_PATH":"Ruta de entrada\r\n(archivo o carpeta)",
|
||||||
"IDC_BUTTON_INPUT_REF":"Examinar",
|
"IDC_BUTTON_INPUT_REF":"Explorar",
|
||||||
"IDC_STATIC_OUTPUT_PATH":"Ruta de entrada",
|
"IDC_STATIC_OUTPUT_PATH":"Ruta de salida",
|
||||||
"IDC_STATIC_TANS_EXT_LIST":"Extensiones de archivo de entrada",
|
"IDC_STATIC_TANS_EXT_LIST":"Extensiones de archivos de entrada",
|
||||||
"IDC_STATIC_OUTPUT_EXT":"Extensión de salida",
|
"IDC_STATIC_OUTPUT_EXT":"Extensión de salida",
|
||||||
"IDC_STATIC_OUTPUT_QUALITY":"Calidad de salida",
|
"IDC_STATIC_OUTPUT_QUALITY":"Calidad de salida",
|
||||||
"IDC_STATIC_OUTPUT_DEPTH":"Bits de profundidad de salida",
|
"IDC_STATIC_OUTPUT_DEPTH":"Profundidad de bits de salida",
|
||||||
"IDC_STATIC_AUTO_START":"Auto-iniciar cuando los archivos de entradas se hayan establecido",
|
"IDC_STATIC_AUTO_START":"Inicio automático al agregar archivos",
|
||||||
"IDC_RADIO_AUTO_START_NONE":"Sin auto-inicio",
|
"IDC_RADIO_AUTO_START_NONE":"Desactivado",
|
||||||
"IDC_RADIO_AUTO_START_ONE":"En el archivo de entrada",
|
"IDC_RADIO_AUTO_START_ONE":"Cuando se agregue un archivo",
|
||||||
"IDC_RADIO_AUTO_START_MULTI":"Al introducir varios archivos o una carpeta",
|
"IDC_RADIO_AUTO_START_MULTI":"Cuando se agreguen varios archivos o una carpeta",
|
||||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"Calidad de la conversión de imágen y configuración de proceso",
|
"IDC_STATIC_QUALITY_PROCESS_SETTING":"Calidad de conversión de la imagen y configuración de procesamiento",
|
||||||
"IDC_STATIC_TRANS_MODE":"Modo de conversión",
|
"IDC_STATIC_TRANS_MODE":"Modo de conversión",
|
||||||
"IDC_RADIO_MODE_NOISE_SCALE":"Reducir ruido y magnificar",
|
"IDC_RADIO_MODE_NOISE_SCALE":"Reducir ruido y ampliar",
|
||||||
"IDC_RADIO_MODE_SCALE":"Solo magnificar",
|
"IDC_RADIO_MODE_SCALE":"Solo ampliar",
|
||||||
"IDC_RADIO_MODE_NOISE":"Solo reducir ruido",
|
"IDC_RADIO_MODE_NOISE":"Solo reducir ruido",
|
||||||
"IDC_RADIO_AUTO_SCALE":"Magnificar y auto-reducir ruido",
|
"IDC_RADIO_AUTO_SCALE":"Ampliar y reducir ruido autom.",
|
||||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"Nivel de reducción de ruido",
|
"IDC_STATIC_JPEG_NOISE_LEVEL":"Nv. reducción ruido",
|
||||||
"IDC_RADIONOISE_LEVEL0":"Nivel 0",
|
"IDC_RADIONOISE_LEVEL0":"Nivel 0",
|
||||||
"IDC_RADIONOISE_LEVEL1":"Nivel 1",
|
"IDC_RADIONOISE_LEVEL1":"Nivel 1",
|
||||||
"IDC_RADIONOISE_LEVEL2":"Nivel 2",
|
"IDC_RADIONOISE_LEVEL2":"Nivel 2",
|
||||||
"IDC_RADIONOISE_LEVEL3":"Nivel 3",
|
"IDC_RADIONOISE_LEVEL3":"Nivel 3",
|
||||||
"IDC_STATIC_SCALE_RATE":"Tamaño de magnificación",
|
"IDC_STATIC_SCALE_RATE":"Tamaño de la ampliación",
|
||||||
"IDC_RADIO_SCALE_RATIO":"Establecer tasa",
|
"IDC_RADIO_SCALE_RATIO":"Multiplicador",
|
||||||
"IDC_RADIO_SCALE_WIDTH":"Establecer altura",
|
"IDC_RADIO_SCALE_WIDTH":"Ancho",
|
||||||
"IDC_RADIO_SCALE_HEIGHT":"Establecer anchura",
|
"IDC_RADIO_SCALE_HEIGHT":"Alto",
|
||||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Establecer altura y anchura",
|
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Ancho y alto",
|
||||||
"IDC_STATIC_MODEL":"Modelo",
|
"IDC_STATIC_MODEL":"Modelo",
|
||||||
"IDC_RADIO_MODEL_RGB":"Ilustración 2-D (Modelo RGB)",
|
"IDC_RADIO_MODEL_RGB":"Ilustración en 2D (modelo RGB)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"Fotografía, Anime",
|
"IDC_RADIO_MODEL_PHOTO":"Fotografía y anime",
|
||||||
"IDC_RADIO_MODEL_Y":"Ilustración 2-D (Modelo Y)",
|
"IDC_RADIO_MODEL_Y":"Ilustración en 2D (modelo Y)",
|
||||||
"IDC_CHECK_TTA":"Utilizar modo TTA",
|
"IDC_RADIO_MODEL_UpResNet10":"Ilustración en 2D (modelo UpResNet10)",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Procesar configuración de velocidad",
|
"IDC_CHECK_TTA":"Usar modo TTA",
|
||||||
"IDC_STATIC_PROCESSOR":"Utilizar el procesador",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"Configuración de velocidad de procesamiento",
|
||||||
"IDC_RADIO_MODE_GPU":"CUDA (necesita cuDNN)",
|
"IDC_STATIC_PROCESSOR":"Método de procesamiento",
|
||||||
|
"IDC_RADIO_MODE_GPU":"CUDA (con cuDNN)",
|
||||||
"IDC_RADIO_MODE_CPU":"CPU",
|
"IDC_RADIO_MODE_CPU":"CPU",
|
||||||
"IDC_STATIC_CROP_SIZE":"Tamaño de recorte",
|
"IDC_STATIC_CROP_SIZE":"Tamaño de división",
|
||||||
"IDC_BUTTON_CHECK_CUDNN":"Revisar cuDNN",
|
"IDC_BUTTON_CHECK_CUDNN":"Verificar cuDNN",
|
||||||
"IDC_BUTTON_CANCEL":"Cancelar",
|
"IDC_BUTTON_CANCEL":"Cancelar",
|
||||||
"IDC_BUTTON_EXEC":"Iniciar",
|
"IDC_BUTTON_EXEC":"Comenzar",
|
||||||
"IDC_STATIC_LANG_UI":"Idioma de la interfaz",
|
"IDC_STATIC_LANG_UI":"Idioma de la interfaz",
|
||||||
"IDC_BUTTON_OUTPUT_REF":"Examinar",
|
"IDC_BUTTON_OUTPUT_REF":"Explorar",
|
||||||
"IDC_BUTTON_APP_SETTING":"Configuración de la aplicación",
|
"IDC_BUTTON_APP_SETTING":"Configuración",
|
||||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Reiniciar ruta de salida",
|
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Rest. carpeta de salida",
|
||||||
"IDC_STATIC_ARG_START":"Iniciar con el argumento",
|
"IDC_STATIC_ARG_START":"Inicio con argumentos",
|
||||||
"IDC_CHECK_ARG_START_AUTO":"Iniciar cuando esté lanzado",
|
"IDC_CHECK_ARG_START_AUTO":"Comenzar al abrir",
|
||||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Salir al completarse exitósamente",
|
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Salir al terminar",
|
||||||
"IDC_STATIC_INPUT_DIR_FIX":"Carpeta reparada de entrada",
|
"IDC_STATIC_INPUT_DIR_FIX":"Carpeta de entrada fija",
|
||||||
"IDC_STATIC_OUTPUT_DIR_FIX":"Carpeta reparada de salida",
|
"IDC_STATIC_OUTPUT_DIR_FIX":"Carpeta de salida fija",
|
||||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"Archivos de salida sin sobrescribir",
|
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"No reemplazar los archivos de salida",
|
||||||
"MessageUseProcessorMode":"Procesador utilizado: %s",
|
"MessageUseProcessorMode":"Se usará el método de procesamiento %s",
|
||||||
"MessageProcessTime":"Tiempo de proceso: %02d:%02d:%02d.%03d",
|
"MessageProcessTime":"Tiempo de procesamiento: %02d:%02d:%02d.%03d",
|
||||||
"MessageInitTime":"Tiempo de inicializaión: %02d:%02d:%02d.%03d",
|
"MessageInitTime":"Tiempo de inicialización: %02d:%02d:%02d.%03d",
|
||||||
"MessagecuDNNCheckTime":"Tiempo de revisión de cuDNN: %02d:%02d:%02d.%03d",
|
"MessagecuDNNCheckTime":"Tiempo de comprobación de cuDNN: %02d:%02d:%02d.%03d",
|
||||||
"MessageTitleError":"Error",
|
"MessageTitleError":"Error",
|
||||||
"MessageScaleRateCheckError":"El factor de escala debe ser mayor de 0.0 y un número positivo",
|
"MessageScaleRateCheckError":"El factor de ampliación debe ser mayor que 0.0.",
|
||||||
"MessageScaleWidthCheckError":"El tamaño debe ser un número entero y mayor de 0.",
|
"MessageScaleWidthCheckError":"El tamaño debe ser un número entero mayor que 0.",
|
||||||
"MessageCropSizeCheckError":"El tamaño de recorte debe ser mayor de 0",
|
"MessageCropSizeCheckError":"El tamaño de división debe ser mayor que 0.",
|
||||||
"MessageInputPathCheckError":"Por favor especifica la ruta de entrada",
|
"MessageInputPathCheckError":"Debes especificar la ruta de entrada.",
|
||||||
"MessageOutputPathCheckError":"Por favor especifica la ruta de salida",
|
"MessageOutputPathCheckError":"Debes especificar la ruta de salida.",
|
||||||
"MessageOutputExtCheckError":"Por favor especifica la extensión de salida",
|
"MessageOutputExtCheckError":"Debes especificar la extensión de salida.",
|
||||||
"MessageInputCheckError":"El archivo o carpeta de entrada no existe",
|
"MessageInputCheckError":"El archivo o la carpeta de entrada no existe.",
|
||||||
"MessageOutputExtentionCheckError":"Por favor selecciona la extensión de salida",
|
"MessageOutputExtentionCheckError":"Debes elegir la extensión de salida.",
|
||||||
"MessageOutputQualityCheckError":"La calidad de salida está fuera de rango",
|
"MessageOutputQualityCheckError":"La calidad de salida está fuera del rango admitido.",
|
||||||
"MessageOutputDepthCheckError":"La profundidad de bits de salida es incorrecto",
|
"MessageOutputDepthCheckError":"La profundidad de bits de salida no es válida.",
|
||||||
"MessageCudaNotFindError":"La entrada no puede ser convertida por el GPU\r\nEl dispositivo CUDA no está instalado. \r\nPor favor instala el dispositivo CUDA",
|
"MessageCudaNotFindError":"La GPU no puede convertir el archivo de entrada.\r\nEs posible que el controlador CUDA no esté instalado, instálalo.",
|
||||||
"MessageCudaOldVersionError":"La entrada no puede ser convertida por el GPU\r\nEl dispositivo CUDA es antiguo \r\nPor favor actualiza el dispositivo CUDA",
|
"MessageCudaOldVersionError":"La GPU no puede convertir el archivo de entrada.\r\nEs posible que la versión del controlador CUDA esté desactualizada.\r\nActualiza el controlador CUDA.",
|
||||||
"MessageTransSuccess":"Convertido exitósamente",
|
"MessageTransSuccess":"Conversión exitosa.",
|
||||||
"MessageErrorHappen":"Un error ocurrió",
|
"MessageErrorHappen":"Ocurrió un error.",
|
||||||
"MessageCreateOutDirError":"Carpeta de salida\r\n[%s]\r\nCreación fallida",
|
"MessageCreateOutDirError":"No se pudo crear la carpeta de salida\r\n[%s].",
|
||||||
"MessageCancelError":"La conversión ha sido cancelada",
|
"MessageCancelError":"Se canceló la conversión.",
|
||||||
"MessageInvalidParameterError":"El parámetro es inválido",
|
"MessageInvalidParameterError":"El parámetro no es válido.",
|
||||||
"MessageFailedOpenModelFileError":"Algo falló al abrir el archivo de modelo",
|
"MessageFailedOpenModelFileError":"No se pudo abrir el archivo de modelo.",
|
||||||
"MessageFailedParseModelFileError":"Algo falló al analizar el archivo de modelo",
|
"MessageFailedParseModelFileError":"No se pudo analizar el archivo de modelo.",
|
||||||
"MessageFailedConstructModelError":"Algo falló al construir el modelo",
|
"MessageFailedConstructModelError":"No se pudo construir el modelo.",
|
||||||
"MessageFailedOpenInputFileError":"Algo falló al abrir el archivo de entrada %s",
|
"MessageFailedOpenInputFileError":"No se pudo abrir el archivo de entrada %s.",
|
||||||
"MessageFailedOpenOutputFileError":"Algo falló al generar el archivo de salida %s",
|
"MessageFailedOpenOutputFileError":"No se pudo escribir el archivo de salida %s.",
|
||||||
"MessageFailedProcessCaffeError":"Algo falló al procesar la interpolación",
|
"MessageFailedProcessCaffeError":"No se pudo procesar la interpolación.",
|
||||||
"MessageTitleResult":"Resultado",
|
"MessageTitleResult":"Resultado",
|
||||||
"MessagecuDNNOK":"cuDNN puede ser utilizado",
|
"MessagecuDNNOK":"Puedes usar cuDNN.",
|
||||||
"MessagecuDNNNotFindError":"cuDNN no se puede utilizar\r\n[%s]no encontrado",
|
"MessagecuDNNNotFindError":"No puedes usar cuDNN porque no se encontró [%s].",
|
||||||
"MessagecuDNNOldVersionError":"cuDNN no se puede utilizar\r\n[%s]es una versión antigua. Por favor utiliza v2",
|
"MessagecuDNNOldVersionError":"No puedes usar cuDNN porque la versión de [%s] es muy antigua.\r\nUsa la versión 2.",
|
||||||
"MessagecuDNNCannotCreateError":"cuDNN no se puede utilizar\r\nLa inicialización de cuDNN falló",
|
"MessagecuDNNCannotCreateError":"No puedes usar cuDNN porque no se pudo inicializar.",
|
||||||
"MessagecuDNNDefautlError":"cuDNN no se puede utilizar",
|
"MessagecuDNNDefautlError":"No puedes usar cuDNN.",
|
||||||
"MessageExtStr":"Extensiones de archivos de entrada(%s)",
|
"MessageExtStr":"Extensiones de archivos de entrada (%s)",
|
||||||
"MessageAllFileFolder":"Todos los archivos y carpetas(*.*)",
|
"MessageAllFileFolder":"Todos los archivos (*.*)",
|
||||||
"MessageTitleInputDialog":"Por favor selecciona el archivo o carpeta de entrada",
|
"MessageTitleInputDialog":"Elige un archivo o una carpeta de entrada.",
|
||||||
"MessageTimeLeftUnknown":"Tiempo agotado: Desconocido",
|
"MessageTimeLeftUnknown":"Tiempo restante: Desconocido",
|
||||||
"MessageTimeLeft":"Tiempo agotado",
|
"MessageTimeLeft":"Tiempo restante",
|
||||||
"MessageNoOverwrite":"Ya existe un archivo en la ruta de destino: %s",
|
"MessageNoOverwrite":"El archivo %s ya existe en la ruta de destino.",
|
||||||
"MessageCudaOldDeviceError":"Tu dispositivo CUDA es muy antiguo.\r\nPor favor utiliza un dispositivo con Compute Capability 2.0 o superior",
|
"MessageCudaOldDeviceError":"El dispositivo CUDA es muy antiguo.\r\nUsa un dispositivo compatible con Compute Capability 2.0 o posterior.",
|
||||||
"OK":"OK",
|
"OK":"Aceptar",
|
||||||
"Cancel":"Cancelar",
|
"Cancel":"Cancelar",
|
||||||
"IDC_STATIC_USE_GPU_NO":"No utilizar GPU",
|
"IDC_STATIC_USE_GPU_NO":"Usar la GPU n.º",
|
||||||
"IDC_RADIO_MODEL_UPCONV_RGB":"Ilustración (Modelo UpRGB)",
|
"IDC_RADIO_MODEL_UPCONV_RGB":"Ilustración en 2D (modelo UpRGB)",
|
||||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Fotografía (Modelo UpPhoto)",
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Fotografía (modelo UpPhoto)",
|
||||||
"MessageLogFatalError":"Un error fatal ocurrió.\r\nExiste una posibilidad de que el tamaño de recorte sea muy grande."
|
"MessageLogFatalError":"Ocurrió un error irrecuperable.\r\nEs posible que el tamaño de división sea demasiado grande.",
|
||||||
|
"IDC_STATIC_BATCH_SIZE":"Tamaño de lote",
|
||||||
|
"MessageBatchSizeCheckError":"El tamaño de lote debe ser mayor que 0.",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"Ilustración en 2D (modelo CUnet)",
|
||||||
|
"MessageCropSizeDivisibleCheckError":"El tamaño de división de este modelo debe ser divisible por %d."
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
"IDC_RADIO_MODEL_RGB":"2-B çizim (RGB Modeli)",
|
"IDC_RADIO_MODEL_RGB":"2-B çizim (RGB Modeli)",
|
||||||
"IDC_RADIO_MODEL_PHOTO":"Fotoğrafçılık veya Anime",
|
"IDC_RADIO_MODEL_PHOTO":"Fotoğrafçılık veya Anime",
|
||||||
"IDC_RADIO_MODEL_Y":"2-B çizim (Y Modeli)",
|
"IDC_RADIO_MODEL_Y":"2-B çizim (Y Modeli)",
|
||||||
|
"IDC_RADIO_MODEL_UpResNet10":"2-B çizim (UpResNet10)",
|
||||||
"IDC_CHECK_TTA":"TTA Modu Kullan",
|
"IDC_CHECK_TTA":"TTA Modu Kullan",
|
||||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"İşleme Hızı Ayarları",
|
"IDC_STATIC_PROCESS_SPEED_SETTING":"İşleme Hızı Ayarları",
|
||||||
"IDC_STATIC_PROCESSOR":"",
|
"IDC_STATIC_PROCESSOR":"",
|
||||||
@ -79,5 +80,8 @@
|
|||||||
"MessageAllFileFolder":"Bütün dosyalar ve klasörler(*.*)",
|
"MessageAllFileFolder":"Bütün dosyalar ve klasörler(*.*)",
|
||||||
"MessageTitleInputDialog":"Lütfen girdi dosyası veya klasörü seçin",
|
"MessageTitleInputDialog":"Lütfen girdi dosyası veya klasörü seçin",
|
||||||
"MessageTimeLeftUnknown":"Kalan Süre: Bilinmiyor",
|
"MessageTimeLeftUnknown":"Kalan Süre: Bilinmiyor",
|
||||||
"MessageTimeLeft":"Kalan Süre"
|
"MessageTimeLeft":"Kalan Süre",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_RGB":"2-B çizim (UpRGB Modeli)",
|
||||||
|
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Fotoğrafçılık veya Anime (UpPhoto Modeli)",
|
||||||
|
"IDC_RADIO_MODEL_CUNET":"2-B çizim (CUnet Modeli)"
|
||||||
}
|
}
|
||||||
|
4
bin/models/cunet/info.json
Normal file
4
bin/models/cunet/info.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{"name":"CUnet","arch_name":"upcunet","has_noise_scale":true,"has_noise_only":true,"channels":3,"force_divisible_crop_size":4,
|
||||||
|
"scale_factor":2,"offset":36,
|
||||||
|
"scale_factor_noise":1,"offset_noise":28
|
||||||
|
}
|
1
bin/models/cunet/noise0_model.json
Normal file
1
bin/models/cunet/noise0_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise0_model.prototxt
Normal file
794
bin/models/cunet/noise0_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 312
|
||||||
|
dim: 312
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution26"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution27"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution27"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise0_scale2.0x_model.json
Normal file
1
bin/models/cunet/noise0_scale2.0x_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise0_scale2.0x_model.prototxt
Normal file
794
bin/models/cunet/noise0_scale2.0x_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 200
|
||||||
|
dim: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 3
|
||||||
|
kernel_size: 4
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution9"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution4"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise1_model.json
Normal file
1
bin/models/cunet/noise1_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise1_model.prototxt
Normal file
794
bin/models/cunet/noise1_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 312
|
||||||
|
dim: 312
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution26"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution27"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution27"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise1_scale2.0x_model.json
Normal file
1
bin/models/cunet/noise1_scale2.0x_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise1_scale2.0x_model.prototxt
Normal file
794
bin/models/cunet/noise1_scale2.0x_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 200
|
||||||
|
dim: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 3
|
||||||
|
kernel_size: 4
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution9"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution4"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise2_model.json
Normal file
1
bin/models/cunet/noise2_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise2_model.prototxt
Normal file
794
bin/models/cunet/noise2_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 312
|
||||||
|
dim: 312
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution26"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution27"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution27"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise2_scale2.0x_model.json
Normal file
1
bin/models/cunet/noise2_scale2.0x_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise2_scale2.0x_model.prototxt
Normal file
794
bin/models/cunet/noise2_scale2.0x_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 200
|
||||||
|
dim: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 3
|
||||||
|
kernel_size: 4
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution9"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution4"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise3_model.json
Normal file
1
bin/models/cunet/noise3_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise3_model.prototxt
Normal file
794
bin/models/cunet/noise3_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 312
|
||||||
|
dim: 312
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution26"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution27"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Convolution27"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution27"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/noise3_scale2.0x_model.json
Normal file
1
bin/models/cunet/noise3_scale2.0x_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/noise3_scale2.0x_model.prototxt
Normal file
794
bin/models/cunet/noise3_scale2.0x_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 200
|
||||||
|
dim: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 3
|
||||||
|
kernel_size: 4
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution9"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution4"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
bin/models/cunet/scale2.0x_model.json
Normal file
1
bin/models/cunet/scale2.0x_model.json
Normal file
File diff suppressed because one or more lines are too long
794
bin/models/cunet/scale2.0x_model.prototxt
Normal file
794
bin/models/cunet/scale2.0x_model.prototxt
Normal file
@ -0,0 +1,794 @@
|
|||||||
|
layer {
|
||||||
|
name: "input"
|
||||||
|
type: "Input"
|
||||||
|
top: "Input1"
|
||||||
|
input_param {
|
||||||
|
shape {
|
||||||
|
dim: 1
|
||||||
|
dim: 3
|
||||||
|
dim: 200
|
||||||
|
dim: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution1"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Input1"
|
||||||
|
top: "Convolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU1"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution2"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution1"
|
||||||
|
top: "Convolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU2"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution2"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution3"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
top: "Convolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU3"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution4"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution3"
|
||||||
|
top: "Convolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU4"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution5"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution4"
|
||||||
|
top: "Convolution5"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU5"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Convolution5"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling1"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
top: "Pooling1"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution6"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling1"
|
||||||
|
top: "Convolution6"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU6"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution6"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution7"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution6"
|
||||||
|
top: "Convolution7"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid1"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Convolution7"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten1"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution7"
|
||||||
|
top: "Flatten1"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale1"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution5"
|
||||||
|
bottom: "Flatten1"
|
||||||
|
top: "Scale1"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution1"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU7"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Deconvolution1"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop1"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution2"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Crop1"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise1"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop1"
|
||||||
|
bottom: "Deconvolution1"
|
||||||
|
top: "Eltwise1"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution8"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise1"
|
||||||
|
top: "Convolution8"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU8"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Convolution8"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution2"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Convolution8"
|
||||||
|
top: "Deconvolution2"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 3
|
||||||
|
kernel_size: 4
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution9"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
top: "Convolution9"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 32
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU9"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution9"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution10"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution9"
|
||||||
|
top: "Convolution10"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU10"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution10"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution11"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
top: "Convolution11"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU11"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution11"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution12"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution11"
|
||||||
|
top: "Convolution12"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU12"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution12"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution13"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution12"
|
||||||
|
top: "Convolution13"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU13"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Convolution13"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling2"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
top: "Pooling2"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution14"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling2"
|
||||||
|
top: "Convolution14"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU14"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution14"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution15"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution14"
|
||||||
|
top: "Convolution15"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid2"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Convolution15"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten2"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution15"
|
||||||
|
top: "Flatten2"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale2"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution13"
|
||||||
|
bottom: "Flatten2"
|
||||||
|
top: "Scale2"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution16"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Scale2"
|
||||||
|
top: "Convolution16"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU15"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution16"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution17"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution16"
|
||||||
|
top: "Convolution17"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 256
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU16"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution17"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution18"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution17"
|
||||||
|
top: "Convolution18"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU17"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Convolution18"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling3"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
top: "Pooling3"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution19"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling3"
|
||||||
|
top: "Convolution19"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 16
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU18"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution19"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution20"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution19"
|
||||||
|
top: "Convolution20"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid3"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Convolution20"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten3"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution20"
|
||||||
|
top: "Flatten3"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale3"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution18"
|
||||||
|
bottom: "Flatten3"
|
||||||
|
top: "Scale3"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution3"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 128
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU19"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Deconvolution3"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop2"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Scale2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Crop2"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise2"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop2"
|
||||||
|
bottom: "Deconvolution3"
|
||||||
|
top: "Eltwise2"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution21"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise2"
|
||||||
|
top: "Convolution21"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU20"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution21"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution22"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution21"
|
||||||
|
top: "Convolution22"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU21"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Convolution22"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Pooling4"
|
||||||
|
type: "Pooling"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
top: "Pooling4"
|
||||||
|
pooling_param {
|
||||||
|
pool: AVE
|
||||||
|
global_pooling: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution23"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Pooling4"
|
||||||
|
top: "Convolution23"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 8
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU22"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution23"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution24"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution23"
|
||||||
|
top: "Convolution24"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 1
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Sigmoid4"
|
||||||
|
type: "Sigmoid"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Convolution24"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Flatten4"
|
||||||
|
type: "Flatten"
|
||||||
|
bottom: "Convolution24"
|
||||||
|
top: "Flatten4"
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Scale4"
|
||||||
|
type: "Scale"
|
||||||
|
bottom: "Convolution22"
|
||||||
|
bottom: "Flatten4"
|
||||||
|
top: "Scale4"
|
||||||
|
scale_param {
|
||||||
|
axis: 0
|
||||||
|
bias_term: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Deconvolution4"
|
||||||
|
type: "Deconvolution"
|
||||||
|
bottom: "Scale4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 2
|
||||||
|
stride: 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU23"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Deconvolution4"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop3"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Convolution10"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Crop3"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise3"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop3"
|
||||||
|
bottom: "Deconvolution4"
|
||||||
|
top: "Eltwise3"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution25"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Eltwise3"
|
||||||
|
top: "Convolution25"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 64
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "ReLU24"
|
||||||
|
type: "ReLU"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution25"
|
||||||
|
relu_param {
|
||||||
|
negative_slope: 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Convolution26"
|
||||||
|
type: "Convolution"
|
||||||
|
bottom: "Convolution25"
|
||||||
|
top: "Convolution26"
|
||||||
|
convolution_param {
|
||||||
|
num_output: 3
|
||||||
|
pad: 0
|
||||||
|
kernel_size: 3
|
||||||
|
stride: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Crop4"
|
||||||
|
type: "Crop"
|
||||||
|
bottom: "Deconvolution2"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Crop4"
|
||||||
|
crop_param {
|
||||||
|
axis: 2
|
||||||
|
offset: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer {
|
||||||
|
name: "Eltwise4"
|
||||||
|
type: "Eltwise"
|
||||||
|
bottom: "Crop4"
|
||||||
|
bottom: "Convolution26"
|
||||||
|
top: "Eltwise4"
|
||||||
|
eltwise_param {
|
||||||
|
operation: SUM
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
3
bin/models/upresnet10/info.json
Normal file
3
bin/models/upresnet10/info.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{"name":"UpResNet10","arch_name":"upresnet10","has_noise_scale":true,"channels":3,
|
||||||
|
"scale_factor":2,"offset":26,"recommended_crop_size":38
|
||||||
|
}
|
BIN
bin/models/upresnet10/noise0_scale2.0x_model.json.caffemodel
Normal file
BIN
bin/models/upresnet10/noise0_scale2.0x_model.json.caffemodel
Normal file
Binary file not shown.
904
bin/models/upresnet10/noise0_scale2.0x_model.prototxt
Normal file
904
bin/models/upresnet10/noise0_scale2.0x_model.prototxt
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
bin/models/upresnet10/noise1_scale2.0x_model.json.caffemodel
Normal file
BIN
bin/models/upresnet10/noise1_scale2.0x_model.json.caffemodel
Normal file
Binary file not shown.
904
bin/models/upresnet10/noise1_scale2.0x_model.prototxt
Normal file
904
bin/models/upresnet10/noise1_scale2.0x_model.prototxt
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
bin/models/upresnet10/noise2_scale2.0x_model.json.caffemodel
Normal file
BIN
bin/models/upresnet10/noise2_scale2.0x_model.json.caffemodel
Normal file
Binary file not shown.
904
bin/models/upresnet10/noise2_scale2.0x_model.prototxt
Normal file
904
bin/models/upresnet10/noise2_scale2.0x_model.prototxt
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
bin/models/upresnet10/noise3_scale2.0x_model.json.caffemodel
Normal file
BIN
bin/models/upresnet10/noise3_scale2.0x_model.json.caffemodel
Normal file
Binary file not shown.
904
bin/models/upresnet10/noise3_scale2.0x_model.prototxt
Normal file
904
bin/models/upresnet10/noise3_scale2.0x_model.prototxt
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
bin/models/upresnet10/scale2.0x_model.json.caffemodel
Normal file
BIN
bin/models/upresnet10/scale2.0x_model.json.caffemodel
Normal file
Binary file not shown.
904
bin/models/upresnet10/scale2.0x_model.prototxt
Normal file
904
bin/models/upresnet10/scale2.0x_model.prototxt
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
6
bin/waifu2x-caffe-gui_nocuda.bat
Normal file
6
bin/waifu2x-caffe-gui_nocuda.bat
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
cd "%~dp0"
|
||||||
|
|
||||||
|
set CUDA_VISIBLE_DEVICES=-1
|
||||||
|
start waifu2x-caffe-gui.exe
|
1
caffe
Submodule
1
caffe
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9d5aa36c65a0082768f10c1d474c56d8a7cc9934
|
27
caffe_build.bat
Normal file
27
caffe_build.bat
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
cd /d "%~dp0"
|
||||||
|
|
||||||
|
cd caffe
|
||||||
|
|
||||||
|
set MSVC_VERSION=14
|
||||||
|
set USE_CUDNN=1
|
||||||
|
set USE_NCCL=0
|
||||||
|
set USE_OPENCV=0
|
||||||
|
set USE_LEVELDB=0
|
||||||
|
set USE_LMDB=0
|
||||||
|
set USE_HDF5=0
|
||||||
|
set WITH_NINJA=0
|
||||||
|
set CPU_ONLY=0
|
||||||
|
set CUDA_ARCH_NAME=Manual
|
||||||
|
set CMAKE_CONFIG=Release
|
||||||
|
set WITH_CUDA=1
|
||||||
|
set BUILD_PYTHON=0
|
||||||
|
set BUILD_PYTHON_LAYER=0
|
||||||
|
set RUN_TESTS=0
|
||||||
|
set CMAKE_INSTALL_PREFIX=../../lib
|
||||||
|
set RUN_INSTALL=1
|
||||||
|
set CUDA_ARCH_BIN=35 50 52 53 60 61 62 70 75 80
|
||||||
|
set CUDA_ARCH_PTX=80
|
||||||
|
|
||||||
|
scripts\build_win.cmd
|
@ -174,7 +174,7 @@ cNet::cNet() : mModelScale(0), mInnerScale(0), mNetOffset(0), mInputPlane(0), mH
|
|||||||
cNet::~cNet()
|
cNet::~cNet()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path, stInfo &info)
|
Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path, Waifu2x::stInfo &info)
|
||||||
{
|
{
|
||||||
rapidjson::Document d;
|
rapidjson::Document d;
|
||||||
std::vector<char> jsonBuf;
|
std::vector<char> jsonBuf;
|
||||||
@ -190,12 +190,16 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
const auto name = d["name"].GetString();
|
const auto name = d["name"].GetString();
|
||||||
const auto arch_name = d["arch_name"].GetString();
|
const auto arch_name = d["arch_name"].GetString();
|
||||||
const bool has_noise_scale = d.HasMember("has_noise_scale") && d["has_noise_scale"].GetBool() ? true : false;
|
const bool has_noise_scale = d.HasMember("has_noise_scale") && d["has_noise_scale"].GetBool() ? true : false;
|
||||||
|
const bool has_noise_only = d.HasMember("has_noise_only") && d["has_noise_only"].GetBool() ? true : false;
|
||||||
const int channels = d["channels"].GetInt();
|
const int channels = d["channels"].GetInt();
|
||||||
|
const int force_divisible_crop_size = d.HasMember("force_divisible_crop_size") ? d["force_divisible_crop_size"].GetInt() : 1;
|
||||||
|
|
||||||
info.name = name;
|
info.name = name;
|
||||||
info.arch_name = arch_name;
|
info.arch_name = arch_name;
|
||||||
info.has_noise_scale = has_noise_scale;
|
info.has_noise_scale = has_noise_scale;
|
||||||
|
info.has_noise_only = has_noise_only;
|
||||||
info.channels = channels;
|
info.channels = channels;
|
||||||
|
info.force_divisible_crop_size = force_divisible_crop_size;
|
||||||
|
|
||||||
if (d.HasMember("offset"))
|
if (d.HasMember("offset"))
|
||||||
{
|
{
|
||||||
@ -215,6 +219,14 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
info.noise_scale.scale_factor = scale_factor;
|
info.noise_scale.scale_factor = scale_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d.HasMember("recommended_crop_size"))
|
||||||
|
{
|
||||||
|
const int recommended_crop_size = d["recommended_crop_size"].GetInt();
|
||||||
|
info.noise.recommended_crop_size = recommended_crop_size;
|
||||||
|
info.scale.recommended_crop_size = recommended_crop_size;
|
||||||
|
info.noise_scale.recommended_crop_size = recommended_crop_size;
|
||||||
|
}
|
||||||
|
|
||||||
if (d.HasMember("offset_noise"))
|
if (d.HasMember("offset_noise"))
|
||||||
{
|
{
|
||||||
const int offset = d["offset_noise"].GetInt();
|
const int offset = d["offset_noise"].GetInt();
|
||||||
@ -227,6 +239,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
info.noise.scale_factor = scale_factor;
|
info.noise.scale_factor = scale_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d.HasMember("recommended_crop_size_noise"))
|
||||||
|
{
|
||||||
|
const int recommended_crop_size = d["recommended_crop_size_noise"].GetInt();
|
||||||
|
info.noise.recommended_crop_size = recommended_crop_size;
|
||||||
|
}
|
||||||
|
|
||||||
if (d.HasMember("offset_scale"))
|
if (d.HasMember("offset_scale"))
|
||||||
{
|
{
|
||||||
const int offset = d["offset_scale"].GetInt();
|
const int offset = d["offset_scale"].GetInt();
|
||||||
@ -239,6 +257,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
info.scale.scale_factor = scale_factor;
|
info.scale.scale_factor = scale_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d.HasMember("recommended_crop_size_scale"))
|
||||||
|
{
|
||||||
|
const int recommended_crop_size = d["recommended_crop_size_scale"].GetInt();
|
||||||
|
info.scale.recommended_crop_size = recommended_crop_size;
|
||||||
|
}
|
||||||
|
|
||||||
if (d.HasMember("offset_noise_scale"))
|
if (d.HasMember("offset_noise_scale"))
|
||||||
{
|
{
|
||||||
const int offset = d["offset_noise_scale"].GetInt();
|
const int offset = d["offset_noise_scale"].GetInt();
|
||||||
@ -250,6 +274,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
const int scale_factor = d["scale_factor_noise_scale"].GetInt();
|
const int scale_factor = d["scale_factor_noise_scale"].GetInt();
|
||||||
info.noise_scale.scale_factor = scale_factor;
|
info.noise_scale.scale_factor = scale_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (d.HasMember("recommended_crop_size_noise_scale"))
|
||||||
|
{
|
||||||
|
const int recommended_crop_size = d["recommended_crop_size_noise_scale"].GetInt();
|
||||||
|
info.noise_scale.recommended_crop_size = recommended_crop_size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
@ -261,7 +291,7 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
|||||||
|
|
||||||
// モデルファイルからネットワークを構築
|
// モデルファイルからネットワークを構築
|
||||||
// processでcudnnが指定されなかった場合はcuDNNが呼び出されないように変更する
|
// processでcudnnが指定されなかった場合はcuDNNが呼び出されないように変更する
|
||||||
Waifu2x::eWaifu2xError cNet::ConstractNet(const Waifu2x::eWaifu2xModelType mode, const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path, const stInfo &info, const std::string &process)
|
Waifu2x::eWaifu2xError cNet::ConstractNet(const Waifu2x::eWaifu2xModelType mode, const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path, const Waifu2x::stInfo &info, const std::string &process)
|
||||||
{
|
{
|
||||||
Waifu2x::eWaifu2xError ret;
|
Waifu2x::eWaifu2xError ret;
|
||||||
|
|
||||||
@ -280,8 +310,20 @@ Waifu2x::eWaifu2xError cNet::ConstractNet(const Waifu2x::eWaifu2xModelType mode,
|
|||||||
const auto retModelBin = readProtoBinary(modelbin_path, ¶m_model);
|
const auto retModelBin = readProtoBinary(modelbin_path, ¶m_model);
|
||||||
const auto retParamBin = readProtoBinary(caffemodel_path, ¶m_caffemodel);
|
const auto retParamBin = readProtoBinary(caffemodel_path, ¶m_caffemodel);
|
||||||
|
|
||||||
if (retModelBin == Waifu2x::eWaifu2xError_OK && retParamBin == Waifu2x::eWaifu2xError_OK)
|
if ( retParamBin == Waifu2x::eWaifu2xError_OK &&
|
||||||
|
(retModelBin == Waifu2x::eWaifu2xError_OK || retModelBin == Waifu2x::eWaifu2xError_FailedOpenModelFile))
|
||||||
{
|
{
|
||||||
|
if (retModelBin == Waifu2x::eWaifu2xError_FailedOpenModelFile) // protobinのみが読み込めなかったときはprototxtから読み込む(ついでにprotobinも書き込む)
|
||||||
|
{
|
||||||
|
ret = readProtoText(model_path, ¶m_model);
|
||||||
|
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = writeProtoBinary(param_model, modelbin_path);
|
||||||
|
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
ret = SetParameter(param_model, process);
|
ret = SetParameter(param_model, process);
|
||||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||||
return ret;
|
return ret;
|
||||||
@ -309,11 +351,11 @@ Waifu2x::eWaifu2xError cNet::ConstractNet(const Waifu2x::eWaifu2xModelType mode,
|
|||||||
return Waifu2x::eWaifu2xError_OK;
|
return Waifu2x::eWaifu2xError_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cNet::LoadParamFromInfo(const Waifu2x::eWaifu2xModelType mode, const stInfo &info)
|
void cNet::LoadParamFromInfo(const Waifu2x::eWaifu2xModelType mode, const Waifu2x::stInfo &info)
|
||||||
{
|
{
|
||||||
mModelScale = 2; // TODO: 動的に設定するようにする
|
mModelScale = 2; // TODO: 動的に設定するようにする
|
||||||
|
|
||||||
stInfo::stParam param;
|
Waifu2x::stInfo::stParam param;
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
@ -376,6 +418,20 @@ Waifu2x::eWaifu2xError cNet::SetParameter(caffe::NetParameter ¶m, const std:
|
|||||||
else
|
else
|
||||||
layer_param->mutable_relu_param()->set_engine(caffe::ReLUParameter_Engine_CAFFE);
|
layer_param->mutable_relu_param()->set_engine(caffe::ReLUParameter_Engine_CAFFE);
|
||||||
}
|
}
|
||||||
|
else if (type == "Sigmoid")
|
||||||
|
{
|
||||||
|
if (process == "cudnn")
|
||||||
|
layer_param->mutable_sigmoid_param()->set_engine(caffe::SigmoidParameter_Engine_CUDNN);
|
||||||
|
else
|
||||||
|
layer_param->mutable_sigmoid_param()->set_engine(caffe::SigmoidParameter_Engine_CAFFE);
|
||||||
|
}
|
||||||
|
else if (type == "Pooling")
|
||||||
|
{
|
||||||
|
if (process == "cudnn")
|
||||||
|
layer_param->mutable_pooling_param()->set_engine(caffe::PoolingParameter_Engine_CUDNN);
|
||||||
|
else
|
||||||
|
layer_param->mutable_pooling_param()->set_engine(caffe::PoolingParameter_Engine_CAFFE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Waifu2x::eWaifu2xError_OK;
|
return Waifu2x::eWaifu2xError_OK;
|
||||||
@ -435,9 +491,6 @@ Waifu2x::eWaifu2xError cNet::LoadParameterFromJson(const boost::filesystem::path
|
|||||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d.Size() != 7)
|
|
||||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
|
||||||
|
|
||||||
int inputPlane = 0;
|
int inputPlane = 0;
|
||||||
int outputPlane = 0;
|
int outputPlane = 0;
|
||||||
try
|
try
|
||||||
@ -456,9 +509,6 @@ Waifu2x::eWaifu2xError cNet::LoadParameterFromJson(const boost::filesystem::path
|
|||||||
if (inputPlane != outputPlane)
|
if (inputPlane != outputPlane)
|
||||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||||
|
|
||||||
//if (param.layer_size() < 17)
|
|
||||||
// return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
|
||||||
|
|
||||||
std::vector<boost::shared_ptr<caffe::Layer<float>>> list;
|
std::vector<boost::shared_ptr<caffe::Layer<float>>> list;
|
||||||
auto &v = mNet->layers();
|
auto &v = mNet->layers();
|
||||||
for (auto &l : v)
|
for (auto &l : v)
|
||||||
@ -812,7 +862,7 @@ std::string cNet::GetModelName(const boost::filesystem::path &info_path)
|
|||||||
{
|
{
|
||||||
Waifu2x::eWaifu2xError ret;
|
Waifu2x::eWaifu2xError ret;
|
||||||
|
|
||||||
stInfo info;
|
Waifu2x::stInfo info;
|
||||||
ret = GetInfo(info_path, info);
|
ret = GetInfo(info_path, info);
|
||||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||||
return std::string();
|
return std::string();
|
||||||
|
@ -4,24 +4,6 @@
|
|||||||
#include "waifu2x.h"
|
#include "waifu2x.h"
|
||||||
|
|
||||||
|
|
||||||
struct stInfo
|
|
||||||
{
|
|
||||||
struct stParam
|
|
||||||
{
|
|
||||||
int scale_factor;
|
|
||||||
int offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::string name;
|
|
||||||
std::string arch_name;
|
|
||||||
bool has_noise_scale;
|
|
||||||
int channels;
|
|
||||||
|
|
||||||
stParam noise;
|
|
||||||
stParam scale;
|
|
||||||
stParam noise_scale;
|
|
||||||
};
|
|
||||||
|
|
||||||
class cNet
|
class cNet
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -36,7 +18,7 @@ private:
|
|||||||
bool mHasNoiseScaleModel;
|
bool mHasNoiseScaleModel;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void LoadParamFromInfo(const Waifu2x::eWaifu2xModelType mode, const stInfo &info);
|
void LoadParamFromInfo(const Waifu2x::eWaifu2xModelType mode, const Waifu2x::stInfo &info);
|
||||||
Waifu2x::eWaifu2xError LoadParameterFromJson(const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path
|
Waifu2x::eWaifu2xError LoadParameterFromJson(const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path
|
||||||
, const boost::filesystem::path &modelbin_path, const boost::filesystem::path &caffemodel_path, const std::string &process);
|
, const boost::filesystem::path &modelbin_path, const boost::filesystem::path &caffemodel_path, const std::string &process);
|
||||||
Waifu2x::eWaifu2xError SetParameter(caffe::NetParameter ¶m, const std::string &process) const;
|
Waifu2x::eWaifu2xError SetParameter(caffe::NetParameter ¶m, const std::string &process) const;
|
||||||
@ -45,9 +27,9 @@ public:
|
|||||||
cNet();
|
cNet();
|
||||||
~cNet();
|
~cNet();
|
||||||
|
|
||||||
static Waifu2x::eWaifu2xError GetInfo(const boost::filesystem::path &info_path, stInfo &info);
|
static Waifu2x::eWaifu2xError GetInfo(const boost::filesystem::path &info_path, Waifu2x::stInfo &info);
|
||||||
|
|
||||||
Waifu2x::eWaifu2xError ConstractNet(const Waifu2x::eWaifu2xModelType mode, const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path, const stInfo &info, const std::string &process);
|
Waifu2x::eWaifu2xError ConstractNet(const Waifu2x::eWaifu2xModelType mode, const boost::filesystem::path &model_path, const boost::filesystem::path ¶m_path, const Waifu2x::stInfo &info, const std::string &process);
|
||||||
|
|
||||||
int GetInputPlane() const;
|
int GetInputPlane() const;
|
||||||
int GetInnerScale() const;
|
int GetInnerScale() const;
|
||||||
|
@ -744,10 +744,6 @@ void stImage::DeconvertFromNetFormat(const int input_plane)
|
|||||||
|
|
||||||
void stImage::ShrinkImage(const Factor scale)
|
void stImage::ShrinkImage(const Factor scale)
|
||||||
{
|
{
|
||||||
// TODO: scale = 1.0 でも悪影響を及ぼさないか調べる
|
|
||||||
|
|
||||||
const int scaleBase = 2; // TODO: モデルの拡大率によって可変できるようにする
|
|
||||||
|
|
||||||
const auto Width = scale.MultiNumerator(mOrgSize.width);
|
const auto Width = scale.MultiNumerator(mOrgSize.width);
|
||||||
const auto Height = scale.MultiNumerator(mOrgSize.height);
|
const auto Height = scale.MultiNumerator(mOrgSize.height);
|
||||||
|
|
||||||
@ -765,12 +761,15 @@ void stImage::ShrinkImage(const Factor scale)
|
|||||||
|
|
||||||
void stImage::ShrinkImage(const int width, const int height)
|
void stImage::ShrinkImage(const int width, const int height)
|
||||||
{
|
{
|
||||||
// TODO: scale = 1.0 でも悪影響を及ぼさないか調べる
|
|
||||||
|
|
||||||
const cv::Size_<int> ns(width, height);
|
const cv::Size_<int> ns(width, height);
|
||||||
if (mEndImage.size().width != ns.width || mEndImage.size().height != ns.height)
|
if (mEndImage.size().width != ns.width || mEndImage.size().height != ns.height)
|
||||||
{
|
{
|
||||||
|
const auto scale_width = (float)mEndImage.size().width / (float)ns.width;
|
||||||
|
const auto scale_height = (float)mEndImage.size().height / (float)ns.height;
|
||||||
|
|
||||||
int argo = cv::INTER_CUBIC;
|
int argo = cv::INTER_CUBIC;
|
||||||
|
if (scale_width < 0.5 || scale_height < 0.5)
|
||||||
|
argo = cv::INTER_AREA;
|
||||||
|
|
||||||
cv::resize(mEndImage, mEndImage, ns, 0.0, 0.0, argo);
|
cv::resize(mEndImage, mEndImage, ns, 0.0, 0.0, argo);
|
||||||
}
|
}
|
||||||
|
@ -41,12 +41,14 @@
|
|||||||
#pragma comment(lib, "opencv_core" CV_VERSION_STR CV_EXT_STR)
|
#pragma comment(lib, "opencv_core" CV_VERSION_STR CV_EXT_STR)
|
||||||
#pragma comment(lib, "opencv_imgcodecs" CV_VERSION_STR CV_EXT_STR)
|
#pragma comment(lib, "opencv_imgcodecs" CV_VERSION_STR CV_EXT_STR)
|
||||||
#pragma comment(lib, "opencv_imgproc" CV_VERSION_STR CV_EXT_STR)
|
#pragma comment(lib, "opencv_imgproc" CV_VERSION_STR CV_EXT_STR)
|
||||||
//#pragma comment(lib, "IlmImf" CV_EXT_STR)
|
#pragma comment(lib, "IlmImf" CV_EXT_STR)
|
||||||
//#pragma comment(lib, "libjasper" CV_EXT_STR)
|
#pragma comment(lib, "ippicvmt.lib")
|
||||||
//#pragma comment(lib, "libjpeg" CV_EXT_STR)
|
#pragma comment(lib, "libjasper" CV_EXT_STR)
|
||||||
//#pragma comment(lib, "libpng" CV_EXT_STR)
|
#pragma comment(lib, "libjpeg-turbo" CV_EXT_STR)
|
||||||
//#pragma comment(lib, "libtiff" CV_EXT_STR)
|
#pragma comment(lib, "libpng" CV_EXT_STR)
|
||||||
//#pragma comment(lib, "libwebp" CV_EXT_STR)
|
#pragma comment(lib, "libtiff" CV_EXT_STR)
|
||||||
|
#pragma comment(lib, "libwebp" CV_EXT_STR)
|
||||||
|
#pragma comment(lib, "zlib" CV_EXT_STR)
|
||||||
|
|
||||||
#pragma comment(lib, "libopenblas.dll.a")
|
#pragma comment(lib, "libopenblas.dll.a")
|
||||||
#pragma comment(lib, "cudart.lib")
|
#pragma comment(lib, "cudart.lib")
|
||||||
@ -56,32 +58,27 @@
|
|||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#pragma comment(lib, "caffe-d.lib")
|
#pragma comment(lib, "caffe-d.lib")
|
||||||
#pragma comment(lib, "proto-d.lib")
|
#pragma comment(lib, "caffeproto-d.lib")
|
||||||
#pragma comment(lib, "libboost_system-vc120-mt-gd-1_59.lib")
|
#pragma comment(lib, "libprotobufd.lib")
|
||||||
#pragma comment(lib, "libboost_thread-vc120-mt-gd-1_59.lib")
|
|
||||||
#pragma comment(lib, "libboost_filesystem-vc120-mt-gd-1_59.lib")
|
|
||||||
#pragma comment(lib, "glogd.lib")
|
#pragma comment(lib, "glogd.lib")
|
||||||
#pragma comment(lib, "gflagsd.lib")
|
#pragma comment(lib, "gflagsd.lib")
|
||||||
#pragma comment(lib, "libprotobufd.lib")
|
#pragma comment(lib, "libboost_system-vc140-mt-gd-1_61.lib")
|
||||||
#pragma comment(lib, "libhdf5_hl_D.lib")
|
#pragma comment(lib, "boost_thread-vc140-mt-gd-1_61.lib")
|
||||||
#pragma comment(lib, "libhdf5_D.lib")
|
#pragma comment(lib, "boost_filesystem-vc140-mt-gd-1_61.lib")
|
||||||
#pragma comment(lib, "zlibstaticd.lib")
|
#pragma comment(lib, "boost_iostreams-vc140-mt-gd-1_61.lib")
|
||||||
|
//#pragma comment(lib, "zlibstaticd.lib")
|
||||||
|
|
||||||
|
|
||||||
#pragma comment(lib, "libboost_iostreams-vc120-mt-gd-1_59.lib")
|
|
||||||
#else
|
#else
|
||||||
#pragma comment(lib, "caffe.lib")
|
#pragma comment(lib, "caffe.lib")
|
||||||
#pragma comment(lib, "proto.lib")
|
#pragma comment(lib, "caffeproto.lib")
|
||||||
#pragma comment(lib, "libboost_system-vc120-mt-1_59.lib")
|
#pragma comment(lib, "libprotobuf.lib")
|
||||||
#pragma comment(lib, "libboost_thread-vc120-mt-1_59.lib")
|
|
||||||
#pragma comment(lib, "libboost_filesystem-vc120-mt-1_59.lib")
|
|
||||||
#pragma comment(lib, "glog.lib")
|
#pragma comment(lib, "glog.lib")
|
||||||
#pragma comment(lib, "gflags.lib")
|
#pragma comment(lib, "gflags.lib")
|
||||||
#pragma comment(lib, "libprotobuf.lib")
|
#pragma comment(lib, "libboost_system-vc140-mt-1_61.lib")
|
||||||
#pragma comment(lib, "libhdf5_hl.lib")
|
#pragma comment(lib, "boost_thread-vc140-mt-1_61.lib")
|
||||||
#pragma comment(lib, "libhdf5.lib")
|
#pragma comment(lib, "boost_filesystem-vc140-mt-1_61.lib")
|
||||||
#pragma comment(lib, "zlibstatic.lib")
|
#pragma comment(lib, "boost_iostreams-vc140-mt-1_61.lib")
|
||||||
|
|
||||||
#pragma comment(lib, "libboost_iostreams-vc120-mt-1_59.lib")
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -434,7 +431,7 @@ Waifu2x::eWaifu2xCudaError Waifu2x::can_use_CUDA()
|
|||||||
{
|
{
|
||||||
cudaDeviceProp prop;
|
cudaDeviceProp prop;
|
||||||
cudaGetDeviceProperties(&prop, 0);
|
cudaGetDeviceProperties(&prop, 0);
|
||||||
if (prop.major >= 2)
|
if (prop.major >= 3 && prop.minor >= 5 || prop.major >= 4)
|
||||||
CudaFlag = eWaifu2xCudaError_OK;
|
CudaFlag = eWaifu2xCudaError_OK;
|
||||||
else
|
else
|
||||||
CudaFlag = eWaifu2xCudaError_OldDevice;
|
CudaFlag = eWaifu2xCudaError_OldDevice;
|
||||||
@ -465,16 +462,23 @@ Waifu2x::eWaifu2xcuDNNError Waifu2x::can_use_cuDNN()
|
|||||||
HMODULE hModule = LoadLibrary(TEXT(CUDNN_DLL_NAME));
|
HMODULE hModule = LoadLibrary(TEXT(CUDNN_DLL_NAME));
|
||||||
if (hModule != NULL)
|
if (hModule != NULL)
|
||||||
{
|
{
|
||||||
typedef cudnnStatus_t(__stdcall * cudnnCreateType)(cudnnHandle_t *);
|
typedef cudnnStatus_t(CUDNNWINAPI* cudnnCreateType)(cudnnHandle_t *);
|
||||||
typedef cudnnStatus_t(__stdcall * cudnnDestroyType)(cudnnHandle_t);
|
typedef cudnnStatus_t(CUDNNWINAPI* cudnnDestroyType)(cudnnHandle_t);
|
||||||
typedef uint64_t(__stdcall * cudnnGetVersionType)();
|
typedef size_t(CUDNNWINAPI* cudnnGetVersionType)();
|
||||||
|
typedef size_t(CUDNNWINAPI* cudnnGetCudartVersionType)();
|
||||||
|
|
||||||
cudnnCreateType cudnnCreateFunc = (cudnnCreateType)GetProcAddress(hModule, "cudnnCreate");
|
cudnnCreateType cudnnCreateFunc = (cudnnCreateType)GetProcAddress(hModule, "cudnnCreate");
|
||||||
cudnnDestroyType cudnnDestroyFunc = (cudnnDestroyType)GetProcAddress(hModule, "cudnnDestroy");
|
cudnnDestroyType cudnnDestroyFunc = (cudnnDestroyType)GetProcAddress(hModule, "cudnnDestroy");
|
||||||
cudnnGetVersionType cudnnGetVersionFunc = (cudnnGetVersionType)GetProcAddress(hModule, "cudnnGetVersion");
|
cudnnGetVersionType cudnnGetVersionFunc = (cudnnGetVersionType)GetProcAddress(hModule, "cudnnGetVersion");
|
||||||
if (cudnnCreateFunc != nullptr && cudnnDestroyFunc != nullptr && cudnnGetVersionFunc != nullptr)
|
cudnnGetCudartVersionType cudnnGetCudartVersionFunc = (cudnnGetCudartVersionType)GetProcAddress(hModule, "cudnnGetCudartVersion");
|
||||||
|
if (cudnnCreateFunc != nullptr && cudnnDestroyFunc != nullptr && cudnnGetVersionFunc != nullptr && cudnnGetCudartVersionFunc != nullptr)
|
||||||
{
|
{
|
||||||
if (cudnnGetVersionFunc() >= 3000)
|
if (cudnnGetVersionFunc() >= CUDNN_REQUIRE_VERION)
|
||||||
|
{
|
||||||
|
int runtimeVersion;
|
||||||
|
if (cudaRuntimeGetVersion(&runtimeVersion) == cudaSuccess)
|
||||||
|
{
|
||||||
|
if (cudnnGetCudartVersionFunc() >= runtimeVersion)
|
||||||
{
|
{
|
||||||
cudnnHandle_t h;
|
cudnnHandle_t h;
|
||||||
if (cudnnCreateFunc(&h) == CUDNN_STATUS_SUCCESS)
|
if (cudnnCreateFunc(&h) == CUDNN_STATUS_SUCCESS)
|
||||||
@ -487,6 +491,12 @@ Waifu2x::eWaifu2xcuDNNError Waifu2x::can_use_cuDNN()
|
|||||||
else
|
else
|
||||||
cuDNNFlag = eWaifu2xcuDNNError_CannotCreate;
|
cuDNNFlag = eWaifu2xcuDNNError_CannotCreate;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
cuDNNFlag = eWaifu2xcuDNNError_OldCudaVersion;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cuDNNFlag = eWaifu2xcuDNNError_CannotCreate;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cuDNNFlag = eWaifu2xcuDNNError_OldVersion;
|
cuDNNFlag = eWaifu2xcuDNNError_OldVersion;
|
||||||
}
|
}
|
||||||
@ -658,9 +668,12 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
|||||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
mHasNoiseScale = info.has_noise_scale;
|
mHasNoiseScaleOnly = info.has_noise_scale;
|
||||||
mInputPlane = info.channels;
|
mInputPlane = info.channels;
|
||||||
|
|
||||||
|
if (mode == eWaifu2xModelTypeNoise && info.has_noise_only) // ノイズ除去だけかつノイズ除去モデルが存在するのであればノイズ除去スケールモデルは使わないようにする
|
||||||
|
mHasNoiseScaleOnly = false;
|
||||||
|
|
||||||
if (mode == eWaifu2xModelTypeNoise || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
if (mode == eWaifu2xModelTypeNoise || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
||||||
{
|
{
|
||||||
std::string base_name;
|
std::string base_name;
|
||||||
@ -668,7 +681,7 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
|||||||
mNoiseNet.reset(new cNet);
|
mNoiseNet.reset(new cNet);
|
||||||
|
|
||||||
eWaifu2xModelType Mode = mode;
|
eWaifu2xModelType Mode = mode;
|
||||||
if (info.has_noise_scale) // ノイズ除去と拡大を同時に行う
|
if (mHasNoiseScaleOnly) // ノイズ除去と拡大を同時に行う
|
||||||
{
|
{
|
||||||
// ノイズ除去拡大ネットの構築はeWaifu2xModelTypeNoiseScaleを指定する必要がある
|
// ノイズ除去拡大ネットの構築はeWaifu2xModelTypeNoiseScaleを指定する必要がある
|
||||||
Mode = eWaifu2xModelTypeNoiseScale;
|
Mode = eWaifu2xModelTypeNoiseScale;
|
||||||
@ -690,8 +703,8 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
|||||||
mMaxNetOffset = mNoiseNet->GetNetOffset();
|
mMaxNetOffset = mNoiseNet->GetNetOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
// noise_scaleを持っている場合はαチャンネルの拡大のためにmScaleNetも構築する必要がある
|
// 拡大が必要な場合はαチャンネルの拡大のためにmScaleNetも構築する必要がある
|
||||||
if (info.has_noise_scale || mode == eWaifu2xModelTypeScale || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
if (mode == eWaifu2xModelTypeScale || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
||||||
{
|
{
|
||||||
const std::string base_name = "scale2.0x_model";
|
const std::string base_name = "scale2.0x_model";
|
||||||
|
|
||||||
@ -908,7 +921,7 @@ Waifu2x::eWaifu2xError Waifu2x::ReconstructImage(const Factor factor, const int
|
|||||||
|
|
||||||
if (isReconstructNoise)
|
if (isReconstructNoise)
|
||||||
{
|
{
|
||||||
if (!mHasNoiseScale) // ノイズ除去だけ
|
if (!mHasNoiseScaleOnly) // ノイズ除去だけ
|
||||||
{
|
{
|
||||||
cv::Mat im;
|
cv::Mat im;
|
||||||
cv::Size_<int> size;
|
cv::Size_<int> size;
|
||||||
@ -1152,3 +1165,14 @@ std::string Waifu2x::GetModelName(const boost::filesystem::path & model_dir)
|
|||||||
|
|
||||||
return cNet::GetModelName(info_path);
|
return cNet::GetModelName(info_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Waifu2x::GetInfo(const boost::filesystem::path &model_dir, stInfo &info)
|
||||||
|
{
|
||||||
|
const boost::filesystem::path mode_dir_path(GetModeDirPath(model_dir));
|
||||||
|
if (!boost::filesystem::exists(mode_dir_path))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const boost::filesystem::path info_path = mode_dir_path / "info.json";
|
||||||
|
|
||||||
|
return cNet::GetInfo(info_path, info) == Waifu2x::eWaifu2xError_OK;
|
||||||
|
}
|
||||||
|
@ -10,8 +10,9 @@
|
|||||||
#include <boost/optional.hpp>
|
#include <boost/optional.hpp>
|
||||||
#include <opencv2/core.hpp>
|
#include <opencv2/core.hpp>
|
||||||
|
|
||||||
#define CUDNN_DLL_NAME "cudnn64_7.dll"
|
#define CUDNN_DLL_NAME "cudnn64_8.dll"
|
||||||
#define CUDNN_REQUIRE_VERION_TEXT "v7"
|
#define CUDNN_REQUIRE_VERION_TEXT "v8.0.3"
|
||||||
|
#define CUDNN_REQUIRE_VERION 8003
|
||||||
|
|
||||||
|
|
||||||
namespace caffe
|
namespace caffe
|
||||||
@ -59,6 +60,29 @@ public:
|
|||||||
class Waifu2x
|
class Waifu2x
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
struct stInfo
|
||||||
|
{
|
||||||
|
struct stParam
|
||||||
|
{
|
||||||
|
int scale_factor;
|
||||||
|
int offset;
|
||||||
|
int recommended_crop_size;
|
||||||
|
|
||||||
|
stParam() : scale_factor(1), offset(0), recommended_crop_size(-1) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
std::string name;
|
||||||
|
std::string arch_name;
|
||||||
|
bool has_noise_scale;
|
||||||
|
bool has_noise_only;
|
||||||
|
int channels;
|
||||||
|
int force_divisible_crop_size;
|
||||||
|
|
||||||
|
stParam noise;
|
||||||
|
stParam scale;
|
||||||
|
stParam noise_scale;
|
||||||
|
};
|
||||||
|
|
||||||
enum eWaifu2xModelType
|
enum eWaifu2xModelType
|
||||||
{
|
{
|
||||||
eWaifu2xModelTypeNoise = 0,
|
eWaifu2xModelTypeNoise = 0,
|
||||||
@ -98,6 +122,7 @@ public:
|
|||||||
eWaifu2xcuDNNError_NotFind,
|
eWaifu2xcuDNNError_NotFind,
|
||||||
eWaifu2xcuDNNError_OldVersion,
|
eWaifu2xcuDNNError_OldVersion,
|
||||||
eWaifu2xcuDNNError_CannotCreate,
|
eWaifu2xcuDNNError_CannotCreate,
|
||||||
|
eWaifu2xcuDNNError_OldCudaVersion,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::function<bool()> waifu2xCancelFunc;
|
typedef std::function<bool()> waifu2xCancelFunc;
|
||||||
@ -119,7 +144,7 @@ private:
|
|||||||
|
|
||||||
int mInputPlane; // ネットへの入力チャンネル数
|
int mInputPlane; // ネットへの入力チャンネル数
|
||||||
int mMaxNetOffset; // ネットに入力するとどれくらい削れるか
|
int mMaxNetOffset; // ネットに入力するとどれくらい削れるか
|
||||||
bool mHasNoiseScale;
|
bool mHasNoiseScaleOnly;
|
||||||
|
|
||||||
float *mOutputBlock;
|
float *mOutputBlock;
|
||||||
size_t mOutputBlockSize;
|
size_t mOutputBlockSize;
|
||||||
@ -183,4 +208,5 @@ public:
|
|||||||
const std::string& used_process() const;
|
const std::string& used_process() const;
|
||||||
|
|
||||||
static std::string GetModelName(const boost::filesystem::path &model_dir);
|
static std::string GetModelName(const boost::filesystem::path &model_dir);
|
||||||
|
static bool GetInfo(const boost::filesystem::path &model_dir, stInfo &info);
|
||||||
};
|
};
|
||||||
|
1
opencv
Submodule
1
opencv
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b38c50b3d0c31e82294315ec44b54b7ef559ef12
|
46
opencv_build.bat
Normal file
46
opencv_build.bat
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
cd opencv
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
|
||||||
|
cmake .. -G "Visual Studio 15 Win64" ^
|
||||||
|
-DCMAKE_INSTALL_PREFIX=..\..\lib ^
|
||||||
|
-DBUILD_WITH_STATIC_CRT=OFF ^
|
||||||
|
-DBUILD_IPP_IW=OFF ^
|
||||||
|
-DBUILD_ITT=OFF ^
|
||||||
|
-DBUILD_JAVA=OFF ^
|
||||||
|
-DBUILD_SHARED_LIBS=OFF ^
|
||||||
|
-DBUILD_TESTS=OFF ^
|
||||||
|
-DBUILD_opencv_calib3d=OFF ^
|
||||||
|
-DBUILD_opencv_dnn=OFF ^
|
||||||
|
-DBUILD_opencv_features2d=OFF ^
|
||||||
|
-DBUILD_opencv_flann=OFF ^
|
||||||
|
-DBUILD_opencv_highgui=OFF ^
|
||||||
|
-DBUILD_opencv_ml=OFF ^
|
||||||
|
-DBUILD_opencv_objdetect=OFF ^
|
||||||
|
-DBUILD_opencv_photo=OFF ^
|
||||||
|
-DBUILD_opencv_video=OFF ^
|
||||||
|
-DBUILD_opencv_videoio=OFF ^
|
||||||
|
-DBUILD_opencv_videostab=OFF ^
|
||||||
|
-DBUILD_opencv_java_bindings_generator=OFF ^
|
||||||
|
-DBUILD_opencv_python_bindings_generator=OFF ^
|
||||||
|
-DWITH_1394=OFF ^
|
||||||
|
-DWITH_CUDA=OFF ^
|
||||||
|
-DWITH_CUFFT=OFF ^
|
||||||
|
-DWITH_DIRECTX=OFF ^
|
||||||
|
-DWITH_DSHOW=OFF ^
|
||||||
|
-DWITH_EIGEN=OFF ^
|
||||||
|
-DWITH_FFMPEG=OFF ^
|
||||||
|
-DWITH_GSTREAMER=OFF ^
|
||||||
|
-DWITH_OPENCL=OFF ^
|
||||||
|
-DWITH_OPENCAMDBALSL=OFF ^
|
||||||
|
-DWITH_OPENCLAMDFFT=OFF ^
|
||||||
|
-DWITH_OPENCL_SVM=OFF ^
|
||||||
|
-DWITH_PROTOBUF=OFF ^
|
||||||
|
-DWITH_VFW=OFF ^
|
||||||
|
-DWITH_VTK=OFF ^
|
||||||
|
-DWITH_WIN32UI=OFF
|
||||||
|
|
||||||
|
rem cmake --build . --config Debug --target install
|
||||||
|
cmake --build . --config Release --target install
|
@ -14,18 +14,19 @@
|
|||||||
<ProjectGuid>{DFF94FEB-78AB-41B1-9B92-4D8B7D799E04}</ProjectGuid>
|
<ProjectGuid>{DFF94FEB-78AB-41B1-9B92-4D8B7D799E04}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>waifu2x-caffe-dll</RootNamespace>
|
<RootNamespace>waifu2x-caffe-dll</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@ -41,15 +42,15 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
<TargetName>$(ProjectName)d</TargetName>
|
<TargetName>$(ProjectName)d</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@ -58,13 +59,13 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -76,7 +77,7 @@
|
|||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@ -84,7 +85,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
@ -94,7 +94,8 @@ private:
|
|||||||
if (LangList.size() > 0)
|
if (LangList.size() > 0)
|
||||||
return LangList[0];
|
return LangList[0];
|
||||||
|
|
||||||
return stLangSetting();
|
static stLangSetting empty;
|
||||||
|
return empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadLangFile(const stLangSetting &lang, std::unordered_map<std::wstring, std::wstring> &langStringMap) const
|
void ReadLangFile(const stLangSetting &lang, std::unordered_map<std::wstring, std::wstring> &langStringMap) const
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
const size_t AR_PATH_MAX(1024);
|
const size_t AR_PATH_MAX(1024);
|
||||||
|
|
||||||
|
const int MaxBatchSizeList = 20;
|
||||||
|
|
||||||
const int MinCommonDivisor = 50;
|
const int MinCommonDivisor = 50;
|
||||||
const int DefaultCommonDivisor = 128;
|
const int DefaultCommonDivisor = 128;
|
||||||
const std::pair<int, int> DefaultCommonDivisorRange = {90, 140};
|
const std::pair<int, int> DefaultCommonDivisorRange = {90, 140};
|
||||||
@ -38,6 +40,7 @@ const TCHAR * const MultiFileStr = TEXT("(Multi File)");
|
|||||||
|
|
||||||
const UINT_PTR nIDEventTimeLeft = 1000;
|
const UINT_PTR nIDEventTimeLeft = 1000;
|
||||||
|
|
||||||
|
|
||||||
LangStringList DialogEvent::langStringList;
|
LangStringList DialogEvent::langStringList;
|
||||||
HWND DialogEvent::dh;
|
HWND DialogEvent::dh;
|
||||||
|
|
||||||
@ -370,35 +373,13 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
|||||||
|
|
||||||
{
|
{
|
||||||
const int cur = SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_GETCURSEL, 0, 0);
|
const int cur = SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_GETCURSEL, 0, 0);
|
||||||
switch (cur)
|
for (int i = 0; i < eModelTypeEnd; i++)
|
||||||
{
|
{
|
||||||
case 0:
|
if (cur == i)
|
||||||
model_dir = TEXT("models/upconv_7_anime_style_art_rgb");
|
{
|
||||||
modelType = eModelTypeUpConvRGB;
|
model_dir = ModelPathList[i];
|
||||||
break;
|
modelType = (eModelType)i;
|
||||||
|
}
|
||||||
case 1:
|
|
||||||
model_dir = TEXT("models/upconv_7_photo");
|
|
||||||
modelType = eModelTypeUpConvPhoto;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
model_dir = TEXT("models/anime_style_art_rgb");
|
|
||||||
modelType = eModelTypeRGB;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
model_dir = TEXT("models/photo");
|
|
||||||
modelType = eModelTypePhoto;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
model_dir = TEXT("models/anime_style_art");
|
|
||||||
modelType = eModelTypeY;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,6 +453,10 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
|||||||
GetWindowText(GetDlgItem(dh, IDC_COMBO_CROP_SIZE), buf, _countof(buf));
|
GetWindowText(GetDlgItem(dh, IDC_COMBO_CROP_SIZE), buf, _countof(buf));
|
||||||
buf[_countof(buf) - 1] = TEXT('\0');
|
buf[_countof(buf) - 1] = TEXT('\0');
|
||||||
|
|
||||||
|
Waifu2x::stInfo info;
|
||||||
|
if (!Waifu2x::GetInfo(model_dir, info))
|
||||||
|
info.force_divisible_crop_size = 1;
|
||||||
|
|
||||||
TCHAR *ptr = nullptr;
|
TCHAR *ptr = nullptr;
|
||||||
crop_size = _tcstol(buf, &ptr, 10);
|
crop_size = _tcstol(buf, &ptr, 10);
|
||||||
if (!ptr || *ptr != '\0' || crop_size <= 0)
|
if (!ptr || *ptr != '\0' || crop_size <= 0)
|
||||||
@ -481,6 +466,30 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
|||||||
|
|
||||||
MessageBox(dh, langStringList.GetString(L"MessageCropSizeCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
MessageBox(dh, langStringList.GetString(L"MessageCropSizeCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||||
}
|
}
|
||||||
|
else if (crop_size % info.force_divisible_crop_size != 0) // このモデルでは設定できないCropSize
|
||||||
|
{
|
||||||
|
wchar_t buf[1024] = { TEXT('\0') };
|
||||||
|
swprintf(buf, langStringList.GetString(L"MessageCropSizeDivisibleCheckError").c_str(), info.force_divisible_crop_size);
|
||||||
|
|
||||||
|
ret = false;
|
||||||
|
MessageBoxW(dh, buf, langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
TCHAR buf[AR_PATH_MAX] = TEXT("");
|
||||||
|
GetWindowText(GetDlgItem(dh, IDC_COMBO_BATCH_SIZE), buf, _countof(buf));
|
||||||
|
buf[_countof(buf) - 1] = TEXT('\0');
|
||||||
|
|
||||||
|
TCHAR *ptr = nullptr;
|
||||||
|
batch_size = _tcstol(buf, &ptr, 10);
|
||||||
|
if (!ptr || *ptr != '\0' || batch_size <= 0)
|
||||||
|
{
|
||||||
|
batch_size = 1;
|
||||||
|
ret = false;
|
||||||
|
|
||||||
|
MessageBox(dh, langStringList.GetString(L"MessageBatchSizeCheckError").c_str(), langStringList.GetString(L"MessageTitleError").c_str(), MB_OK | MB_ICONERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
use_tta = SendMessage(GetDlgItem(dh, IDC_CHECK_TTA), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
use_tta = SendMessage(GetDlgItem(dh, IDC_CHECK_TTA), BM_GETCHECK, 0, 0) == BST_CHECKED;
|
||||||
@ -522,20 +531,55 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
|||||||
}
|
}
|
||||||
), list.end());
|
), list.end());
|
||||||
|
|
||||||
|
bool isRecommendedCropSize = false;
|
||||||
|
Waifu2x::stInfo info;
|
||||||
|
if (Waifu2x::GetInfo(model_dir, info))
|
||||||
|
{
|
||||||
|
int recommended_crop_size = 0;
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case Waifu2x::eWaifu2xModelTypeNoise:
|
||||||
|
recommended_crop_size = info.noise.recommended_crop_size;
|
||||||
|
break;
|
||||||
|
case Waifu2x::eWaifu2xModelTypeScale:
|
||||||
|
recommended_crop_size = info.scale.recommended_crop_size;
|
||||||
|
break;
|
||||||
|
case Waifu2x::eWaifu2xModelTypeNoiseScale:
|
||||||
|
recommended_crop_size = info.noise_scale.recommended_crop_size;
|
||||||
|
break;
|
||||||
|
case Waifu2x::eWaifu2xModelTypeAutoScale:
|
||||||
|
recommended_crop_size = info.noise_scale.recommended_crop_size;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (recommended_crop_size > 0)
|
||||||
|
{
|
||||||
|
tstring str(to_tstring(recommended_crop_size));
|
||||||
|
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
||||||
|
isRecommendedCropSize = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (list.size() > 0)
|
||||||
|
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)TEXT("-----------------------"));
|
||||||
|
|
||||||
int mindiff = INT_MAX;
|
int mindiff = INT_MAX;
|
||||||
int defaultIndex = -1;
|
int defaultIndex = -1;
|
||||||
for (int i = 0; i < list.size(); i++)
|
for (int i = 0; i < list.size(); i++)
|
||||||
{
|
{
|
||||||
const int n = list[i];
|
const int n = list[i];
|
||||||
|
|
||||||
|
if (n % info.force_divisible_crop_size != 0) // このモデルでは設定できないCropSize
|
||||||
|
continue;
|
||||||
|
|
||||||
tstring str(to_tstring(n));
|
tstring str(to_tstring(n));
|
||||||
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
const int index = SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
||||||
|
|
||||||
const int diff = abs(DefaultCommonDivisor - n);
|
const int diff = abs(DefaultCommonDivisor - n);
|
||||||
if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff)
|
if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff)
|
||||||
{
|
{
|
||||||
mindiff = diff;
|
mindiff = diff;
|
||||||
defaultIndex = i;
|
defaultIndex = index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -546,6 +590,9 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
|||||||
int defaultListIndex = -1;
|
int defaultListIndex = -1;
|
||||||
for (const auto n : CropSizeList)
|
for (const auto n : CropSizeList)
|
||||||
{
|
{
|
||||||
|
if (n % info.force_divisible_crop_size != 0) // このモデルでは設定できないCropSize
|
||||||
|
continue;
|
||||||
|
|
||||||
tstring str(to_tstring(n));
|
tstring str(to_tstring(n));
|
||||||
const int index = SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
const int index = SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
||||||
|
|
||||||
@ -560,6 +607,9 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
|||||||
if (defaultIndex == -1)
|
if (defaultIndex == -1)
|
||||||
defaultIndex = defaultListIndex;
|
defaultIndex = defaultListIndex;
|
||||||
|
|
||||||
|
if(isRecommendedCropSize)
|
||||||
|
defaultIndex = 0;
|
||||||
|
|
||||||
if (GetWindowTextLength(hcrop) == 0)
|
if (GetWindowTextLength(hcrop) == 0)
|
||||||
SendMessage(hcrop, CB_SETCURSEL, defaultIndex, 0);
|
SendMessage(hcrop, CB_SETCURSEL, defaultIndex, 0);
|
||||||
}
|
}
|
||||||
@ -839,7 +889,7 @@ void DialogEvent::ProcessWaifu2x()
|
|||||||
|
|
||||||
ret = w.waifu2x(p.first, p.second, ScaleRatio, ScaleWidth, ScaleHeight, [this]()
|
ret = w.waifu2x(p.first, p.second, ScaleRatio, ScaleWidth, ScaleHeight, [this]()
|
||||||
{
|
{
|
||||||
return cancelFlag;
|
return cancelFlag.load();
|
||||||
}, crop_size, crop_size, output_quality, output_depth, use_tta, batch_size);
|
}, crop_size, crop_size, output_quality, output_depth, use_tta, batch_size);
|
||||||
|
|
||||||
num++;
|
num++;
|
||||||
@ -1096,6 +1146,8 @@ void DialogEvent::SaveIni(const bool isSyncMember)
|
|||||||
|
|
||||||
WritePrivateProfileString(TEXT("Setting"), TEXT("LastInputDirFix"), tInputDirFix.c_str(), getTString(SettingFilePath).c_str());
|
WritePrivateProfileString(TEXT("Setting"), TEXT("LastInputDirFix"), tInputDirFix.c_str(), getTString(SettingFilePath).c_str());
|
||||||
WritePrivateProfileString(TEXT("Setting"), TEXT("LastOutputDirFix"), tOutputDirFix.c_str(), getTString(SettingFilePath).c_str());
|
WritePrivateProfileString(TEXT("Setting"), TEXT("LastOutputDirFix"), tOutputDirFix.c_str(), getTString(SettingFilePath).c_str());
|
||||||
|
|
||||||
|
WritePrivateProfileString(TEXT("Setting"), TEXT("LastBatchSize"), to_tstring(batch_size).c_str(), getTString(SettingFilePath).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
struct stFindParam
|
struct stFindParam
|
||||||
@ -1576,6 +1628,7 @@ void DialogEvent::SetWindowTextLang()
|
|||||||
SET_WINDOW_TEXT(IDC_BUTTON_OUTPUT_REF);
|
SET_WINDOW_TEXT(IDC_BUTTON_OUTPUT_REF);
|
||||||
SET_WINDOW_TEXT(IDC_BUTTON_APP_SETTING);
|
SET_WINDOW_TEXT(IDC_BUTTON_APP_SETTING);
|
||||||
SET_WINDOW_TEXT(IDC_BUTTON_CLEAR_OUTPUT_DIR);
|
SET_WINDOW_TEXT(IDC_BUTTON_CLEAR_OUTPUT_DIR);
|
||||||
|
SET_WINDOW_TEXT(IDC_STATIC_BATCH_SIZE);
|
||||||
|
|
||||||
#undef SET_WINDOW_TEXT
|
#undef SET_WINDOW_TEXT
|
||||||
|
|
||||||
@ -1587,11 +1640,10 @@ void DialogEvent::SetWindowTextLang()
|
|||||||
SendMessage(hwndCombo, CB_DELETESTRING, 0, 0);
|
SendMessage(hwndCombo, CB_DELETESTRING, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_UPCONV_RGB").c_str());
|
for (int i = 0; i < eModelTypeEnd; i++)
|
||||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_UPCONV_PHOTO").c_str());
|
{
|
||||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_RGB").c_str());
|
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(ModelTitleLangKeyList[i].c_str()).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(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, cur, 0);
|
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, cur, 0);
|
||||||
}
|
}
|
||||||
@ -1774,28 +1826,18 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
HWND hcrop = GetDlgItem(dh, IDC_COMBO_CROP_SIZE);
|
HWND hbatch = GetDlgItem(dh, IDC_COMBO_BATCH_SIZE);
|
||||||
|
|
||||||
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)TEXT("-----------------------"));
|
// バッチサイズリストに数列を突っ込んでいく
|
||||||
|
|
||||||
// CropSizeList‚Ì’l‚ð’ljÁ‚µ‚Ä‚¢‚
|
|
||||||
int mindiff = INT_MAX;
|
int mindiff = INT_MAX;
|
||||||
int defaultListIndex = -1;
|
int defaultListIndex = -1;
|
||||||
for (const auto n : CropSizeList)
|
for(int i = 1; i <= MaxBatchSizeList; i++)
|
||||||
{
|
{
|
||||||
tstring str(to_tstring(n));
|
tstring str(to_tstring(i));
|
||||||
const int index = SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
SendMessage(hbatch, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
||||||
|
|
||||||
const int diff = abs(DefaultCommonDivisor - n);
|
|
||||||
if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff)
|
|
||||||
{
|
|
||||||
mindiff = diff;
|
|
||||||
defaultListIndex = index;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetWindowTextLength(hcrop) == 0)
|
SendMessage(hbatch, CB_SETCURSEL, 0, 0);
|
||||||
SendMessage(hcrop, CB_SETCURSEL, defaultListIndex, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tstring tScaleRatio;
|
tstring tScaleRatio;
|
||||||
@ -1847,7 +1889,7 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
tmp[_countof(tmp) - 1] = TEXT('\0');
|
tmp[_countof(tmp) - 1] = TEXT('\0');
|
||||||
tprcess = tmp;
|
tprcess = tmp;
|
||||||
|
|
||||||
modelType = (eModelType)GetPrivateProfileInt(TEXT("Setting"), TEXT("LastModel"), 0, getTString(SettingFilePath).c_str());
|
modelType = (eModelType)GetPrivateProfileInt(TEXT("Setting"), TEXT("LastModel"), DefaultModel, getTString(SettingFilePath).c_str());
|
||||||
|
|
||||||
use_tta = GetPrivateProfileInt(TEXT("Setting"), TEXT("LastUseTTA"), 0, getTString(SettingFilePath).c_str()) != 0;
|
use_tta = GetPrivateProfileInt(TEXT("Setting"), TEXT("LastUseTTA"), 0, getTString(SettingFilePath).c_str()) != 0;
|
||||||
|
|
||||||
@ -1875,6 +1917,8 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
GetPrivateProfileString(TEXT("Setting"), TEXT("LastOutputDirFix"), TEXT(""), tmp, _countof(tmp), getTString(SettingFilePath).c_str());
|
GetPrivateProfileString(TEXT("Setting"), TEXT("LastOutputDirFix"), TEXT(""), tmp, _countof(tmp), getTString(SettingFilePath).c_str());
|
||||||
tmp[_countof(tmp) - 1] = TEXT('\0');
|
tmp[_countof(tmp) - 1] = TEXT('\0');
|
||||||
tOutputDirFix = tmp;
|
tOutputDirFix = tmp;
|
||||||
|
|
||||||
|
batch_size = GetPrivateProfileInt(TEXT("Setting"), TEXT("LastBatchSize"), 1, getTString(SettingFilePath).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
TCHAR *ptr = nullptr;
|
TCHAR *ptr = nullptr;
|
||||||
@ -2026,26 +2070,61 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if (modelType == eModelTypeUpConvRGB)
|
for (int i = 0; i < eModelTypeEnd; i++)
|
||||||
index = 0;
|
{
|
||||||
else if (modelType == eModelTypeUpConvPhoto)
|
if (modelType == i)
|
||||||
index = 1;
|
{
|
||||||
else if (modelType == eModelTypeRGB)
|
index = i;
|
||||||
index = 2;
|
break;
|
||||||
else if (modelType == eModelTypePhoto)
|
}
|
||||||
index = 3;
|
}
|
||||||
else if (modelType == eModelTypeY)
|
|
||||||
index = 4;
|
|
||||||
else
|
|
||||||
index = 0;
|
|
||||||
|
|
||||||
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, index, 0);
|
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, index, 0);
|
||||||
|
|
||||||
|
{
|
||||||
|
HWND hcrop = GetDlgItem(dh, IDC_COMBO_CROP_SIZE);
|
||||||
|
|
||||||
|
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)TEXT("-----------------------"));
|
||||||
|
|
||||||
|
const auto model_dir = ModelPathList[index];
|
||||||
|
|
||||||
|
Waifu2x::stInfo info;
|
||||||
|
if (!Waifu2x::GetInfo(model_dir, info))
|
||||||
|
info.force_divisible_crop_size = 1;
|
||||||
|
|
||||||
|
// CropSizeListの値を追加していく
|
||||||
|
int mindiff = INT_MAX;
|
||||||
|
int defaultListIndex = -1;
|
||||||
|
for (const auto n : CropSizeList)
|
||||||
|
{
|
||||||
|
if (n % info.force_divisible_crop_size != 0) // このモデルでは設定できないCropSize
|
||||||
|
continue;
|
||||||
|
|
||||||
|
tstring str(to_tstring(n));
|
||||||
|
const int index = SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str());
|
||||||
|
|
||||||
|
const int diff = abs(DefaultCommonDivisor - n);
|
||||||
|
if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff)
|
||||||
|
{
|
||||||
|
mindiff = diff;
|
||||||
|
defaultListIndex = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetWindowTextLength(hcrop) == 0)
|
||||||
|
SendMessage(hcrop, CB_SETCURSEL, defaultListIndex, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (use_tta)
|
if (use_tta)
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_CHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_CHECKED, 0);
|
||||||
else
|
else
|
||||||
SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_UNCHECKED, 0);
|
SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
|
|
||||||
|
if (1 <= batch_size && batch_size <= MaxBatchSizeList)
|
||||||
|
{
|
||||||
|
SendMessage(GetDlgItem(dh, IDC_COMBO_BATCH_SIZE), CB_SETCURSEL, batch_size - 1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_RATIO), tScaleRatio.c_str());
|
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_RATIO), tScaleRatio.c_str());
|
||||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_WIDTH), tScaleWidth.c_str());
|
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_WIDTH), tScaleWidth.c_str());
|
||||||
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_HEIGHT), tScaleHeight.c_str());
|
SetWindowText(GetDlgItem(hWnd, IDC_EDIT_SCALE_HEIGHT), tScaleHeight.c_str());
|
||||||
@ -2190,14 +2269,13 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
false, 0, &cmdNoOverwriteConstraint, cmd);
|
false, 0, &cmdNoOverwriteConstraint, cmd);
|
||||||
|
|
||||||
std::vector<std::wstring> cmdModelTypeConstraintV;
|
std::vector<std::wstring> cmdModelTypeConstraintV;
|
||||||
cmdModelTypeConstraintV.push_back(L"upconv_7_anime_style_art_rgb");
|
for (int i = 0; i < eModelTypeEnd; i++)
|
||||||
cmdModelTypeConstraintV.push_back(L"upconv_7_photo");
|
{
|
||||||
cmdModelTypeConstraintV.push_back(L"anime_style_art_rgb");
|
cmdModelTypeConstraintV.push_back(ModelTypeList[i]);
|
||||||
cmdModelTypeConstraintV.push_back(L"photo");
|
}
|
||||||
cmdModelTypeConstraintV.push_back(L"anime_style_art_y");
|
|
||||||
TCLAPW::ValuesConstraint<std::wstring> cmdModelTypeConstraint(cmdModelTypeConstraintV);
|
TCLAPW::ValuesConstraint<std::wstring> cmdModelTypeConstraint(cmdModelTypeConstraintV);
|
||||||
TCLAPW::ValueArg<std::wstring> cmdModelType(L"y", L"model_type", L"model type",
|
TCLAPW::ValueArg<std::wstring> cmdModelType(L"y", L"model_type", L"model type",
|
||||||
false, L"upconv_7_anime_style_art_rgb", &cmdModelTypeConstraint, cmd);
|
false, DefaultModelType, &cmdModelTypeConstraint, cmd);
|
||||||
|
|
||||||
// definition of command line argument : end
|
// definition of command line argument : end
|
||||||
|
|
||||||
@ -2416,7 +2494,8 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
|
|
||||||
if (cmdBatchSizeFile.isSet())
|
if (cmdBatchSizeFile.isSet())
|
||||||
{
|
{
|
||||||
batch_size = cmdBatchSizeFile.getValue();
|
SetWindowText(GetDlgItem(dh, IDC_COMBO_CROP_SIZE), to_tstring(cmdCropSizeFile.getValue()).c_str());
|
||||||
|
//batch_size = cmdBatchSizeFile.getValue();
|
||||||
|
|
||||||
isSetParam = true;
|
isSetParam = true;
|
||||||
}
|
}
|
||||||
@ -2452,18 +2531,14 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
|||||||
if (cmdModelType.isSet())
|
if (cmdModelType.isSet())
|
||||||
{
|
{
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if (cmdModelType.getValue() == L"upconv_7_anime_style_art_rgb")
|
for (int i = 0; i < eModelTypeEnd; i++)
|
||||||
index = 0;
|
{
|
||||||
else if (cmdModelType.getValue() == L"upconv_7_photo")
|
if (cmdModelType.getValue() == ModelTypeList[i])
|
||||||
index = 1;
|
{
|
||||||
else if (cmdModelType.getValue() == L"anime_style_art_rgb")
|
index = i;
|
||||||
index = 2;
|
break;
|
||||||
else if (cmdModelType.getValue() == L"photo")
|
}
|
||||||
index = 3;
|
}
|
||||||
else if (cmdModelType.getValue() == L"anime_style_art_y")
|
|
||||||
index = 4;
|
|
||||||
else
|
|
||||||
index = 0;
|
|
||||||
|
|
||||||
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, index, 0);
|
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, index, 0);
|
||||||
|
|
||||||
@ -2662,11 +2737,23 @@ void DialogEvent::CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpD
|
|||||||
case Waifu2x::eWaifu2xcuDNNError_CannotCreate:
|
case Waifu2x::eWaifu2xcuDNNError_CannotCreate:
|
||||||
MessageBox(dh, langStringList.GetString(L"MessagecuDNNCannotCreateError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
MessageBox(dh, langStringList.GetString(L"MessagecuDNNCannotCreateError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
||||||
break;
|
break;
|
||||||
|
case Waifu2x::eWaifu2xcuDNNError_OldCudaVersion:
|
||||||
|
MessageBox(dh, langStringList.GetString(L"MessageCudaOldVersionError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
MessageBox(dh, langStringList.GetString(L"MessagecuDNNDefautlError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
MessageBox(dh, langStringList.GetString(L"MessagecuDNNDefautlError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DialogEvent::OnModelChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||||
|
{
|
||||||
|
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||||
|
{
|
||||||
|
OnSetInputFilePath();
|
||||||
|
UpdateAddString(hWnd, wParam, lParam, lpData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LRESULT DialogEvent::OnSetInputFilePath(const TCHAR * tPath)
|
LRESULT DialogEvent::OnSetInputFilePath(const TCHAR * tPath)
|
||||||
{
|
{
|
||||||
HWND hWnd = GetDlgItem(dh, IDC_EDIT_INPUT);
|
HWND hWnd = GetDlgItem(dh, IDC_EDIT_INPUT);
|
||||||
|
@ -22,6 +22,53 @@
|
|||||||
#define WM_END_THREAD (WM_APP + 7)
|
#define WM_END_THREAD (WM_APP + 7)
|
||||||
|
|
||||||
|
|
||||||
|
enum eModelType
|
||||||
|
{
|
||||||
|
eModelTypeUpConvRGB,
|
||||||
|
eModelTypeUpConvPhoto,
|
||||||
|
eModelTypeRGB,
|
||||||
|
eModelTypePhoto,
|
||||||
|
eModelTypeY,
|
||||||
|
eModelTypeUpResNet10,
|
||||||
|
eModelTypeCunet,
|
||||||
|
eModelTypeEnd,
|
||||||
|
};
|
||||||
|
|
||||||
|
const int DefaultModel = eModelTypeCunet;
|
||||||
|
|
||||||
|
const tstring ModelPathList[eModelTypeEnd] = {
|
||||||
|
TEXT("models/upconv_7_anime_style_art_rgb"),
|
||||||
|
TEXT("models/upconv_7_photo"),
|
||||||
|
TEXT("models/anime_style_art_rgb"),
|
||||||
|
TEXT("models/photo"),
|
||||||
|
TEXT("models/anime_style_art"),
|
||||||
|
TEXT("models/upresnet10"),
|
||||||
|
TEXT("models/cunet"),
|
||||||
|
};
|
||||||
|
|
||||||
|
const std::wstring ModelTypeList[eModelTypeEnd] = {
|
||||||
|
L"upconv_7_anime_style_art_rgb",
|
||||||
|
L"upconv_7_photo",
|
||||||
|
L"anime_style_art_rgb",
|
||||||
|
L"photo",
|
||||||
|
L"anime_style_art_y",
|
||||||
|
L"upresnet10",
|
||||||
|
L"cunet",
|
||||||
|
};
|
||||||
|
|
||||||
|
const std::wstring DefaultModelType = ModelTypeList[DefaultModel];
|
||||||
|
|
||||||
|
const std::wstring ModelTitleLangKeyList[eModelTypeEnd] = {
|
||||||
|
L"IDC_RADIO_MODEL_UPCONV_RGB",
|
||||||
|
L"IDC_RADIO_MODEL_UPCONV_PHOTO",
|
||||||
|
L"IDC_RADIO_MODEL_RGB",
|
||||||
|
L"IDC_RADIO_MODEL_PHOTO",
|
||||||
|
L"IDC_RADIO_MODEL_Y",
|
||||||
|
L"IDC_RADIO_MODEL_UpResNet10",
|
||||||
|
L"IDC_RADIO_MODEL_CUNET",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// ダイアログ用
|
// ダイアログ用
|
||||||
class DialogEvent
|
class DialogEvent
|
||||||
{
|
{
|
||||||
@ -85,16 +132,6 @@ private:
|
|||||||
|
|
||||||
eScaleType scaleType;
|
eScaleType scaleType;
|
||||||
|
|
||||||
enum eModelType
|
|
||||||
{
|
|
||||||
eModelTypeRGB,
|
|
||||||
eModelTypePhoto,
|
|
||||||
eModelTypeY,
|
|
||||||
eModelTypeUpConvRGB,
|
|
||||||
eModelTypeUpConvPhoto,
|
|
||||||
eModelTypeEnd,
|
|
||||||
};
|
|
||||||
|
|
||||||
eModelType modelType;
|
eModelType modelType;
|
||||||
|
|
||||||
std::wstring LangName;
|
std::wstring LangName;
|
||||||
@ -192,6 +229,8 @@ public:
|
|||||||
|
|
||||||
void CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
void CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
||||||
|
|
||||||
|
void OnModelChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
||||||
|
|
||||||
LRESULT OnSetInputFilePath(const TCHAR *tPath);
|
LRESULT OnSetInputFilePath(const TCHAR *tPath);
|
||||||
|
|
||||||
LRESULT OnSetInputFilePath();
|
LRESULT OnSetInputFilePath();
|
||||||
|
Binary file not shown.
@ -80,7 +80,6 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
|||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL1);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL1);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL2);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL2);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL3);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_RADIONOISE_LEVEL3);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_COMBO_MODEL);
|
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_CHECK_TTA);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_CHECK_TTA);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_COMBO_OUTPUT_DEPTH);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::UpdateAddString, &cDialogEvent), NULL, IDC_COMBO_OUTPUT_DEPTH);
|
||||||
|
|
||||||
@ -93,6 +92,8 @@ int WINAPI WinMain(HINSTANCE hInstance,
|
|||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::LangChange, &cDialogEvent), NULL, IDC_COMBO_LANG);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::LangChange, &cDialogEvent), NULL, IDC_COMBO_LANG);
|
||||||
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OutExtChange, &cDialogEvent), NULL, IDC_COMBO_OUT_EXT);
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OutExtChange, &cDialogEvent), NULL, IDC_COMBO_OUT_EXT);
|
||||||
|
|
||||||
|
cDialog.SetCommandCallBack(SetClassFunc(DialogEvent::OnModelChange, &cDialogEvent), NULL, IDC_COMBO_MODEL);
|
||||||
|
|
||||||
// ダイアログのイベントで実行する関数の登録
|
// ダイアログのイベントで実行する関数の登録
|
||||||
cDialog.SetEventCallBack(SetClassFunc(DialogEvent::Create, &cDialogEvent), NULL, WM_INITDIALOG);
|
cDialog.SetEventCallBack(SetClassFunc(DialogEvent::Create, &cDialogEvent), NULL, WM_INITDIALOG);
|
||||||
cDialog.SetEventCallBack(SetClassFunc(DialogEvent::OnDialogEnd, &cDialogEvent), NULL, WM_CLOSE);
|
cDialog.SetEventCallBack(SetClassFunc(DialogEvent::OnDialogEnd, &cDialogEvent), NULL, WM_CLOSE);
|
||||||
|
Binary file not shown.
@ -14,18 +14,19 @@
|
|||||||
<ProjectGuid>{63FB3EFC-63B0-401C-BB54-F3A984DC233F}</ProjectGuid>
|
<ProjectGuid>{63FB3EFC-63B0-401C-BB54-F3A984DC233F}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>waifu2xcaffegui</RootNamespace>
|
<RootNamespace>waifu2xcaffegui</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@ -41,15 +42,15 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
<TargetName>$(ProjectName)d</TargetName>
|
<TargetName>$(ProjectName)d</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@ -58,13 +59,13 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
@ -79,7 +80,7 @@
|
|||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@ -87,7 +88,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
|
@ -155,7 +155,7 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
ValueArg<tstring> cmdModelPath(TEXT(""), TEXT("model_dir"),
|
ValueArg<tstring> cmdModelPath(TEXT(""), TEXT("model_dir"),
|
||||||
TEXT("path to custom model directory (don't append last / )"), false,
|
TEXT("path to custom model directory (don't append last / )"), false,
|
||||||
TEXT("models/upconv_7_anime_style_art_rgb"), TEXT("string"), cmd);
|
TEXT("models/cunet"), TEXT("string"), cmd);
|
||||||
|
|
||||||
std::vector<tstring> cmdProcessConstraintV;
|
std::vector<tstring> cmdProcessConstraintV;
|
||||||
cmdProcessConstraintV.push_back(TEXT("cpu"));
|
cmdProcessConstraintV.push_back(TEXT("cpu"));
|
||||||
|
@ -14,18 +14,19 @@
|
|||||||
<ProjectGuid>{7C406EE4-2309-4D4C-98BB-CB7BA865FC41}</ProjectGuid>
|
<ProjectGuid>{7C406EE4-2309-4D4C-98BB-CB7BA865FC41}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>waifu2x-caffe</RootNamespace>
|
<RootNamespace>waifu2x-caffe</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@ -41,15 +42,15 @@
|
|||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
<TargetName>$(ProjectName)d</TargetName>
|
<TargetName>$(ProjectName)d</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<IncludePath>D:\caffe-build\install\include;D:\caffe-build\install\include\boost-1_59;$(CUDA_PATH_V8_0)\include;D:\opencv310\build_vc\install\include;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
<IncludePath>$(CUDA_PATH_V11_0)\include;$(SolutionDir)lib\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61;$(SolutionDir)rapidjson\include;$(SolutionDir)stb;$(SolutionDir)include;$(SolutionDir)msgpack-c\include;$(IncludePath)</IncludePath>
|
||||||
<LibraryPath>D:\opencv310\build_vc\install\x64\vc12\lib;D:\caffe-build\install\lib;$(CUDA_PATH_V8_0)\lib\$(PlatformName);D:\program\boost_1_59_0\stage\x64\lib;$(LibraryPath)</LibraryPath>
|
<LibraryPath>$(CUDA_PATH_V11_0)\lib\$(PlatformName);$(SolutionDir)lib\$(PlatformName)\vc15\staticlib;$(SolutionDir)lib\lib;$(USERPROFILE)\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib;$(LibraryPath)</LibraryPath>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>$(SolutionDir)bin\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
@ -58,13 +59,13 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
@ -76,7 +77,7 @@
|
|||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>BOOST_ALL_NO_LIB;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@ -84,7 +85,7 @@
|
|||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user