Skip to content

Commit 51dab93

Browse files
authored
Merge pull request #40 from koba-jon/develop/v2.9.2
Develop/v2.9.2
2 parents 2152424 + 312862c commit 51dab93

File tree

10 files changed

+123
-116
lines changed

10 files changed

+123
-116
lines changed

Anomaly_Detection/PaDiM/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ Original paper: T. Defard, A. Setkov, A. Loesch, and R. Audigier. PaDiM: A Patch
77
### 0. Download pre-trained model
88
Please download ResNet pre-trained model with ImageNet.
99
~~~
10-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/resnet18.pth
11-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/wide_resnet50_2.pth
10+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/resnet18.pth
11+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/wide_resnet50_2.pth
1212
~~~
1313

1414
### 1. Build

Anomaly_Detection/PaDiM/src/test.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ std::tuple<torch::Tensor, torch::Tensor> PaDiMScore(torch::Tensor feature, torch
272272
torch::Tensor gaussian_filter_2d(torch::Tensor x, double sigma){
273273

274274
int radius, k;
275-
torch::Tensor t, g1, g2, w, out;
275+
torch::Tensor t, g1, g2, w, x_pad, out;
276276

277277
radius = std::ceil(3.0 * sigma);
278278
k = 2 * radius + 1;
@@ -285,7 +285,8 @@ torch::Tensor gaussian_filter_2d(torch::Tensor x, double sigma){
285285
g2 = g2 / g2.sum();
286286

287287
w = g2.view({1, 1, k, k});
288-
out = F::conv2d(x, w, F::Conv2dFuncOptions().padding(radius));
288+
x_pad = F::pad(x, F::PadFuncOptions({radius, radius, radius, radius}).mode(torch::kReflect));
289+
out = F::conv2d(x_pad, w, F::Conv2dFuncOptions().padding(0));
289290

290291
return out;
291292

Anomaly_Detection/PatchCore/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ Original paper: K. Roth, L. Pemula, J. Zepeda, B. Schölkopf, T. Brox, and P. Ge
77
### 0. Download pre-trained model
88
Please download ResNet pre-trained model with ImageNet.
99
~~~
10-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/resnet18.pth
11-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/wide_resnet50_2.pth
10+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/resnet18.pth
11+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/wide_resnet50_2.pth
1212
~~~
1313

1414
### 1. Build

Anomaly_Detection/PatchCore/src/test.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ std::tuple<torch::Tensor, torch::Tensor> PatchCoreScore(torch::Tensor feature, t
271271
torch::Tensor gaussian_filter_2d(torch::Tensor x, double sigma){
272272

273273
int radius, k;
274-
torch::Tensor t, g1, g2, w, out;
274+
torch::Tensor t, g1, g2, w, x_pad, out;
275275

276276
radius = std::ceil(3.0 * sigma);
277277
k = 2 * radius + 1;
@@ -284,7 +284,8 @@ torch::Tensor gaussian_filter_2d(torch::Tensor x, double sigma){
284284
g2 = g2 / g2.sum();
285285

286286
w = g2.view({1, 1, k, k});
287-
out = F::conv2d(x, w, F::Conv2dFuncOptions().padding(radius));
287+
x_pad = F::pad(x, F::PadFuncOptions({radius, radius, radius, radius}).mode(torch::kReflect));
288+
out = F::conv2d(x_pad, w, F::Conv2dFuncOptions().padding(0));
288289

289290
return out;
290291

Multiclass_Classification/EfficientNet/src/networks.cpp

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <algorithm>
44
#include <typeinfo>
55
#include <cstdlib>
6+
#include <cmath>
67
// For External Library
78
#include <torch/torch.h>
89
// For Original Header
@@ -30,8 +31,8 @@ torch::Tensor StochasticDepthImpl::forward(torch::Tensor x){
3031
float p_bar;
3132
torch::Tensor mask, out;
3233

33-
if (!this->is_training() || p < eps) return x;
34-
else if (p > 1.0 - eps) return torch::zeros_like(x);
34+
if (!this->is_training() || this->p < eps) return x;
35+
else if (this->p > 1.0 - eps) return torch::zeros_like(x);
3536

3637
p_bar = 1.0 - this->p;
3738
mask = torch::bernoulli(torch::full({x.size(0), 1, 1, 1}, p_bar, x.options()));
@@ -54,10 +55,10 @@ void StochasticDepthImpl::pretty_print(std::ostream& stream) const{
5455
// ----------------------------------------------------------------------
5556
// struct{Conv2dNormActivationImpl}(nn::Module) -> constructor
5657
// ----------------------------------------------------------------------
57-
Conv2dNormActivationImpl::Conv2dNormActivationImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t padding, const size_t groups, const bool SiLU){
58+
Conv2dNormActivationImpl::Conv2dNormActivationImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t padding, const size_t groups, const float eps, const float momentum, const bool SiLU){
5859
this->model = nn::Sequential(
5960
nn::Conv2d(nn::Conv2dOptions(/*in_channels=*/in_nc, /*out_channels=*/out_nc, /*kernel_size=*/kernel_size).stride(stride).padding(padding).groups(groups).bias(false)),
60-
nn::BatchNorm2d(out_nc)
61+
nn::BatchNorm2d(nn::BatchNormOptions(out_nc).eps(eps).momentum(momentum))
6162
);
6263
if (SiLU) this->model->push_back(nn::SiLU());
6364
register_module("Conv2dNormActivation", this->model);
@@ -113,16 +114,16 @@ torch::Tensor SqueezeExcitationImpl::forward(torch::Tensor x){
113114
// ----------------------------------------------------------------------
114115
// struct{MBConvImpl}(nn::Module) -> constructor
115116
// ----------------------------------------------------------------------
116-
MBConvImpl::MBConvImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t exp, const float dropconnect){
117+
MBConvImpl::MBConvImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t exp, const float eps, const float momentum, const float dropconnect){
117118

118119
constexpr size_t reduce = 4;
119120
size_t mid = in_nc * exp;
120121
this->residual = ((stride == 1) && (in_nc == out_nc));
121122

122-
if (exp != 1) this->block->push_back(Conv2dNormActivation(in_nc, mid, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*SiLU=*/true));
123-
this->block->push_back(Conv2dNormActivation(mid, mid, /*kernel_size=*/kernel_size, /*stride=*/stride, /*padding=*/kernel_size / 2, /*groups=*/mid, /*SiLU=*/true));
123+
if (exp != 1) this->block->push_back(Conv2dNormActivation(in_nc, mid, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*eps=*/eps, /*momentum=*/momentum, /*SiLU=*/true));
124+
this->block->push_back(Conv2dNormActivation(mid, mid, /*kernel_size=*/kernel_size, /*stride=*/stride, /*padding=*/kernel_size / 2, /*groups=*/mid, /*eps=*/eps, /*momentum=*/momentum, /*SiLU=*/true));
124125
this->block->push_back(SqueezeExcitation(mid, std::max(1, int(in_nc / reduce))));
125-
this->block->push_back(Conv2dNormActivation(mid, out_nc, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*SiLU=*/false));
126+
this->block->push_back(Conv2dNormActivation(mid, out_nc, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*eps=*/eps, /*momentum=*/momentum, /*SiLU=*/false));
126127
register_module("block", this->block);
127128

128129
this->sd = StochasticDepth(dropconnect);
@@ -170,7 +171,7 @@ size_t MC_EfficientNetImpl::round_filters(size_t c, double width_mul){
170171
// struct{MC_EfficientNetImpl}(nn::Module) -> function{round_repeats}
171172
// ----------------------------------------------------------------------
172173
size_t MC_EfficientNetImpl::round_repeats(size_t r, double depth_mul){
173-
return std::max(1, int(std::round(r * depth_mul)));
174+
return std::max(1, int(std::ceil(r * depth_mul)));
174175
}
175176

176177

@@ -186,16 +187,16 @@ MC_EfficientNetImpl::MC_EfficientNetImpl(po::variables_map &vm){
186187

187188
// (0.a) Setting for network's config
188189
std::string network = vm["network"].as<std::string>();
189-
if (network == "B0") this->cfg = {1.0, 1.0, 224, 0.2};
190-
else if (network == "B1") this->cfg = {1.0, 1.1, 240, 0.2};
191-
else if (network == "B2") this->cfg = {1.1, 1.2, 260, 0.3};
192-
else if (network == "B3") this->cfg = {1.2, 1.4, 300, 0.3};
193-
else if (network == "B4") this->cfg = {1.4, 1.8, 380, 0.4};
194-
else if (network == "B5") this->cfg = {1.6, 2.2, 456, 0.4};
195-
else if (network == "B6") this->cfg = {1.8, 2.6, 528, 0.5};
196-
else if (network == "B7") this->cfg = {2.0, 3.1, 600, 0.5};
197-
else if (network == "B8") this->cfg = {2.2, 3.6, 672, 0.5};
198-
else if (network == "L2") this->cfg = {4.3, 5.3, 800, 0.5};
190+
if (network == "B0") this->cfg = {1.0, 1.0, 224, 0.2, 1e-5, 0.1, 0.2};
191+
else if (network == "B1") this->cfg = {1.0, 1.1, 240, 0.2, 1e-5, 0.1, 0.2};
192+
else if (network == "B2") this->cfg = {1.1, 1.2, 260, 0.3, 1e-5, 0.1, 0.2};
193+
else if (network == "B3") this->cfg = {1.2, 1.4, 300, 0.3, 1e-5, 0.1, 0.2};
194+
else if (network == "B4") this->cfg = {1.4, 1.8, 380, 0.4, 1e-5, 0.1, 0.2};
195+
else if (network == "B5") this->cfg = {1.6, 2.2, 456, 0.4, 0.001, 0.01, 0.2};
196+
else if (network == "B6") this->cfg = {1.8, 2.6, 528, 0.5, 0.001, 0.01, 0.2};
197+
else if (network == "B7") this->cfg = {2.0, 3.1, 600, 0.5, 0.001, 0.01, 0.2};
198+
else if (network == "B8") this->cfg = {2.2, 3.6, 672, 0.5, 0.001, 0.01, 0.2};
199+
else if (network == "L2") this->cfg = {4.3, 5.3, 800, 0.5, 0.001, 0.01, 0.2};
199200
else{
200201
std::cerr << "Error : The type of network is " << network << '.' << std::endl;
201202
std::cerr << "Error : Please choose B0, B1, B2, B3, B4, B5, B6, B7, B8 or L2." << std::endl;
@@ -209,7 +210,7 @@ MC_EfficientNetImpl::MC_EfficientNetImpl(po::variables_map &vm){
209210

210211
// (1) Stem layer
211212
stem_nc = this->round_filters(stem_feature, this->cfg.width_mul);
212-
this->features->push_back(Conv2dNormActivation(vm["nc"].as<size_t>(), stem_nc, /*kernel_size=*/3, /*stride=*/2, /*padding=*/1, /*groups=*/1, /*SiLU=*/true));
213+
this->features->push_back(Conv2dNormActivation(vm["nc"].as<size_t>(), stem_nc, /*kernel_size=*/3, /*stride=*/2, /*padding=*/1, /*groups=*/1, /*eps=*/this->cfg.eps, /*momentum=*/this->cfg.momentum, /*SiLU=*/true));
213214

214215
// (2.a) Bone layer
215216
total_blocks = 0;
@@ -225,16 +226,16 @@ MC_EfficientNetImpl::MC_EfficientNetImpl(po::variables_map &vm){
225226
out_nc = this->round_filters(bcfg[i].c, this->cfg.width_mul);
226227
for (size_t j = 0; j < repeats; j++){
227228
stride = (j == 0) ? bcfg[i].s : 1;
228-
dropconnect = this->cfg.dropout * (double)block_idx / (double)std::max(1, int(total_blocks));
229-
this->features->push_back(MBConvImpl(in_nc, out_nc, bcfg[i].k, stride, bcfg[i].exp, dropconnect));
229+
dropconnect = this->cfg.stochastic_depth_prob * (double)block_idx / (double)std::max(1, int(total_blocks));
230+
this->features->push_back(MBConvImpl(in_nc, out_nc, bcfg[i].k, stride, bcfg[i].exp, this->cfg.eps, this->cfg.momentum, dropconnect));
230231
in_nc = out_nc;
231232
block_idx++;
232233
}
233234
}
234235

235236
// (3) Head layer
236237
head_nc = this->round_filters(head_feature, this->cfg.width_mul);
237-
this->features->push_back(Conv2dNormActivation(in_nc, head_nc, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*SiLU=*/true));
238+
this->features->push_back(Conv2dNormActivation(in_nc, head_nc, /*kernel_size=*/1, /*stride=*/1, /*padding=*/0, /*groups=*/1, /*eps=*/this->cfg.eps, /*momentum=*/this->cfg.momentum, /*SiLU=*/true));
238239
register_module("features", this->features);
239240

240241
// (4) Global Average Pooling

Multiclass_Classification/EfficientNet/src/networks.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ struct EfficientNetConfig{
2121
double depth_mul;
2222
size_t image_size;
2323
double dropout;
24+
double eps;
25+
double momentum;
26+
double stochastic_depth_prob;
2427
};
2528

2629
// -------------------------------------------------
@@ -52,7 +55,7 @@ struct Conv2dNormActivationImpl : nn::Module{
5255
nn::Sequential model;
5356
public:
5457
Conv2dNormActivationImpl(){}
55-
Conv2dNormActivationImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t padding, const size_t groups, const bool SiLU);
58+
Conv2dNormActivationImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t padding, const size_t groups, const float eps, const float momentum, const bool SiLU);
5659
torch::Tensor forward(torch::Tensor x);
5760
};
5861
TORCH_MODULE(Conv2dNormActivation);
@@ -84,7 +87,7 @@ struct MBConvImpl : nn::Module{
8487
StochasticDepth sd;
8588
public:
8689
MBConvImpl(){}
87-
MBConvImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t exp, const float dropconnect);
90+
MBConvImpl(const size_t in_nc, const size_t out_nc, const size_t kernel_size, const size_t stride, const size_t exp, const float eps, const float momentum, const float dropconnect);
8891
torch::Tensor forward(torch::Tensor x);
8992
};
9093
TORCH_MODULE(MBConv);

README.md

Lines changed: 82 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -58,91 +58,92 @@ $ sh scripts/train.sh
5858
$ sh scripts/test.sh
5959
~~~
6060

61-
## 🔄 Updates
62-
63-
12/01,2025: Release of `v2.9.1.3` <br>
64-
12/01,2025: Implementation of `PatchCore` <br>
65-
11/29,2025: Release of `v2.9.1.2` <br>
66-
11/29,2025: Implementation of `PaDiM` <br>
67-
11/27,2025: Implementation of `WideResNet` <br>
68-
11/27,2025: Release of `v2.9.1.1` <br>
69-
11/24,2025: Implementation of `ESRGAN` <br>
70-
11/21,2025: Implementation of `SRGAN` <br>
71-
11/19,2025: Implementation of `DiT` <br>
72-
11/14,2025: Release of `v2.9.1` <br>
61+
## 🔄 Updates (MM/DD/YYYY)
62+
63+
12/06/2025: Release of `v2.9.1.4` <br>
64+
12/01/2025: Release of `v2.9.1.3` <br>
65+
12/01/2025: Implementation of `PatchCore` <br>
66+
11/29/2025: Release of `v2.9.1.2` <br>
67+
11/29/2025: Implementation of `PaDiM` <br>
68+
11/27/2025: Implementation of `WideResNet` <br>
69+
11/27/2025: Release of `v2.9.1.1` <br>
70+
11/24/2025: Implementation of `ESRGAN` <br>
71+
11/21/2025: Implementation of `SRGAN` <br>
72+
11/19/2025: Implementation of `DiT` <br>
7373

7474
<details>
7575
<summary>See more...</summary>
7676

77-
11/01,2025: Implementation of `NeRF` and `3DGS` <br>
78-
10/16,2025: Release of `v2.9.0` <br>
79-
10/16,2025: Implementation of `PixelSNAIL-Gray` and `PixelSNAIL-RGB` <br>
80-
10/14,2025: Implementation of `YOLOv8` <br>
81-
10/13,2025: Implementation of `YOLOv5` <br>
82-
10/09,2025: Implementation of `RF2d` <br>
83-
10/08,2025: Implementation of `FM2d` <br>
84-
10/08,2025: Implementation of `LDM` <br>
85-
10/04,2025: Implementation of `Glow` <br>
86-
10/01,2025: Implementation of `Real-NVP2d` <br>
87-
09/28,2025: Implementation of `Planar-Flow2d` and `Radial-Flow2d` <br>
88-
09/25,2025: Release of `v2.8.0.2` <br>
89-
09/22,2025: Implementation of `PixelCNN-Gray` and `PixelCNN-RGB` <br>
90-
09/18,2025: Implementation of `VQ-VAE-2` <br>
91-
09/16,2025: Implementation of `VQ-VAE` <br>
92-
09/14,2025: Implementation of `PNDM2d` <br>
93-
09/14,2025: Release of `v2.8.0.1` <br>
94-
09/12,2025: Implementation of `SimCLR` <br>
95-
09/11,2025: Implementation of `MAE` <br>
96-
09/10,2025: Implementation of EMA for `DDPM2d` and `DDIM2d` <br>
97-
09/08,2025: Implementation of `EfficientNet` <br>
98-
09/07,2025: Implementation of `CycleGAN` <br>
99-
09/05,2025: Implementation of `ViT` <br>
100-
09/04,2025: Release of `v2.8.0` <br>
101-
09/04,2025: Implementation of `DDIM2d` <br>
102-
09/04,2025: Implementation of `DDPM2d` <br>
103-
06/27,2023: Release of `v2.0.1` <br>
104-
06/27,2023: Create the heatmap for Anomaly Detection <br>
105-
05/07,2023: Release of `v2.0.0` <br>
106-
03/01,2023: Release of `v1.13.1` <br>
107-
09/12,2022: Release of `v1.12.1` <br>
108-
08/04,2022: Release of `v1.12.0` <br>
109-
03/18,2022: Release of `v1.11.0` <br>
110-
02/10,2022: Release of `v1.10.2` <br>
111-
02/09,2022: Implementation of `YOLOv3` <br>
112-
01/09,2022: Release of `v1.10.1` <br>
113-
01/09,2022: Fixed execution error in test on CPU package <br>
114-
11/12,2021: Release of `v1.10.0` <br>
115-
09/27,2021: Release of `v1.9.1` <br>
116-
09/27,2021: Support for using different devices between training and test <br>
117-
09/06,2021: Improved accuracy of time measurement using GPU <br>
118-
06/19,2021: Release of `v1.9.0` <br>
119-
03/29,2021: Release of `v1.8.1` <br>
120-
03/18,2021: Implementation of `Discriminator` from DCGAN <br>
121-
03/17,2021: Implementation of `AE1d` <br>
122-
03/16,2021: Release of `v1.8.0` <br>
123-
03/15,2021: Implementation of `YOLOv2` <br>
124-
02/11,2021: Implementation of `YOLOv1` <br>
125-
01/21,2021: Release of `v1.7.1` <br>
126-
10/30,2020: Release of `v1.7.0` <br>
127-
10/04,2020: Implementation of `Skip-GANomaly2d` <br>
128-
10/03,2020: Implementation of `GANomaly2d` <br>
129-
09/29,2020: Implementation of `EGBAD2d` <br>
130-
09/28,2020: Implementation of `AnoGAN2d` <br>
131-
09/27,2020: Implementation of `SegNet` <br>
132-
09/26,2020: Implementation of `DAE2d` <br>
133-
09/13,2020: Implementation of `ResNet` <br>
134-
09/07,2020: Implementation of `VGGNet` <br>
135-
09/05,2020: Implementation of `AlexNet` <br>
136-
09/02,2020: Implementation of `WAE2d GAN` and `WAE2d MMD` <br>
137-
08/30,2020: Release of `v1.6.0` <br>
138-
06/26,2020: Implementation of `DAGMM2d` <br>
139-
06/26,2020: Release of `v1.5.1` <br>
140-
06/26,2020: Implementation of `VAE2d` and `DCGAN` <br>
141-
06/01,2020: Implementation of `Pix2Pix` <br>
142-
05/29,2020: Implementation of `U-Net Classification` <br>
143-
05/26,2020: Implementation of `U-Net Regression` <br>
144-
04/24,2020: Release of `v1.5.0` <br>
145-
03/23,2020: Implementation of `AE2d` <br>
77+
11/14/2025: Release of `v2.9.1` <br>
78+
11/01/2025: Implementation of `NeRF` and `3DGS` <br>
79+
10/16/2025: Release of `v2.9.0` <br>
80+
10/16/2025: Implementation of `PixelSNAIL-Gray` and `PixelSNAIL-RGB` <br>
81+
10/14/2025: Implementation of `YOLOv8` <br>
82+
10/13/2025: Implementation of `YOLOv5` <br>
83+
10/09/2025: Implementation of `RF2d` <br>
84+
10/08/2025: Implementation of `FM2d` <br>
85+
10/08/2025: Implementation of `LDM` <br>
86+
10/04/2025: Implementation of `Glow` <br>
87+
10/01/2025: Implementation of `Real-NVP2d` <br>
88+
09/28/2025: Implementation of `Planar-Flow2d` and `Radial-Flow2d` <br>
89+
09/25/2025: Release of `v2.8.0.2` <br>
90+
09/22/2025: Implementation of `PixelCNN-Gray` and `PixelCNN-RGB` <br>
91+
09/18/2025: Implementation of `VQ-VAE-2` <br>
92+
09/16/2025: Implementation of `VQ-VAE` <br>
93+
09/14/2025: Implementation of `PNDM2d` <br>
94+
09/14/2025: Release of `v2.8.0.1` <br>
95+
09/12/2025: Implementation of `SimCLR` <br>
96+
09/11/2025: Implementation of `MAE` <br>
97+
09/10/2025: Implementation of EMA for `DDPM2d` and `DDIM2d` <br>
98+
09/08/2025: Implementation of `EfficientNet` <br>
99+
09/07/2025: Implementation of `CycleGAN` <br>
100+
09/05/2025: Implementation of `ViT` <br>
101+
09/04/2025: Release of `v2.8.0` <br>
102+
09/04/2025: Implementation of `DDIM2d` <br>
103+
09/04/2025: Implementation of `DDPM2d` <br>
104+
06/27/2023: Release of `v2.0.1` <br>
105+
06/27/2023: Create the heatmap for Anomaly Detection <br>
106+
05/07/2023: Release of `v2.0.0` <br>
107+
03/01/2023: Release of `v1.13.1` <br>
108+
09/12/2022: Release of `v1.12.1` <br>
109+
08/04/2022: Release of `v1.12.0` <br>
110+
03/18/2022: Release of `v1.11.0` <br>
111+
02/10/2022: Release of `v1.10.2` <br>
112+
02/09/2022: Implementation of `YOLOv3` <br>
113+
01/09/2022: Release of `v1.10.1` <br>
114+
01/09/2022: Fixed execution error in test on CPU package <br>
115+
11/12/2021: Release of `v1.10.0` <br>
116+
09/27/2021: Release of `v1.9.1` <br>
117+
09/27/2021: Support for using different devices between training and test <br>
118+
09/06/2021: Improved accuracy of time measurement using GPU <br>
119+
06/19/2021: Release of `v1.9.0` <br>
120+
03/29/2021: Release of `v1.8.1` <br>
121+
03/18/2021: Implementation of `Discriminator` from DCGAN <br>
122+
03/17/2021: Implementation of `AE1d` <br>
123+
03/16/2021: Release of `v1.8.0` <br>
124+
03/15/2021: Implementation of `YOLOv2` <br>
125+
02/11/2021: Implementation of `YOLOv1` <br>
126+
01/21/2021: Release of `v1.7.1` <br>
127+
10/30/2020: Release of `v1.7.0` <br>
128+
10/04/2020: Implementation of `Skip-GANomaly2d` <br>
129+
10/03/2020: Implementation of `GANomaly2d` <br>
130+
09/29/2020: Implementation of `EGBAD2d` <br>
131+
09/28/2020: Implementation of `AnoGAN2d` <br>
132+
09/27/2020: Implementation of `SegNet` <br>
133+
09/26/2020: Implementation of `DAE2d` <br>
134+
09/13/2020: Implementation of `ResNet` <br>
135+
09/07/2020: Implementation of `VGGNet` <br>
136+
09/05/2020: Implementation of `AlexNet` <br>
137+
09/02/2020: Implementation of `WAE2d GAN` and `WAE2d MMD` <br>
138+
08/30/2020: Release of `v1.6.0` <br>
139+
06/26/2020: Implementation of `DAGMM2d` <br>
140+
06/26/2020: Release of `v1.5.1` <br>
141+
06/26/2020: Implementation of `VAE2d` and `DCGAN` <br>
142+
06/01/2020: Implementation of `Pix2Pix` <br>
143+
05/29/2020: Implementation of `U-Net Classification` <br>
144+
05/26/2020: Implementation of `U-Net Regression` <br>
145+
04/24/2020: Release of `v1.5.0` <br>
146+
03/23/2020: Implementation of `AE2d` <br>
146147

147148
</details>
148149

Super_Resolution/ESRGAN/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Original paper: X. Wang, K. Yu, S. Wu, J. Gu, Y. Liu, C. Dong, Y. Qiao, and C. C
77
### 0. Download pre-trained model
88
Please download VGG19 pre-trained model with ImageNet.
99
~~~
10-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/vgg19_bn.pth
10+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/vgg19_bn.pth
1111
~~~
1212

1313
### 1. Build

Super_Resolution/SRGAN/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Original paper: C. Ledig, L. Theis, F. Huszar, J. Caballero, A. Cunningham, A. A
77
### 0. Download pre-trained model
88
Please download VGG19 pre-trained model with ImageNet.
99
~~~
10-
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/vgg19_bn.pth
10+
$ wget https://huggingface.co/koba-jon/pre-train_cpp/resolve/main/models/vgg19_bn.pth
1111
~~~
1212

1313
### 1. Build

sample1.png

321 KB
Loading

0 commit comments

Comments
 (0)