/
implemented_models.py
116 lines (99 loc) · 5.93 KB
/
implemented_models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from src.architectures import View, DenseNet, CustomMIL, get_cnn, DenseMIL, FConvDenseNet
from inferno.extensions.layers.convolutional import ConvELU2D
from inferno.extensions.layers.reshape import Flatten
import torch.nn as nn
# ### MIL ### #
# original (used to work on 28x28)
MIL_32x32_to4x4 = CustomMIL()
MIL_48x48_to4x4_cst = CustomMIL(feature_extr=get_cnn(filters=[512, 512, 512]), p2in=512*4*4, L=500, D=128, K=1)
MIL_48x48_to4x4_dec = CustomMIL(feature_extr=get_cnn(filters=[512, 256, 128]), p2in=128*4*4, L=500, D=128, K=1)
MIL_48x48_to4x4_inc = CustomMIL(feature_extr=get_cnn(filters=[128, 256, 512]), p2in=512*4*4, L=500, D=128, K=1)
MIL_48x48_to4x4_small = CustomMIL(feature_extr=get_cnn(filters=[128, 64, 32]), p2in=32*4*4, L=500, D=128, K=1)
MIL_48x48_to4x4_small_drop0 = CustomMIL(feature_extr=get_cnn(filters=[128, 64, 32]),
p2in=32*4*4, L=500, D=128, K=1, dropp=0)
MIL_48x48_to4x4_small_drop2 = CustomMIL(feature_extr=get_cnn(filters=[128, 64, 32]),
p2in=32*4*4, L=500, D=128, K=1, dropp=0.2)
# ### DenseNets ### #
DenseNet_BN_32k_to7x7_ap_3fc = DenseNet(32, [6, 12, 32, 64, 48], [2880, 1440, 100])
DenseNet_BN_32k_to7x7_mp_3fc = DenseNet(32, [6, 12, 32, 64, 48], [2880, 1440, 100], max_pool=True)
DenseNet_BN_32k_to7x7_mp_5fc = DenseNet(32, [6, 12, 32, 64, 48], [2880, 1440, 512, 128, 32], max_pool=True)
# MAIN NETS FOR DNO MODEL #
ICL_DenseNet_3fc = DenseNet(32, [6, 12, 32], [1280, 80, 16])
ICL_FConvDenseNet_3fc = FConvDenseNet(32, [6, 12, 32], [1280, 80, 16])
ICL_FConvDenseNet_3fc_1ch = FConvDenseNet(32, [6, 12, 32], [1280, 80, 16], nClasses=1)
MIL_Representative_3 = DenseNet(32, [6, 12, 32, 1, 6, 12], [648], avg_pool_size=3)
MIL_Representative_7 = DenseNet(32, [6, 12, 32, 1, 6], [528], avg_pool_size=7)
MIL_DenseNet_3fc = DenseNet(32, [6, 12, 32, 12, 6, 3], [448, 80, 16])
MIL_DenseNet_3fc_bn = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 80, 16])
MIL_DenseNet_3fc_narrow = DenseNet(32, [6, 12, 32, 2, 2, 2], [272, 80, 16])
MIL_DenseNet_3fc_super_narrow = DenseNet(32, [6, 12, 32, 1, 1, 1], [216, 80, 16])
MIL_DenseNet_2fc = DenseNet(32, [6, 12, 32, 12, 6, 3], [448, 4])
MIL_DenseNet_2fc_bn = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 4])
MIL_DenseNet_2fc_narrow = DenseNet(32, [6, 12, 32, 2, 2, 2], [272, 4])
MIL_DenseNet_2fc_super_narrow = DenseNet(32, [6, 12, 32, 1, 1, 1], [216, 4])
MIL_DenseNet_3fc_bn_2do = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 80, 16], drop_out_prob=0.2)
MIL_DenseNet_3fc_bn_3do = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 80, 16], drop_out_prob=0.3)
MIL_DenseNet_3fc_bn_4do = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 80, 16], drop_out_prob=0.4)
MIL_DenseNet_3fc_bn_5do = DenseNet(32, [6, 12, 32, 1, 6, 12], [648, 80, 16], drop_out_prob=0.5)
# #
ICL_MIL_DS3fc = DenseMIL(32, [6, 12, 32], p2in=1280)
ICL_DenseNet_4fc = DenseNet(32, [12, 22, 42], [1808, 320, 80, 4])
MyDenceMILFeatures = DenseNet(32, [6, 12], [512, 80, 16], inp_channels=1280)
MyDenceMIL = DenseNet(32, [6, 12], [512, 80, 16], inp_channels=1)
# ### VGGS ## #
CNN_512_1conv_to15x15_6fc_32filter = \
nn.Sequential(nn.Conv2d(1, 128, 32), nn.MaxPool2d(32), View(),
nn.Linear(128 * 15 * 15, 128 * 4), nn.ReLU(),
nn.Linear(128 * 4, 128), nn.ReLU(),
nn.Linear(128, 64), nn.ReLU(),
nn.Linear(64, 32), nn.ReLU(),
nn.Linear(32, 8), nn.ReLU(),
nn.Linear(8, 2))
CNN_512_3conv_to12x12_3fc_filter = \
nn.Sequential(nn.Conv2d(1, 128, 32), nn.MaxPool2d(16),
nn.Conv2d(128, 1024, 3), nn.MaxPool2d(2),
nn.Conv2d(1024, 128, 3), View(),
nn.Linear(128 * 12 * 12, 128 * 12), nn.ReLU(),
nn.Linear(128 * 12, 128), nn.ReLU(),
nn.Linear(128, 2))
CNN_512_4conv_to4x4_3fc_32filter = \
nn.Sequential(nn.Conv2d(1, 128, 32), nn.MaxPool2d(16),
nn.Conv2d(128, 128, 3), nn.MaxPool2d(2),
nn.Conv2d(128, 64, 3), nn.MaxPool2d(2),
nn.Conv2d(64, 64, 3), View(),
nn.Linear(64 * 4 * 4, 64 * 4), nn.ReLU(),
nn.Linear(64 * 4, 64), nn.ReLU(),
nn.Linear(64, 2))
CNN_512_5conv_to10x10_3fc_16filter = \
nn.Sequential(nn.Conv2d(1, 64, 5), nn.MaxPool2d(2),
nn.Conv2d(64, 128, 16), nn.MaxPool2d(4),
nn.Conv2d(128, 64, 8), nn.MaxPool2d(2),
nn.Conv2d(64, 64, 3), nn.MaxPool2d(2),
nn.Conv2d(64, 64, 3), View(),
nn.Linear(64 * 10 * 10, 64 * 10), nn.ReLU(),
nn.Linear(64 * 10, 64), nn.ReLU(),
nn.Linear(64, 2))
CNN_512_7conv_to4x4_3fc = \
nn.Sequential(nn.Conv2d(1, 1024, 3), nn.MaxPool2d(2),
nn.Conv2d(1024, 512, 3), nn.MaxPool2d(2),
nn.Conv2d(512, 256, 3), nn.MaxPool2d(2),
nn.Conv2d(256, 128, 3), nn.MaxPool2d(2),
nn.Conv2d(128, 64, 3), nn.MaxPool2d(2),
nn.Conv2d(64, 32, 3), nn.MaxPool2d(2),
nn.Conv2d(32, 16, 3), View(),
nn.Linear(16 * 4 * 4, 16 * 4), nn.ReLU(),
nn.Linear(16 * 4, 16), nn.ReLU(),
nn.Linear(16, 2))
Inferno_example = nn.Sequential(
ConvELU2D(in_channels=1, out_channels=256, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
ConvELU2D(in_channels=256, out_channels=256, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
ConvELU2D(in_channels=256, out_channels=256, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
ConvELU2D(in_channels=256, out_channels=256, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
Flatten(),
nn.Linear(in_features=(256 * 3 * 3), out_features=2),
nn.Softmax(dim=1)
)