mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 05:32:47 +00:00
Compare commits
64 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 |
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.
|
96
README.md
96
README.md
@ -19,84 +19,15 @@ GUI supports English, Japanese, Simplified Chinese, Traditional Chinese, Korean,
|
||||
|
||||
* OS : Windows Vista以降 64bit (32bit用exeはありません)
|
||||
* メモリ : 空きメモリ1GB以上 (ただし、変換する画像サイズによる)
|
||||
* GPU : Compute Capability 3.0 以上のNVIDIA製GPU(CPUで変換する場合は不要)
|
||||
* GPU : Compute Capability 3.5 以上のNVIDIA製GPU(CPUで変換する場合は不要)
|
||||
* Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3(x64版)がインストールされていること(必須)
|
||||
- 上記パッケージは[こちら](https://www.microsoft.com/ja-jp/download/details.aspx?id=53587)
|
||||
- `ダウンロード` ボタンを押した後、`vcredist_x64.exe`を選択し、ダウンロード・インストールを行って下さい。
|
||||
- 見つからない場合は、「Visual C++ 2015 再頒布可能パッケージ Update 3」で検索してみて下さい。
|
||||
|
||||
cuDNNで変換する場合はさらに
|
||||
|
||||
* GPU : Compute Capability 3.0 以上のNVIDIA製GPU
|
||||
|
||||
自分の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版)
|
||||
--------
|
||||
|
||||
@ -180,7 +111,8 @@ CUDA UpRGBモデル
|
||||
* 2次元イラスト(UpRGBモデル) : 2次元イラスト(RGBモデル)より高速かつ同等以上の画質で変換するモデル。ただしRGBモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
||||
* 写真・アニメ(UpPhotoモデル) : 写真・アニメ(Photoモデル)より高速かつ同等以上の画質で変換するモデル。ただしPhotoモデルより消費するメモリ(VRAM)の量が多いので、変換中に強制終了する場合は分割サイズを調節すること
|
||||
* 2次元イラスト(Yモデル) : 画像の輝度のみを変換する2次元イラスト用モデル
|
||||
* 2次元イラスト(UpResNet10モデル) : 同梱のモデルで一番高画質で変換できるモデル。このモデルだけ分割サイズが違うと出力結果が変わるので注意すること
|
||||
* 2次元イラスト(UpResNet10モデル) : 2次元イラスト(UpRGBモデル)より高画質で変換するモデル。このモデルは分割サイズが違うと出力結果が変わるので注意すること
|
||||
* 2次元イラスト(CUnetモデル) : 2次元イラストを同梱のモデルで一番高画質で変換できるモデル。このモデルは分割サイズが違うと出力結果が変わるので注意すること
|
||||
|
||||
### 「TTAモードを使う」
|
||||
TTA(Test-Time Augmentation)モードを使うかどうかを指定します。
|
||||
@ -306,7 +238,7 @@ GUI版では入力ファイル以外のコマンドラインオプションを
|
||||
scale_widthかscale_heightが指定された場合、そちらが優先されます。
|
||||
2.0以外の数値を指定すると、次のような処理を行います。
|
||||
* まず、指定された倍率を必要十分にカバーするように、2倍拡大を繰り返し行います。
|
||||
* 2の累乗以外の数値が指定されている場合は、指定倍率になるように拡大した画像を線形フィルタで縮小します。
|
||||
* 2の累乗以外の数値が指定されている場合は、指定倍率になるように拡大した画像を縮小します。
|
||||
|
||||
### -w <整数>, --scale_width <整数>
|
||||
画像の縦横比を維持したまま、指定された横幅になるように拡大します(単位はピクセル)。
|
||||
@ -380,7 +312,7 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
||||
### --no_overwrite <0|1>
|
||||
`1`を指定すると、画像の書き込み先に同名のファイルが存在する場合は変換を行いません。
|
||||
|
||||
### -y <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y|upresnet10>, --model_type <upconv_7_anime_style_art_rgb|upconv_7_photo|anime_style_art_rgb|photo|anime_style_art_y|upresnet10>
|
||||
### -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での設定項目「モデル」と以下のように対応しています。
|
||||
* upconv_7_anime_style_art_rgb : 2次元イラスト(UpRGBモデル)
|
||||
@ -389,6 +321,7 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
||||
* photo : 写真・アニメ(Photoモデル)
|
||||
* anime_style_art_y : 2次元イラスト(Yモデル)
|
||||
* upresnet10 : 2次元イラスト(UpResNet10モデル)
|
||||
* cunet : 2次元イラスト(CUnetモデル)
|
||||
|
||||
|
||||
コマンドラインオプション(CUI版)
|
||||
@ -416,14 +349,15 @@ GUI版ではオプション指定に当てはまらなかった引数は入力
|
||||
保存される場所は、基本的には入力画像と同じディレクトリになります。
|
||||
|
||||
### --model_dir <文字列>
|
||||
モデルが格納されているディレクトリへのパスを指定します。デフォルト値は`models/upconv_7_anime_style_art_rgb`です。
|
||||
モデルが格納されているディレクトリへのパスを指定します。デフォルト値は`models/cunet`です。
|
||||
標準では以下のモデルが付属しています。
|
||||
* `models/anime_style_art_rgb` : RGBすべてを変換する2次元画像用モデル
|
||||
* `models/anime_style_art` : 輝度のみを変換する2次元画像用モデル
|
||||
* `models/photo` : RGBすべてを変換する写真、アニメ画像用モデル
|
||||
* `models/upconv_7_anime_style_art_rgb` : anime_style_art_rgbより高速かつ同等以上の画質で変換するモデル
|
||||
* `models/upconv_7_photo` : photoより高速かつ同等以上の画質で変換するモデル
|
||||
* `models/upresnet10` : 今のところ一番の高画質で変換するモデル(このモデルだけ分割サイズの設定で出力結果が変わります)
|
||||
* `models/anime_style_art_rgb` : 2次元イラスト(RGBモデル)
|
||||
* `models/anime_style_art` : 2次元イラスト(Yモデル)
|
||||
* `models/photo` : 写真・アニメ(Photoモデル)
|
||||
* `models/upconv_7_anime_style_art_rgb` : 2次元イラスト(UpRGBモデル)
|
||||
* `models/upconv_7_photo` : 写真・アニメ(UpPhotoモデル)
|
||||
* `models/upresnet10` : 2次元イラスト(UpResNet10モデル)
|
||||
* `models/cunet` : 2次元イラスト(CUnetモデル)
|
||||
* `models/ukbench` : 旧式の写真用モデル(拡大するモデルのみ付属しています。ノイズ除去は出来ません)
|
||||
基本的には指定しなくても大丈夫です。デフォルト以外のモデルや自作のモデルを使用する時などに指定して下さい。
|
||||
|
||||
@ -496,5 +430,5 @@ ex.
|
||||
に、感謝します。
|
||||
また、メッセージを英訳してくださった @paul70078 さん、メッセージを中国語(簡体字)に翻訳してくださった @yoonhakcher さん、中国語(簡体字)訳のプルリクエストを下さった @mzhboy さん、
|
||||
メッセージを韓国語に翻訳してくださった @kenin0726 さん、韓国語訳の改善を提案してくださった @aruhirin さん、
|
||||
メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さん、トルコ語訳のプルリクエストを下さった @Scharynche さん、フランス語訳のプルリクエストを下さった @Serized さん、
|
||||
メッセージを中国語(繁体字)に翻訳してくださった @lizardon1995 さん、@yoonhakcher さん、トルコ語訳のプルリクエストを下さった @Scharynche さん、フランス語訳のプルリクエストを下さった @Serized さん、ブラジルポルトガル語訳のプルリクエストを下さった @simrafael さん、ドイツ語訳のプルリクエストを下さった @AndreasWebdev さん、チェコ語訳のプルリクエストを下さった @07pepa さん、イタリア語訳のプルリクエストを下さった @AndryGabry01 さん、
|
||||
GUI版のアイコンを提供してくださった JYUNYAさん に感謝します。
|
||||
|
@ -1,17 +1,17 @@
|
||||
{
|
||||
"IDC_STATIC_IO_SETTING":"输入和输出设置",
|
||||
"IDC_STATIC_INPUT_PATH":"输入\r\n(文件或文件夹)",
|
||||
"IDC_STATIC_INPUT_PATH":"输入路径\r\n(文件或文件夹)",
|
||||
"IDC_BUTTON_INPUT_REF":"浏览...",
|
||||
"IDC_STATIC_OUTPUT_PATH":"输出",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"文件夹内进行转换的格式",
|
||||
"IDC_STATIC_OUTPUT_EXT":"输出格式",
|
||||
"IDC_STATIC_OUTPUT_PATH":"输出路径",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"文件夹内进行转换的文件格式",
|
||||
"IDC_STATIC_OUTPUT_EXT":"输出文件格式",
|
||||
"IDC_STATIC_OUTPUT_QUALITY":"输出图像质量",
|
||||
"IDC_STATIC_OUTPUT_DEPTH":"输出色彩深度",
|
||||
"IDC_STATIC_AUTO_START":"输入文件后自动开始转换",
|
||||
"IDC_RADIO_AUTO_START_NONE":"不启用",
|
||||
"IDC_RADIO_AUTO_START_ONE":"输入单个文件时启用",
|
||||
"IDC_RADIO_AUTO_START_MULTI":"输入文件夹或多个文件时启用",
|
||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"质量和处理设置",
|
||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"转换质量和处理设置",
|
||||
"IDC_STATIC_TRANS_MODE":"转换模式",
|
||||
"IDC_RADIO_MODE_NOISE_SCALE":"降噪和放大",
|
||||
"IDC_RADIO_MODE_SCALE":"仅放大",
|
||||
@ -31,73 +31,75 @@
|
||||
"IDC_RADIO_MODEL_RGB":"2D 插图 — RGB 模型",
|
||||
"IDC_RADIO_MODEL_PHOTO":"照片或动画 — Photo 模型",
|
||||
"IDC_RADIO_MODEL_Y":"2D 插图 — Y 模型",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"2D 插图 — UpResNet10",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"2D 插图 — UpResNet10 模型",
|
||||
"IDC_CHECK_TTA":"TTA 模式",
|
||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"处理速度设置",
|
||||
"IDC_STATIC_PROCESSOR":"处理器",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 优先)",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (优先使用 cuDNN)",
|
||||
"IDC_RADIO_MODE_CPU":"CPU",
|
||||
"IDC_STATIC_CROP_SIZE":"拆分尺寸",
|
||||
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 检查",
|
||||
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 检查...",
|
||||
"IDC_BUTTON_CANCEL":"取消",
|
||||
"IDC_BUTTON_EXEC":"开始",
|
||||
"IDC_STATIC_LANG_UI":"界面语言",
|
||||
"IDC_BUTTON_OUTPUT_REF":"浏览...",
|
||||
"IDC_BUTTON_APP_SETTING":"应用设置...",
|
||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"重设输出路径",
|
||||
"IDC_STATIC_ARG_START":"带参数的启动设置",
|
||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"重设输出文件夹",
|
||||
"IDC_STATIC_ARG_START":"启动参数",
|
||||
"IDC_CHECK_ARG_START_AUTO":"启动时开始转换",
|
||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"成功后自动退出",
|
||||
"IDC_STATIC_INPUT_DIR_FIX":"默认输入文件夹",
|
||||
"IDC_STATIC_OUTPUT_DIR_FIX":"默认输出文件夹",
|
||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"输出文件不覆盖",
|
||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"输出时不覆盖同名文件",
|
||||
"MessageUseProcessorMode":"使用的处理模式: %s",
|
||||
"MessageProcessTime":"处理时间: %02d:%02d:%02d.%03d",
|
||||
"MessageInitTime":"初始化时间: %02d:%02d:%02d.%03d",
|
||||
"MessagecuDNNCheckTime":"cuDNN 检查时间: %02d:%02d:%02d.%03d",
|
||||
"MessageTitleError":"错误",
|
||||
"MessageScaleRateCheckError":"放大倍率必须是大于 0 的正数",
|
||||
"MessageScaleRateCheckError":"放大倍率必须是大于 0.0 的正数",
|
||||
"MessageScaleWidthCheckError":"放大尺寸必须是大于 0 的整数",
|
||||
"MessageCropSizeCheckError":"拆分尺寸必须是大于 0 的整数",
|
||||
"MessageInputPathCheckError":"请设置输入路径",
|
||||
"MessageOutputPathCheckError":"请设置输出路径",
|
||||
"MessageOutputExtCheckError":"请设置输出格式",
|
||||
"MessageInputCheckError":"输入或输出路径不存在",
|
||||
"MessageOutputExtCheckError":"请设置输出文件格式",
|
||||
"MessageInputCheckError":"输入的文件或文件夹不存在",
|
||||
"MessageOutputExtentionCheckError":"请选择输出格式",
|
||||
"MessageOutputQualityCheckError":"输出图像质量过大",
|
||||
"MessageOutputDepthCheckError":"输出图像色彩深度数值不正确",
|
||||
"MessageCudaNotFindError":"使用 GPU 转换失败。\r\n可能是因为没有安装可调用的 CUDA 驱动。\r\n请安装驱动。",
|
||||
"MessageCudaOldVersionError":"使用 GPU 转换失败。\r\n可能是因为安装的 CUDA 驱动太旧。\r\n请更新驱动。",
|
||||
"MessageOutputQualityCheckError":"输出图像质量的值超出范围",
|
||||
"MessageOutputDepthCheckError":"输出色彩深度数值无效",
|
||||
"MessageCudaNotFindError":"无法使用 GPU 转换。\r\n可能是因为没有安装有效的 CUDA 驱动。\r\n请安装驱动。",
|
||||
"MessageCudaOldVersionError":"无法使用 GPU 转换。\r\n可能是因为安装的 CUDA 驱动版本过旧。\r\n请更新驱动。",
|
||||
"MessageTransSuccess":"转换成功",
|
||||
"MessageErrorHappen":"发生错误",
|
||||
"MessageCreateOutDirError":"输出目录\r\n「%s」\r\n创建失败",
|
||||
"MessageCancelError":"已经取消",
|
||||
"MessageCreateOutDirError":"输出文件夹\r\n「%s」\r\n创建失败",
|
||||
"MessageCancelError":"转换被取消",
|
||||
"MessageInvalidParameterError":"参数无效",
|
||||
"MessageFailedOpenModelFileError":"模型文件无法打开",
|
||||
"MessageFailedParseModelFileError":"模型文件已损坏",
|
||||
"MessageFailedConstructModelError":"无法构建模型",
|
||||
"MessageFailedConstructModelError":"构建网络失败",
|
||||
"MessageFailedOpenInputFileError":"无法打开输入文件「%s」",
|
||||
"MessageFailedOpenOutputFileError":"无法输出文件「%s」",
|
||||
"MessageFailedOpenOutputFileError":"无法保存输出文件「%s」",
|
||||
"MessageFailedProcessCaffeError":"插值处理失败",
|
||||
"MessageTitleResult":"结果",
|
||||
"MessagecuDNNOK":"可以使用 cuDNN。",
|
||||
"MessagecuDNNNotFindError":"调用 cuDNN 失败。\r\n没有发现「%s」。",
|
||||
"MessagecuDNNOldVersionError":"调用 cuDNN 失败。\r\n「%s」版本太旧。请使用 %s。",
|
||||
"MessagecuDNNCannotCreateError":"调用 cuDNN 失败。\r\n初始化 cuDNN 失败。",
|
||||
"MessagecuDNNDefautlError":"调用 cuDNN 失败",
|
||||
"MessageExtStr":"输入文件扩展名 (%s)",
|
||||
"MessageAllFileFolder":"所有文件和文件夹 (.)",
|
||||
"MessagecuDNNNotFindError":"无法使用 cuDNN。\r\n找不到「%s」。",
|
||||
"MessagecuDNNOldVersionError":"无法使用 cuDNN。\r\n「%s」的版本过旧。请使用 %s。",
|
||||
"MessagecuDNNCannotCreateError":"无法使用 cuDNN。\r\ncuDNN 无法初始化。",
|
||||
"MessagecuDNNDefautlError":"无法使用 cuDNN",
|
||||
"MessageExtStr":"自定义文件 (%s)",
|
||||
"MessageAllFileFolder":"所有文件 (*.*)",
|
||||
"MessageTitleInputDialog":"请选择文件或文件夹",
|
||||
"MessageTimeLeftUnknown":"估计剩余时间: 未知",
|
||||
"MessageTimeLeft":"估计剩余时间",
|
||||
"MessageNoOverwrite":"此位置已经包含同名文件: %s",
|
||||
"MessageCudaOldDeviceError":"CUDA 组件版本太旧。\r\n请使用 rnCompute Capability 2.0 以上版本。",
|
||||
"MessageCudaOldDeviceError":"CUDA 设备过旧。\r\n请使用 Compute Capability (计算能力) 2.0 以上的设备。",
|
||||
"OK":"确定",
|
||||
"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_PHOTO":"照片或动画 — UpPhoto 模型",
|
||||
"MessageLogFatalError":"发生了致命错误。\r\n分割尺寸可能过大。",
|
||||
"MessageLogFatalError":"发生了致命错误。\r\n拆分尺寸可能过大。",
|
||||
"IDC_STATIC_BATCH_SIZE":"批尺寸",
|
||||
"MessageBatchSizeCheckError":"批尺寸必须是大于 0 的整数"
|
||||
"MessageBatchSizeCheckError":"批尺寸必须是大于 0 的整数",
|
||||
"IDC_RADIO_MODEL_CUNET":"2D 插图 — CUnet 模型",
|
||||
"MessageCropSizeDivisibleCheckError":"这个模组的拆分尺寸必须是 %d 的正整数倍"
|
||||
}
|
||||
|
@ -96,5 +96,6 @@
|
||||
"IDC_STATIC_USE_GPU_NO":"使用GPU數量",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"二次元插圖(UpRGB 模式)",
|
||||
"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
|
||||
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
|
||||
Русский(RU) 0x19 0x01 russian.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
|
||||
繁體中文 0x04 0x01 Chinese_Traditional.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"
|
||||
}
|
@ -99,5 +99,7 @@
|
||||
"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",
|
||||
"IDC_STATIC_BATCH_SIZE":"Batch size",
|
||||
"MessageBatchSizeCheckError":"Batch size must be greater than 0"
|
||||
"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"
|
||||
}
|
||||
|
@ -97,5 +97,6 @@
|
||||
"IDC_STATIC_USE_GPU_NO":"Utiliser GPU n°",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"Illustration 2D (modèle UpRGB)",
|
||||
"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"
|
||||
}
|
@ -99,5 +99,7 @@
|
||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"写真・アニメ (UpPhotoモデル)",
|
||||
"MessageLogFatalError":"致命的なエラーが発生しました。\r\n分割サイズが大きすぎる可能性があります",
|
||||
"IDC_STATIC_BATCH_SIZE":"バッチサイズ",
|
||||
"MessageBatchSizeCheckError":"バッチサイズは0より大きい整数である必要があります"
|
||||
"MessageBatchSizeCheckError":"バッチサイズは0より大きい整数である必要があります",
|
||||
"IDC_RADIO_MODEL_CUNET":"2次元イラスト (CUnet)",
|
||||
"MessageCropSizeDivisibleCheckError":"このモデルの分割サイズは %d で割り切れる必要があります"
|
||||
}
|
||||
|
@ -1,41 +1,41 @@
|
||||
{
|
||||
"IDC_STATIC_IO_SETTING":"입출력 설정",
|
||||
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일이나 폴더)",
|
||||
"IDC_STATIC_INPUT_PATH":"입력 경로\r\n(파일 또는 폴더)",
|
||||
"IDC_BUTTON_INPUT_REF":"설정",
|
||||
"IDC_STATIC_OUTPUT_PATH":"출력 경로",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"변환시킬 파일 확장자 대상",
|
||||
"IDC_STATIC_OUTPUT_EXT":"출력할 확장자",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"변환 대상 확장자 종류",
|
||||
"IDC_STATIC_OUTPUT_EXT":"출력 확장자",
|
||||
"IDC_STATIC_OUTPUT_QUALITY":"출력 화질 설정",
|
||||
"IDC_STATIC_OUTPUT_DEPTH":"색상별 비트수 설정",
|
||||
"IDC_STATIC_OUTPUT_DEPTH":"색상 비트수 설정",
|
||||
"IDC_STATIC_AUTO_START":"퀵 스타트 설정",
|
||||
"IDC_RADIO_AUTO_START_NONE":"사용 안 함",
|
||||
"IDC_RADIO_AUTO_START_ONE":"파일이 추가되면 바로 시작",
|
||||
"IDC_RADIO_AUTO_START_MULTI":"폴더 또는 여러 파일이\r\n추가되면 바로 시작",
|
||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"이미지 변환 및 처리 설정",
|
||||
"IDC_RADIO_AUTO_START_NONE":"자동 시작 안 함",
|
||||
"IDC_RADIO_AUTO_START_ONE":"파일 추가시 바로 시작",
|
||||
"IDC_RADIO_AUTO_START_MULTI":"폴더 또는 여러 파일\r\n추가시 바로 시작",
|
||||
"IDC_STATIC_QUALITY_PROCESS_SETTING":"변환 화질 및 처리 설정",
|
||||
"IDC_STATIC_TRANS_MODE":"변환 모드",
|
||||
"IDC_RADIO_MODE_NOISE_SCALE":"확대 및 노이즈 줄이기",
|
||||
"IDC_RADIO_MODE_SCALE":"확대만",
|
||||
"IDC_RADIO_MODE_NOISE":"노이즈만 줄이기",
|
||||
"IDC_RADIO_AUTO_SCALE":"확대 후 자동으로 노이즈 줄이기",
|
||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"노이즈 감소 단계",
|
||||
"IDC_RADIO_MODE_NOISE_SCALE":"확대 및 노이즈 제거",
|
||||
"IDC_RADIO_MODE_SCALE":"확대",
|
||||
"IDC_RADIO_MODE_NOISE":"노이즈 제거",
|
||||
"IDC_RADIO_AUTO_SCALE":"노이즈 제거(자동판별)&& 확대",
|
||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"노이즈 제거 수준",
|
||||
"IDC_RADIONOISE_LEVEL0":"0단계",
|
||||
"IDC_RADIONOISE_LEVEL1":"1단계",
|
||||
"IDC_RADIONOISE_LEVEL2":"2단계",
|
||||
"IDC_RADIONOISE_LEVEL3":"3단계",
|
||||
"IDC_STATIC_SCALE_RATE":"확대 설정",
|
||||
"IDC_RADIO_SCALE_RATIO":"확대율로 설정",
|
||||
"IDC_RADIO_SCALE_WIDTH":"변환 후의 가로 길이",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"변환 후의 세로 길이",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"가로x세로로 확대",
|
||||
"IDC_RADIO_SCALE_WIDTH":"변환 후 가로 길이",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"변환 후 세로 길이",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"'가로 세로'로 확대",
|
||||
"IDC_STATIC_MODEL":"모델",
|
||||
"IDC_RADIO_MODEL_RGB":"2D 일러스트 (RGB 모델)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"사진/애니메이션 (Photo 모델)",
|
||||
"IDC_RADIO_MODEL_Y":"2D 일러스트 (Y 모델)",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"2D 일러스트 (UpResNet10)",
|
||||
"IDC_RADIO_MODEL_RGB":"2D 일러스트 (RGB모델)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"사진/애니메이션 (Photo모델)",
|
||||
"IDC_RADIO_MODEL_Y":"2D 일러스트 (Y모델)",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"2D 일러스트 (UpResNet10모델)",
|
||||
"IDC_CHECK_TTA":"TTA 모드 사용",
|
||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"처리 속도 설정",
|
||||
"IDC_STATIC_PROCESSOR":"사용할 처리 방식",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 사용)",
|
||||
"IDC_STATIC_PROCESSOR":"사용할 프로세서",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (cuDNN 우선)",
|
||||
"IDC_RADIO_MODE_CPU":"CPU",
|
||||
"IDC_STATIC_CROP_SIZE":"분할 크기",
|
||||
"IDC_BUTTON_CHECK_CUDNN":"cuDNN 검사",
|
||||
@ -45,57 +45,61 @@
|
||||
"IDC_BUTTON_OUTPUT_REF":"설정",
|
||||
"IDC_BUTTON_APP_SETTING":"환경 설정",
|
||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"출력 경로 초기화",
|
||||
"IDC_STATIC_ARG_START":"인수로 시작 설정",
|
||||
"IDC_CHECK_ARG_START_AUTO":"즉시 작업 시작",
|
||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"오류가 없으면 바로 종료",
|
||||
"IDC_STATIC_INPUT_DIR_FIX":"입력 경로 창\n기본 폴더",
|
||||
"IDC_STATIC_OUTPUT_DIR_FIX":"결과 경로 창\n기본 폴더",
|
||||
"IDC_STATIC_ARG_START":"인수 추가 실행시 설정",
|
||||
"IDC_CHECK_ARG_START_AUTO":"즉시 변환 시작",
|
||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"오류가 없으면 자동 종료",
|
||||
"IDC_STATIC_INPUT_DIR_FIX":"입력 경로\n기본 폴더",
|
||||
"IDC_STATIC_OUTPUT_DIR_FIX":"출력 경로\n기본 폴더",
|
||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"출력 파일을 덮어쓰지 않음",
|
||||
"MessageUseProcessorMode":"사용한 프로세서 : %s",
|
||||
"MessageUseProcessorMode":"사용한 프로세서 모드 : %s",
|
||||
"MessageProcessTime":"처리 시간 : %02d:%02d:%02d.%03d",
|
||||
"MessageInitTime":"초기화 시간 : %02d:%02d:%02d.%03d",
|
||||
"MessagecuDNNCheckTime":"cuDNN 검사 시간 : %02d:%02d:%02d.%03d",
|
||||
"MessageTitleError":"오류",
|
||||
"MessageScaleRateCheckError":"확대 비율은 0.0 이상의 숫자를 입력해주세요.",
|
||||
"MessageScaleRateCheckError":"확대 비율은 0.0 이상의 숫자를 입력해 주십시오.",
|
||||
"MessageScaleWidthCheckError":"확대 크기는 0보다 큰 정수여야 합니다.",
|
||||
"MessageCropSizeCheckError":"분할 크기는 0 이상이어야 합니다.",
|
||||
"MessageInputPathCheckError":"입력 경로를 설정해 주세요.",
|
||||
"MessageOutputPathCheckError":"출력 경로를 설정해 주세요.",
|
||||
"MessageOutputExtCheckError":"출력할 확장자를 설정해 주세요.",
|
||||
"MessageInputCheckError":"입력한 파일이나 폴더가 존재하지 않습니다.",
|
||||
"MessageOutputExtentionCheckError":"출력할 파일의 확장자가 잘못되었습니다.",
|
||||
"MessageOutputQualityCheckError":"출력 화질 설정이 설정 가능한 범위를 벗어났습니다.",
|
||||
"MessageOutputDepthCheckError":"출력할 색상별 비트수가 올바르지 않습니다.",
|
||||
"MessageCudaNotFindError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 설치되어 있지 않은 것일 수 있습니다. \r\nCUDA 드라이버를 다시 설치해 주세요.",
|
||||
"MessageCudaOldVersionError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 너무 오래된 것일 수도 있습니다.\r\nCUDA 드라이버를 다시 설치해 주세요.",
|
||||
"MessageTransSuccess":"변환 성공",
|
||||
"MessageInputPathCheckError":"입력 경로를 설정해 주십시오.",
|
||||
"MessageOutputPathCheckError":"출력 경로를 설정해 주십시오.",
|
||||
"MessageOutputExtCheckError":"출력 확장자를 설정해 주십시오.",
|
||||
"MessageInputCheckError":"입력 파일 혹은 폴더가 존재하지 않습니다.",
|
||||
"MessageOutputExtentionCheckError":"출력 확장자를 설정해 주십시오.",
|
||||
"MessageOutputQualityCheckError":"출력 화질이 설정 가능한 범위를 벗어났습니다.",
|
||||
"MessageOutputDepthCheckError":"출력할 색상 비트수가 올바르지 않습니다.",
|
||||
"MessageCudaNotFindError":"GPU를 사용하여 변환할 수 없습니다.\r\nCUDA 드라이버가 설치되어 있지 않은 것일 수 있습니다. \r\nCUDA 드라이버를 다시 설치해 주십시오.",
|
||||
"MessageCudaOldVersionError":"선택한 파일이 GPU를 사용하여 변환하지 못했습니다.\r\nCUDA 드라이버가 너무 오래된 것일 수도 있습니다.\r\n최신 CUDA 드라이버를 설치해 주십시오.",
|
||||
"MessageTransSuccess":"변환에 성공했습니다.",
|
||||
"MessageErrorHappen":"오류가 발생했습니다.",
|
||||
"MessageCreateOutDirError":"출력할 폴더\r\n'%s'\r\n을 만들지 못했습니다.",
|
||||
"MessageCreateOutDirError":"출력 폴더\r\n'%s'\r\n를 만들지 못했습니다.",
|
||||
"MessageCancelError":"변환이 취소되었습니다.",
|
||||
"MessageInvalidParameterError":"설정값이 잘못되었습니다.",
|
||||
"MessageFailedOpenModelFileError":"모델 파일을 열지 못했습니다.",
|
||||
"MessageFailedParseModelFileError":"모델 파일을 구문 분석하지 못했습니다.",
|
||||
"MessageFailedConstructModelError":"모델을 구성하지 못했습니다.",
|
||||
"MessageFailedOpenInputFileError":"파일 %s를 열지 못했습니다.",
|
||||
"MessageFailedConstructModelError":"모델 구성에 실패했습니다.",
|
||||
"MessageFailedOpenInputFileError":"파일 %s을 불러오지 못했습니다.",
|
||||
"MessageFailedOpenOutputFileError":"%s로 변환하지 못했습니다.",
|
||||
"MessageFailedProcessCaffeError":"보정 처리를 하지 못했습니다.",
|
||||
"MessageFailedProcessCaffeError":"보정 처리에 실패했습니다.",
|
||||
"MessageTitleResult":"결과",
|
||||
"MessagecuDNNOK":"cuDNN을 사용할 수 있습니다.",
|
||||
"MessagecuDNNNotFindError":"cuDNN을 사용할 수 없습니다. \r\n%s 파일이 없습니다.",
|
||||
"MessagecuDNNOldVersionError":"cuDNN을 사용할 수 없습니다.\r\n%s 파일이 오래되었습니다. %s를 사용해 주세요.",
|
||||
"MessagecuDNNCannotCreateError":"cuDNN을 사용할 수 없습니다.\r\n cuDNN을 초기화하는 데 실패했습니다.",
|
||||
"MessagecuDNNNotFindError":"cuDNN을 사용할 수 없습니다. \r\n%s가 없습니다.",
|
||||
"MessagecuDNNOldVersionError":"cuDNN을 사용할 수 없습니다.\r\n%s의 버전이 오래 되었습니다. %s를 사용해 주십시오.",
|
||||
"MessagecuDNNCannotCreateError":"cuDNN을 사용할 수 없습니다.\r\n cuDNN 초기화에 실패했습니다.",
|
||||
"MessagecuDNNDefautlError":"cuDNN을 사용할 수 없습니다.",
|
||||
"MessageExtStr":"입력 파일 확장자(%s)",
|
||||
"MessageExtStr":"변환 대상 확장자(%s)",
|
||||
"MessageAllFileFolder":"모든 파일과 폴더(*.*)",
|
||||
"MessageTitleInputDialog":"입력할 파일 또는 폴더를 선택해 주세요.",
|
||||
"MessageTitleInputDialog":"변환할 파일 또는 폴더를 선택해 주십시오.",
|
||||
"MessageTimeLeftUnknown":"남은 시간 : 알 수 없음",
|
||||
"MessageTimeLeft":"남은 시간",
|
||||
"MessageNoOverwrite":"출력 경로에 이미 %s 파일이 존재합니다.",
|
||||
"MessageCudaOldDeviceError":"CUDA 장치가 오래되었습니다.r\nCompute Capability 2.0 이상 호환되는 장치를 사용해 주세요.",
|
||||
"MessageCudaOldDeviceError":"CUDA 장치가 오래 되었습니다.r\nCompute Capability 3.0 이상의 장치를 사용해 주십시오.",
|
||||
"OK":"확인",
|
||||
"Cancel":"취소",
|
||||
"IDC_STATIC_USE_GPU_NO":"사용할 GPU 번호",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 일러스트 (UpRGB 모델)",
|
||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"사진/애니메이션 (UpPhoto 모델)",
|
||||
"MessageLogFatalError":"치명적인 오류가 발생했습니다.\r\n분할 크기가 너무 크게 설정되어 있을 가능성이 있습니다."
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D 일러스트 (UpRGB모델)",
|
||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"사진/애니메이션 (UpPhoto모델)",
|
||||
"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"
|
||||
}
|
@ -97,5 +97,6 @@
|
||||
"IDC_STATIC_USE_GPU_NO":"Использ. GPU №",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"2D изображ. (Профиль UpRGB)",
|
||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Фото (Профиль UpPhoto)",
|
||||
"MessageLogFatalError":"Произошла критическая ошибка.\r\nВозможно размер блока слишком большой"
|
||||
"MessageLogFatalError":"Произошла критическая ошибка.\r\nВозможно размер блока слишком большой",
|
||||
"IDC_RADIO_MODEL_CUNET":"2D изображ. (Профиль CUnet)"
|
||||
}
|
||||
|
@ -1,101 +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_BUTTON_INPUT_REF":"Examinar",
|
||||
"IDC_STATIC_OUTPUT_PATH":"Ruta de entrada",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"Extensiones de archivo de entrada",
|
||||
"IDC_BUTTON_INPUT_REF":"Explorar",
|
||||
"IDC_STATIC_OUTPUT_PATH":"Ruta de salida",
|
||||
"IDC_STATIC_TANS_EXT_LIST":"Extensiones de archivos de entrada",
|
||||
"IDC_STATIC_OUTPUT_EXT":"Extensión de salida",
|
||||
"IDC_STATIC_OUTPUT_QUALITY":"Calidad de salida",
|
||||
"IDC_STATIC_OUTPUT_DEPTH":"Bits de profundidad de salida",
|
||||
"IDC_STATIC_AUTO_START":"Auto-iniciar cuando los archivos de entradas se hayan establecido",
|
||||
"IDC_RADIO_AUTO_START_NONE":"Sin auto-inicio",
|
||||
"IDC_RADIO_AUTO_START_ONE":"En el archivo de entrada",
|
||||
"IDC_RADIO_AUTO_START_MULTI":"Al introducir 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_OUTPUT_DEPTH":"Profundidad de bits de salida",
|
||||
"IDC_STATIC_AUTO_START":"Inicio automático al agregar archivos",
|
||||
"IDC_RADIO_AUTO_START_NONE":"Desactivado",
|
||||
"IDC_RADIO_AUTO_START_ONE":"Cuando se agregue un archivo",
|
||||
"IDC_RADIO_AUTO_START_MULTI":"Cuando se agreguen varios archivos o una carpeta",
|
||||
"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_RADIO_MODE_NOISE_SCALE":"Reducir ruido y magnificar",
|
||||
"IDC_RADIO_MODE_SCALE":"Solo magnificar",
|
||||
"IDC_RADIO_MODE_NOISE_SCALE":"Reducir ruido y ampliar",
|
||||
"IDC_RADIO_MODE_SCALE":"Solo ampliar",
|
||||
"IDC_RADIO_MODE_NOISE":"Solo reducir ruido",
|
||||
"IDC_RADIO_AUTO_SCALE":"Magnificar y auto-reducir ruido",
|
||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"Nivel de reducción de ruido",
|
||||
"IDC_RADIONOISE_LEVEL0":"Nivel 0",
|
||||
"IDC_RADIONOISE_LEVEL1":"Nivel 1",
|
||||
"IDC_RADIONOISE_LEVEL2":"Nivel 2",
|
||||
"IDC_RADIONOISE_LEVEL3":"Nivel 3",
|
||||
"IDC_STATIC_SCALE_RATE":"Tamaño de magnificación",
|
||||
"IDC_RADIO_SCALE_RATIO":"Establecer tasa",
|
||||
"IDC_RADIO_SCALE_WIDTH":"Establecer altura",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"Establecer anchura",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Establecer altura y anchura",
|
||||
"IDC_RADIO_AUTO_SCALE":"Ampliar y reducir ruido autom.",
|
||||
"IDC_STATIC_JPEG_NOISE_LEVEL":"Nv. reducción ruido",
|
||||
"IDC_RADIONOISE_LEVEL0":"Nivel 0",
|
||||
"IDC_RADIONOISE_LEVEL1":"Nivel 1",
|
||||
"IDC_RADIONOISE_LEVEL2":"Nivel 2",
|
||||
"IDC_RADIONOISE_LEVEL3":"Nivel 3",
|
||||
"IDC_STATIC_SCALE_RATE":"Tamaño de la ampliación",
|
||||
"IDC_RADIO_SCALE_RATIO":"Multiplicador",
|
||||
"IDC_RADIO_SCALE_WIDTH":"Ancho",
|
||||
"IDC_RADIO_SCALE_HEIGHT":"Alto",
|
||||
"IDC_RADIO_SCALE_WIDTH_HEIGHT":"Ancho y alto",
|
||||
"IDC_STATIC_MODEL":"Modelo",
|
||||
"IDC_RADIO_MODEL_RGB":"Ilustración 2-D (Modelo RGB)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"Fotografía, Anime",
|
||||
"IDC_RADIO_MODEL_Y":"Ilustración 2-D (Modelo Y)",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"Ilustración 2-D (UpResNet10)",
|
||||
"IDC_CHECK_TTA":"Utilizar modo TTA",
|
||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Procesar configuración de velocidad",
|
||||
"IDC_STATIC_PROCESSOR":"Utilizar el procesador",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (necesita cuDNN)",
|
||||
"IDC_RADIO_MODEL_RGB":"Ilustración en 2D (modelo RGB)",
|
||||
"IDC_RADIO_MODEL_PHOTO":"Fotografía y anime",
|
||||
"IDC_RADIO_MODEL_Y":"Ilustración en 2D (modelo Y)",
|
||||
"IDC_RADIO_MODEL_UpResNet10":"Ilustración en 2D (modelo UpResNet10)",
|
||||
"IDC_CHECK_TTA":"Usar modo TTA",
|
||||
"IDC_STATIC_PROCESS_SPEED_SETTING":"Configuración de velocidad de procesamiento",
|
||||
"IDC_STATIC_PROCESSOR":"Método de procesamiento",
|
||||
"IDC_RADIO_MODE_GPU":"CUDA (con cuDNN)",
|
||||
"IDC_RADIO_MODE_CPU":"CPU",
|
||||
"IDC_STATIC_CROP_SIZE":"Tamaño de recorte",
|
||||
"IDC_BUTTON_CHECK_CUDNN":"Revisar cuDNN",
|
||||
"IDC_STATIC_CROP_SIZE":"Tamaño de división",
|
||||
"IDC_BUTTON_CHECK_CUDNN":"Verificar cuDNN",
|
||||
"IDC_BUTTON_CANCEL":"Cancelar",
|
||||
"IDC_BUTTON_EXEC":"Iniciar",
|
||||
"IDC_BUTTON_EXEC":"Comenzar",
|
||||
"IDC_STATIC_LANG_UI":"Idioma de la interfaz",
|
||||
"IDC_BUTTON_OUTPUT_REF":"Examinar",
|
||||
"IDC_BUTTON_APP_SETTING":"Configuración de la aplicación",
|
||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Reiniciar ruta de salida",
|
||||
"IDC_STATIC_ARG_START":"Iniciar con el argumento",
|
||||
"IDC_CHECK_ARG_START_AUTO":"Iniciar cuando esté lanzado",
|
||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Salir al completarse exitósamente",
|
||||
"IDC_STATIC_INPUT_DIR_FIX":"Carpeta reparada de entrada",
|
||||
"IDC_STATIC_OUTPUT_DIR_FIX":"Carpeta reparada de salida",
|
||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"Archivos de salida sin sobrescribir",
|
||||
"MessageUseProcessorMode":"Procesador utilizado: %s",
|
||||
"MessageProcessTime":"Tiempo de proceso: %02d:%02d:%02d.%03d",
|
||||
"MessageInitTime":"Tiempo de inicializaión: %02d:%02d:%02d.%03d",
|
||||
"MessagecuDNNCheckTime":"Tiempo de revisión de cuDNN: %02d:%02d:%02d.%03d",
|
||||
"IDC_BUTTON_OUTPUT_REF":"Explorar",
|
||||
"IDC_BUTTON_APP_SETTING":"Configuración",
|
||||
"IDC_BUTTON_CLEAR_OUTPUT_DIR":"Rest. carpeta de salida",
|
||||
"IDC_STATIC_ARG_START":"Inicio con argumentos",
|
||||
"IDC_CHECK_ARG_START_AUTO":"Comenzar al abrir",
|
||||
"IDC_CHECK_ARG_START_SUCCESS_FINISH":"Salir al terminar",
|
||||
"IDC_STATIC_INPUT_DIR_FIX":"Carpeta de entrada fija",
|
||||
"IDC_STATIC_OUTPUT_DIR_FIX":"Carpeta de salida fija",
|
||||
"IDC_CHECK_OUTPUT_NO_OVERWRITE":"No reemplazar los archivos de salida",
|
||||
"MessageUseProcessorMode":"Se usará el método de procesamiento %s",
|
||||
"MessageProcessTime":"Tiempo de procesamiento: %02d:%02d:%02d.%03d",
|
||||
"MessageInitTime":"Tiempo de inicialización: %02d:%02d:%02d.%03d",
|
||||
"MessagecuDNNCheckTime":"Tiempo de comprobación de cuDNN: %02d:%02d:%02d.%03d",
|
||||
"MessageTitleError":"Error",
|
||||
"MessageScaleRateCheckError":"El factor de escala debe ser mayor de 0.0 y un número positivo",
|
||||
"MessageScaleWidthCheckError":"El tamaño debe ser un número entero y mayor de 0.",
|
||||
"MessageCropSizeCheckError":"El tamaño de recorte debe ser mayor de 0",
|
||||
"MessageInputPathCheckError":"Por favor especifica la ruta de entrada",
|
||||
"MessageOutputPathCheckError":"Por favor especifica la ruta de salida",
|
||||
"MessageOutputExtCheckError":"Por favor especifica la extensión de salida",
|
||||
"MessageInputCheckError":"El archivo o carpeta de entrada no existe",
|
||||
"MessageOutputExtentionCheckError":"Por favor selecciona la extensión de salida",
|
||||
"MessageOutputQualityCheckError":"La calidad de salida está fuera de rango",
|
||||
"MessageOutputDepthCheckError":"La profundidad de bits de salida es incorrecto",
|
||||
"MessageCudaNotFindError":"La entrada no puede ser convertida por el GPU\r\nEl dispositivo CUDA no está instalado. \r\nPor favor instala el dispositivo CUDA",
|
||||
"MessageCudaOldVersionError":"La entrada no puede ser convertida por el GPU\r\nEl dispositivo CUDA es antiguo \r\nPor favor actualiza el dispositivo CUDA",
|
||||
"MessageTransSuccess":"Convertido exitósamente",
|
||||
"MessageErrorHappen":"Un error ocurrió",
|
||||
"MessageCreateOutDirError":"Carpeta de salida\r\n[%s]\r\nCreación fallida",
|
||||
"MessageCancelError":"La conversión ha sido cancelada",
|
||||
"MessageInvalidParameterError":"El parámetro es inválido",
|
||||
"MessageFailedOpenModelFileError":"Algo falló al abrir el archivo de modelo",
|
||||
"MessageFailedParseModelFileError":"Algo falló al analizar el archivo de modelo",
|
||||
"MessageFailedConstructModelError":"Algo falló al construir el modelo",
|
||||
"MessageFailedOpenInputFileError":"Algo falló al abrir el archivo de entrada %s",
|
||||
"MessageFailedOpenOutputFileError":"Algo falló al generar el archivo de salida %s",
|
||||
"MessageFailedProcessCaffeError":"Algo falló al procesar la interpolación",
|
||||
"MessageScaleRateCheckError":"El factor de ampliación debe ser mayor que 0.0.",
|
||||
"MessageScaleWidthCheckError":"El tamaño debe ser un número entero mayor que 0.",
|
||||
"MessageCropSizeCheckError":"El tamaño de división debe ser mayor que 0.",
|
||||
"MessageInputPathCheckError":"Debes especificar la ruta de entrada.",
|
||||
"MessageOutputPathCheckError":"Debes especificar la ruta de salida.",
|
||||
"MessageOutputExtCheckError":"Debes especificar la extensión de salida.",
|
||||
"MessageInputCheckError":"El archivo o la carpeta de entrada no existe.",
|
||||
"MessageOutputExtentionCheckError":"Debes elegir la extensión de salida.",
|
||||
"MessageOutputQualityCheckError":"La calidad de salida está fuera del rango admitido.",
|
||||
"MessageOutputDepthCheckError":"La profundidad de bits de salida no es válida.",
|
||||
"MessageCudaNotFindError":"La GPU no puede convertir el archivo de entrada.\r\nEs posible que el controlador CUDA no esté instalado, instálalo.",
|
||||
"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":"Conversión exitosa.",
|
||||
"MessageErrorHappen":"Ocurrió un error.",
|
||||
"MessageCreateOutDirError":"No se pudo crear la carpeta de salida\r\n[%s].",
|
||||
"MessageCancelError":"Se canceló la conversión.",
|
||||
"MessageInvalidParameterError":"El parámetro no es válido.",
|
||||
"MessageFailedOpenModelFileError":"No se pudo abrir el archivo de modelo.",
|
||||
"MessageFailedParseModelFileError":"No se pudo analizar el archivo de modelo.",
|
||||
"MessageFailedConstructModelError":"No se pudo construir el modelo.",
|
||||
"MessageFailedOpenInputFileError":"No se pudo abrir el archivo de entrada %s.",
|
||||
"MessageFailedOpenOutputFileError":"No se pudo escribir el archivo de salida %s.",
|
||||
"MessageFailedProcessCaffeError":"No se pudo procesar la interpolación.",
|
||||
"MessageTitleResult":"Resultado",
|
||||
"MessagecuDNNOK":"cuDNN puede ser utilizado",
|
||||
"MessagecuDNNNotFindError":"cuDNN no se puede utilizar\r\n[%s]no encontrado",
|
||||
"MessagecuDNNOldVersionError":"cuDNN no se puede utilizar\r\n[%s]es una versión antigua. Por favor utiliza v2",
|
||||
"MessagecuDNNCannotCreateError":"cuDNN no se puede utilizar\r\nLa inicialización de cuDNN falló",
|
||||
"MessagecuDNNDefautlError":"cuDNN no se puede utilizar",
|
||||
"MessageExtStr":"Extensiones de archivos de entrada(%s)",
|
||||
"MessageAllFileFolder":"Todos los archivos y carpetas(*.*)",
|
||||
"MessageTitleInputDialog":"Por favor selecciona el archivo o carpeta de entrada",
|
||||
"MessageTimeLeftUnknown":"Tiempo agotado: Desconocido",
|
||||
"MessageTimeLeft":"Tiempo agotado",
|
||||
"MessageNoOverwrite":"Ya existe un archivo en la ruta de destino: %s",
|
||||
"MessageCudaOldDeviceError":"Tu dispositivo CUDA es muy antiguo.\r\nPor favor utiliza un dispositivo con Compute Capability 2.0 o superior",
|
||||
"OK":"OK",
|
||||
"MessagecuDNNOK":"Puedes usar cuDNN.",
|
||||
"MessagecuDNNNotFindError":"No puedes usar cuDNN porque no se encontró [%s].",
|
||||
"MessagecuDNNOldVersionError":"No puedes usar cuDNN porque la versión de [%s] es muy antigua.\r\nUsa la versión 2.",
|
||||
"MessagecuDNNCannotCreateError":"No puedes usar cuDNN porque no se pudo inicializar.",
|
||||
"MessagecuDNNDefautlError":"No puedes usar cuDNN.",
|
||||
"MessageExtStr":"Extensiones de archivos de entrada (%s)",
|
||||
"MessageAllFileFolder":"Todos los archivos (*.*)",
|
||||
"MessageTitleInputDialog":"Elige un archivo o una carpeta de entrada.",
|
||||
"MessageTimeLeftUnknown":"Tiempo restante: Desconocido",
|
||||
"MessageTimeLeft":"Tiempo restante",
|
||||
"MessageNoOverwrite":"El archivo %s ya existe en la ruta de destino.",
|
||||
"MessageCudaOldDeviceError":"El dispositivo CUDA es muy antiguo.\r\nUsa un dispositivo compatible con Compute Capability 2.0 o posterior.",
|
||||
"OK":"Aceptar",
|
||||
"Cancel":"Cancelar",
|
||||
"IDC_STATIC_USE_GPU_NO":"No utilizar GPU",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"Ilustración (Modelo UpRGB)",
|
||||
"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."
|
||||
"IDC_STATIC_USE_GPU_NO":"Usar la GPU n.º",
|
||||
"IDC_RADIO_MODEL_UPCONV_RGB":"Ilustración en 2D (modelo UpRGB)",
|
||||
"IDC_RADIO_MODEL_UPCONV_PHOTO":"Fotografía (modelo UpPhoto)",
|
||||
"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."
|
||||
}
|
||||
|
@ -80,5 +80,8 @@
|
||||
"MessageAllFileFolder":"Bütün dosyalar ve klasörler(*.*)",
|
||||
"MessageTitleInputDialog":"Lütfen girdi dosyası veya klasörü seçin",
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
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
|
2
caffe
2
caffe
@ -1 +1 @@
|
||||
Subproject commit 98f9aeafa0760d521b4fe605aecc6e700a05949f
|
||||
Subproject commit 9d5aa36c65a0082768f10c1d474c56d8a7cc9934
|
@ -21,7 +21,7 @@ set BUILD_PYTHON_LAYER=0
|
||||
set RUN_TESTS=0
|
||||
set CMAKE_INSTALL_PREFIX=../../lib
|
||||
set RUN_INSTALL=1
|
||||
set CUDA_ARCH_BIN=30 35 50 52 53 60 61 62 70 72
|
||||
set CUDA_ARCH_PTX=72
|
||||
set CUDA_ARCH_BIN=35 50 52 53 60 61 62 70 75 80
|
||||
set CUDA_ARCH_PTX=80
|
||||
|
||||
scripts\build_win.cmd
|
@ -190,14 +190,16 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
||||
const auto name = d["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_only = d.HasMember("has_noise_only") && d["has_noise_only"].GetBool() ? true : false;
|
||||
const int channels = d["channels"].GetInt();
|
||||
const int recommended_crop_size = d.HasMember("recommended_crop_size") ? d["recommended_crop_size"].GetInt() : -1;
|
||||
const int force_divisible_crop_size = d.HasMember("force_divisible_crop_size") ? d["force_divisible_crop_size"].GetInt() : 1;
|
||||
|
||||
info.name = name;
|
||||
info.arch_name = arch_name;
|
||||
info.has_noise_scale = has_noise_scale;
|
||||
info.has_noise_only = has_noise_only;
|
||||
info.channels = channels;
|
||||
info.recommended_crop_size = recommended_crop_size;
|
||||
info.force_divisible_crop_size = force_divisible_crop_size;
|
||||
|
||||
if (d.HasMember("offset"))
|
||||
{
|
||||
@ -217,6 +219,14 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
||||
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"))
|
||||
{
|
||||
const int offset = d["offset_noise"].GetInt();
|
||||
@ -229,6 +239,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
||||
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"))
|
||||
{
|
||||
const int offset = d["offset_scale"].GetInt();
|
||||
@ -241,6 +257,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
||||
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"))
|
||||
{
|
||||
const int offset = d["offset_noise_scale"].GetInt();
|
||||
@ -252,6 +274,12 @@ Waifu2x::eWaifu2xError cNet::GetInfo(const boost::filesystem::path & info_path,
|
||||
const int scale_factor = d["scale_factor_noise_scale"].GetInt();
|
||||
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 (...)
|
||||
{
|
||||
@ -390,6 +418,20 @@ Waifu2x::eWaifu2xError cNet::SetParameter(caffe::NetParameter ¶m, const std:
|
||||
else
|
||||
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;
|
||||
@ -449,9 +491,6 @@ Waifu2x::eWaifu2xError cNet::LoadParameterFromJson(const boost::filesystem::path
|
||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||
}
|
||||
|
||||
if (d.Size() != 7)
|
||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||
|
||||
int inputPlane = 0;
|
||||
int outputPlane = 0;
|
||||
try
|
||||
@ -470,9 +509,6 @@ Waifu2x::eWaifu2xError cNet::LoadParameterFromJson(const boost::filesystem::path
|
||||
if (inputPlane != outputPlane)
|
||||
return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||
|
||||
//if (param.layer_size() < 17)
|
||||
// return Waifu2x::eWaifu2xError_FailedParseModelFile;
|
||||
|
||||
std::vector<boost::shared_ptr<caffe::Layer<float>>> list;
|
||||
auto &v = mNet->layers();
|
||||
for (auto &l : v)
|
||||
|
@ -744,10 +744,6 @@ void stImage::DeconvertFromNetFormat(const int input_plane)
|
||||
|
||||
void stImage::ShrinkImage(const Factor scale)
|
||||
{
|
||||
// TODO: scale = 1.0 でも悪影響を及ぼさないか調べる
|
||||
|
||||
const int scaleBase = 2; // TODO: モデルの拡大率によって可変できるようにする
|
||||
|
||||
const auto Width = scale.MultiNumerator(mOrgSize.width);
|
||||
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)
|
||||
{
|
||||
// TODO: scale = 1.0 でも悪影響を及ぼさないか調べる
|
||||
|
||||
const cv::Size_<int> ns(width, 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;
|
||||
if (scale_width < 0.5 || scale_height < 0.5)
|
||||
argo = cv::INTER_AREA;
|
||||
|
||||
cv::resize(mEndImage, mEndImage, ns, 0.0, 0.0, argo);
|
||||
}
|
||||
|
@ -431,7 +431,7 @@ Waifu2x::eWaifu2xCudaError Waifu2x::can_use_CUDA()
|
||||
{
|
||||
cudaDeviceProp prop;
|
||||
cudaGetDeviceProperties(&prop, 0);
|
||||
if (prop.major >= 2)
|
||||
if (prop.major >= 3 && prop.minor >= 5 || prop.major >= 4)
|
||||
CudaFlag = eWaifu2xCudaError_OK;
|
||||
else
|
||||
CudaFlag = eWaifu2xCudaError_OldDevice;
|
||||
@ -462,16 +462,23 @@ Waifu2x::eWaifu2xcuDNNError Waifu2x::can_use_cuDNN()
|
||||
HMODULE hModule = LoadLibrary(TEXT(CUDNN_DLL_NAME));
|
||||
if (hModule != NULL)
|
||||
{
|
||||
typedef cudnnStatus_t(__stdcall * cudnnCreateType)(cudnnHandle_t *);
|
||||
typedef cudnnStatus_t(__stdcall * cudnnDestroyType)(cudnnHandle_t);
|
||||
typedef uint64_t(__stdcall * cudnnGetVersionType)();
|
||||
typedef cudnnStatus_t(CUDNNWINAPI* cudnnCreateType)(cudnnHandle_t *);
|
||||
typedef cudnnStatus_t(CUDNNWINAPI* cudnnDestroyType)(cudnnHandle_t);
|
||||
typedef size_t(CUDNNWINAPI* cudnnGetVersionType)();
|
||||
typedef size_t(CUDNNWINAPI* cudnnGetCudartVersionType)();
|
||||
|
||||
cudnnCreateType cudnnCreateFunc = (cudnnCreateType)GetProcAddress(hModule, "cudnnCreate");
|
||||
cudnnDestroyType cudnnDestroyFunc = (cudnnDestroyType)GetProcAddress(hModule, "cudnnDestroy");
|
||||
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;
|
||||
if (cudnnCreateFunc(&h) == CUDNN_STATUS_SUCCESS)
|
||||
@ -484,6 +491,12 @@ Waifu2x::eWaifu2xcuDNNError Waifu2x::can_use_cuDNN()
|
||||
else
|
||||
cuDNNFlag = eWaifu2xcuDNNError_CannotCreate;
|
||||
}
|
||||
else
|
||||
cuDNNFlag = eWaifu2xcuDNNError_OldCudaVersion;
|
||||
}
|
||||
else
|
||||
cuDNNFlag = eWaifu2xcuDNNError_CannotCreate;
|
||||
}
|
||||
else
|
||||
cuDNNFlag = eWaifu2xcuDNNError_OldVersion;
|
||||
}
|
||||
@ -655,9 +668,12 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
||||
if (ret != Waifu2x::eWaifu2xError_OK)
|
||||
return ret;
|
||||
|
||||
mHasNoiseScale = info.has_noise_scale;
|
||||
mHasNoiseScaleOnly = info.has_noise_scale;
|
||||
mInputPlane = info.channels;
|
||||
|
||||
if (mode == eWaifu2xModelTypeNoise && info.has_noise_only) // ノイズ除去だけかつノイズ除去モデルが存在するのであればノイズ除去スケールモデルは使わないようにする
|
||||
mHasNoiseScaleOnly = false;
|
||||
|
||||
if (mode == eWaifu2xModelTypeNoise || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
||||
{
|
||||
std::string base_name;
|
||||
@ -665,7 +681,7 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
||||
mNoiseNet.reset(new cNet);
|
||||
|
||||
eWaifu2xModelType Mode = mode;
|
||||
if (info.has_noise_scale) // ノイズ除去と拡大を同時に行う
|
||||
if (mHasNoiseScaleOnly) // ノイズ除去と拡大を同時に行う
|
||||
{
|
||||
// ノイズ除去拡大ネットの構築はeWaifu2xModelTypeNoiseScaleを指定する必要がある
|
||||
Mode = eWaifu2xModelTypeNoiseScale;
|
||||
@ -687,8 +703,8 @@ Waifu2x::eWaifu2xError Waifu2x::Init(const eWaifu2xModelType mode, const int noi
|
||||
mMaxNetOffset = mNoiseNet->GetNetOffset();
|
||||
}
|
||||
|
||||
// noise_scaleを持っている場合はαチャンネルの拡大のためにmScaleNetも構築する必要がある
|
||||
if (info.has_noise_scale || mode == eWaifu2xModelTypeScale || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
||||
// 拡大が必要な場合はαチャンネルの拡大のためにmScaleNetも構築する必要がある
|
||||
if (mode == eWaifu2xModelTypeScale || mode == eWaifu2xModelTypeNoiseScale || mode == eWaifu2xModelTypeAutoScale)
|
||||
{
|
||||
const std::string base_name = "scale2.0x_model";
|
||||
|
||||
@ -905,7 +921,7 @@ Waifu2x::eWaifu2xError Waifu2x::ReconstructImage(const Factor factor, const int
|
||||
|
||||
if (isReconstructNoise)
|
||||
{
|
||||
if (!mHasNoiseScale) // ノイズ除去だけ
|
||||
if (!mHasNoiseScaleOnly) // ノイズ除去だけ
|
||||
{
|
||||
cv::Mat im;
|
||||
cv::Size_<int> size;
|
||||
|
@ -10,8 +10,9 @@
|
||||
#include <boost/optional.hpp>
|
||||
#include <opencv2/core.hpp>
|
||||
|
||||
#define CUDNN_DLL_NAME "cudnn64_7.dll"
|
||||
#define CUDNN_REQUIRE_VERION_TEXT "v7"
|
||||
#define CUDNN_DLL_NAME "cudnn64_8.dll"
|
||||
#define CUDNN_REQUIRE_VERION_TEXT "v8.0.3"
|
||||
#define CUDNN_REQUIRE_VERION 8003
|
||||
|
||||
|
||||
namespace caffe
|
||||
@ -65,13 +66,17 @@ public:
|
||||
{
|
||||
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 recommended_crop_size;
|
||||
int force_divisible_crop_size;
|
||||
|
||||
stParam noise;
|
||||
stParam scale;
|
||||
@ -117,6 +122,7 @@ public:
|
||||
eWaifu2xcuDNNError_NotFind,
|
||||
eWaifu2xcuDNNError_OldVersion,
|
||||
eWaifu2xcuDNNError_CannotCreate,
|
||||
eWaifu2xcuDNNError_OldCudaVersion,
|
||||
};
|
||||
|
||||
typedef std::function<bool()> waifu2xCancelFunc;
|
||||
@ -138,7 +144,7 @@ private:
|
||||
|
||||
int mInputPlane; // ネットへの入力チャンネル数
|
||||
int mMaxNetOffset; // ネットに入力するとどれくらい削れるか
|
||||
bool mHasNoiseScale;
|
||||
bool mHasNoiseScaleOnly;
|
||||
|
||||
float *mOutputBlock;
|
||||
size_t mOutputBlockSize;
|
||||
|
@ -42,15 +42,15 @@
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
<TargetName>$(ProjectName)d</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -65,7 +65,7 @@
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -85,7 +85,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
@ -373,40 +373,13 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
||||
|
||||
{
|
||||
const int cur = SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_GETCURSEL, 0, 0);
|
||||
switch (cur)
|
||||
for (int i = 0; i < eModelTypeEnd; i++)
|
||||
{
|
||||
case 0:
|
||||
model_dir = TEXT("models/upconv_7_anime_style_art_rgb");
|
||||
modelType = eModelTypeUpConvRGB;
|
||||
break;
|
||||
|
||||
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;
|
||||
|
||||
case 5:
|
||||
model_dir = TEXT("models/upresnet10");
|
||||
modelType = eModelTypeUpResNet10;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
if (cur == i)
|
||||
{
|
||||
model_dir = ModelPathList[i];
|
||||
modelType = (eModelType)i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -480,6 +453,10 @@ bool DialogEvent::SyncMember(const bool NotSyncCropSize, const bool silent)
|
||||
GetWindowText(GetDlgItem(dh, IDC_COMBO_CROP_SIZE), buf, _countof(buf));
|
||||
buf[_countof(buf) - 1] = TEXT('\0');
|
||||
|
||||
Waifu2x::stInfo info;
|
||||
if (!Waifu2x::GetInfo(model_dir, info))
|
||||
info.force_divisible_crop_size = 1;
|
||||
|
||||
TCHAR *ptr = nullptr;
|
||||
crop_size = _tcstol(buf, &ptr, 10);
|
||||
if (!ptr || *ptr != '\0' || crop_size <= 0)
|
||||
@ -489,6 +466,14 @@ 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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
@ -548,12 +533,32 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
||||
|
||||
bool isRecommendedCropSize = false;
|
||||
Waifu2x::stInfo info;
|
||||
if (Waifu2x::GetInfo(model_dir, info) && info.recommended_crop_size > 0)
|
||||
if (Waifu2x::GetInfo(model_dir, info))
|
||||
{
|
||||
tstring str(to_tstring(info.recommended_crop_size));
|
||||
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("-----------------------"));
|
||||
@ -564,6 +569,9 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
||||
{
|
||||
const int n = list[i];
|
||||
|
||||
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());
|
||||
|
||||
@ -582,6 +590,9 @@ void DialogEvent::SetCropSizeList(const boost::filesystem::path & input_path)
|
||||
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());
|
||||
|
||||
@ -1629,12 +1640,10 @@ void DialogEvent::SetWindowTextLang()
|
||||
SendMessage(hwndCombo, CB_DELETESTRING, 0, 0);
|
||||
}
|
||||
|
||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_UPCONV_RGB").c_str());
|
||||
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(L"IDC_RADIO_MODEL_PHOTO").c_str());
|
||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_Y").c_str());
|
||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(L"IDC_RADIO_MODEL_UpResNet10").c_str());
|
||||
for (int i = 0; i < eModelTypeEnd; i++)
|
||||
{
|
||||
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)langStringList.GetString(ModelTitleLangKeyList[i].c_str()).c_str());
|
||||
}
|
||||
|
||||
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, cur, 0);
|
||||
}
|
||||
@ -1831,31 +1840,6 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
SendMessage(hbatch, CB_SETCURSEL, 0, 0);
|
||||
}
|
||||
|
||||
{
|
||||
HWND hcrop = GetDlgItem(dh, IDC_COMBO_CROP_SIZE);
|
||||
|
||||
SendMessage(hcrop, CB_ADDSTRING, 0, (LPARAM)TEXT("-----------------------"));
|
||||
|
||||
// CropSizeList‚Ì’l‚ð’ljÁ‚µ‚Ä‚¢‚
|
||||
int mindiff = INT_MAX;
|
||||
int defaultListIndex = -1;
|
||||
for (const auto n : CropSizeList)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
tstring tScaleRatio;
|
||||
tstring tScaleWidth;
|
||||
tstring tScaleHeight;
|
||||
@ -1905,7 +1889,7 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
tmp[_countof(tmp) - 1] = TEXT('\0');
|
||||
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;
|
||||
|
||||
@ -2086,23 +2070,51 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
if (modelType == eModelTypeUpConvRGB)
|
||||
index = 0;
|
||||
else if (modelType == eModelTypeUpConvPhoto)
|
||||
index = 1;
|
||||
else if (modelType == eModelTypeRGB)
|
||||
index = 2;
|
||||
else if (modelType == eModelTypePhoto)
|
||||
index = 3;
|
||||
else if (modelType == eModelTypeY)
|
||||
index = 4;
|
||||
else if (modelType == eModelTypeUpResNet10)
|
||||
index = 5;
|
||||
else
|
||||
index = 0;
|
||||
for (int i = 0; i < eModelTypeEnd; i++)
|
||||
{
|
||||
if (modelType == i)
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
SendMessage(GetDlgItem(hWnd, IDC_CHECK_TTA), BM_SETCHECK, BST_CHECKED, 0);
|
||||
else
|
||||
@ -2257,15 +2269,13 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
false, 0, &cmdNoOverwriteConstraint, cmd);
|
||||
|
||||
std::vector<std::wstring> cmdModelTypeConstraintV;
|
||||
cmdModelTypeConstraintV.push_back(L"upconv_7_anime_style_art_rgb");
|
||||
cmdModelTypeConstraintV.push_back(L"upconv_7_photo");
|
||||
cmdModelTypeConstraintV.push_back(L"anime_style_art_rgb");
|
||||
cmdModelTypeConstraintV.push_back(L"photo");
|
||||
cmdModelTypeConstraintV.push_back(L"anime_style_art_y");
|
||||
cmdModelTypeConstraintV.push_back(L"upresnet10");
|
||||
for (int i = 0; i < eModelTypeEnd; i++)
|
||||
{
|
||||
cmdModelTypeConstraintV.push_back(ModelTypeList[i]);
|
||||
}
|
||||
TCLAPW::ValuesConstraint<std::wstring> cmdModelTypeConstraint(cmdModelTypeConstraintV);
|
||||
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
|
||||
|
||||
@ -2521,20 +2531,14 @@ void DialogEvent::Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData)
|
||||
if (cmdModelType.isSet())
|
||||
{
|
||||
int index = 0;
|
||||
if (cmdModelType.getValue() == L"upconv_7_anime_style_art_rgb")
|
||||
index = 0;
|
||||
else if (cmdModelType.getValue() == L"upconv_7_photo")
|
||||
index = 1;
|
||||
else if (cmdModelType.getValue() == L"anime_style_art_rgb")
|
||||
index = 2;
|
||||
else if (cmdModelType.getValue() == L"photo")
|
||||
index = 3;
|
||||
else if (cmdModelType.getValue() == L"anime_style_art_y")
|
||||
index = 4;
|
||||
else if (cmdModelType.getValue() == L"upresnet10")
|
||||
index = 4;
|
||||
else
|
||||
index = 0;
|
||||
for (int i = 0; i < eModelTypeEnd; i++)
|
||||
{
|
||||
if (cmdModelType.getValue() == ModelTypeList[i])
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SendMessage(GetDlgItem(dh, IDC_COMBO_MODEL), CB_SETCURSEL, index, 0);
|
||||
|
||||
@ -2733,6 +2737,9 @@ void DialogEvent::CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpD
|
||||
case Waifu2x::eWaifu2xcuDNNError_CannotCreate:
|
||||
MessageBox(dh, langStringList.GetString(L"MessagecuDNNCannotCreateError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
||||
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:
|
||||
MessageBox(dh, langStringList.GetString(L"MessagecuDNNDefautlError").c_str(), langStringList.GetString(L"MessageTitleResult").c_str(), MB_OK | MB_ICONERROR);
|
||||
}
|
||||
|
@ -22,6 +22,53 @@
|
||||
#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
|
||||
{
|
||||
@ -85,17 +132,6 @@ private:
|
||||
|
||||
eScaleType scaleType;
|
||||
|
||||
enum eModelType
|
||||
{
|
||||
eModelTypeRGB,
|
||||
eModelTypePhoto,
|
||||
eModelTypeY,
|
||||
eModelTypeUpConvRGB,
|
||||
eModelTypeUpConvPhoto,
|
||||
eModelTypeUpResNet10,
|
||||
eModelTypeEnd,
|
||||
};
|
||||
|
||||
eModelType modelType;
|
||||
|
||||
std::wstring LangName;
|
||||
|
@ -42,15 +42,15 @@
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
<TargetName>$(ProjectName)d</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -65,7 +65,7 @@
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<Manifest>
|
||||
@ -88,7 +88,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<Manifest>
|
||||
|
@ -155,7 +155,7 @@ int main(int argc, char** argv)
|
||||
|
||||
ValueArg<tstring> cmdModelPath(TEXT(""), TEXT("model_dir"),
|
||||
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;
|
||||
cmdProcessConstraintV.push_back(TEXT("cpu"));
|
||||
|
@ -42,15 +42,15 @@
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
<TargetName>$(ProjectName)d</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>$(CUDA_PATH_V10_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>$(CUDA_PATH_V10_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>
|
||||
<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>$(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>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -65,7 +65,7 @@
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -85,7 +85,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<DelayLoadDLLs>cudnn64_7.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<DelayLoadDLLs>cudnn64_8.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<AdditionalDependencies>Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
Loading…
x
Reference in New Issue
Block a user