├── MobileNet_and_DenseNet
├── CA_D.py
├── CA_M.py
├── TYY_callbacks.py
├── TYY_generators.py
├── TYY_model.py
├── TYY_train_others.py
├── TYY_utils.py
├── densenet.py
├── subpixel.py
└── tensorflow_backend.py
├── README.md
├── SSRNET
├── CA.py
├── SSRNET_model.py
├── SSRNET_train.py
├── TYY_callbacks.py
├── TYY_generators.py
├── TYY_utils.py
├── densenet.py
├── subpixel.py
└── tensorflow_backend.py
├── TYY_Megaage_asian_create_db.py
├── data
└── README.md
├── megaage_models
├── DenseNet
│ └── batch_size_50
│ │ └── densenet_reg_19_64
│ │ ├── densenet_reg_19_64.h5
│ │ ├── densenet_reg_19_64.json
│ │ ├── densenet_reg_19_64.png
│ │ ├── history_densenet_reg_19_64.h5
│ │ ├── loss.pdf
│ │ └── performance.pdf
├── MobileNet
│ └── batch_size_50
│ │ └── mobilenet_reg_0.25_64
│ │ ├── history_mobilenet_reg_0.25_64.h5
│ │ ├── mobilenet_reg_0.25_64.h5
│ │ ├── mobilenet_reg_0.25_64.json
│ │ └── mobilenet_reg_0.25_64.png
└── batch_size_50
│ └── ssrnet_3_3_3_64_1.0_1.0
│ ├── history_ssrnet_3_3_3_64_1.0_1.0.h5
│ ├── ssrnet_3_3_3_64_1.0_1.0.h5
│ ├── ssrnet_3_3_3_64_1.0_1.0.json
│ └── ssrnet_3_3_3_64_1.0_1.0.png
├── paper_images
└── magaage_asian_CA.png
├── pre-trained
└── wiki
│ ├── densenet_reg_13_64
│ ├── densenet_reg_13_64.h5
│ ├── densenet_reg_13_64.json
│ ├── densenet_reg_13_64.png
│ ├── history_densenet_reg_13_64.h5
│ ├── loss.pdf
│ ├── loss.png
│ ├── performance.pdf
│ └── performance.png
│ ├── densenet_reg_19_64
│ ├── densenet_reg_19_64.h5
│ ├── densenet_reg_19_64.json
│ ├── densenet_reg_19_64.png
│ ├── history_densenet_reg_19_64.h5
│ ├── loss.pdf
│ ├── loss.png
│ ├── performance.pdf
│ └── performance.png
│ ├── mobilenet_reg_0.25_64
│ ├── history_mobilenet_reg_0.25_64.h5
│ ├── loss.pdf
│ ├── loss.png
│ ├── mobilenet_reg_0.25_64.h5
│ ├── mobilenet_reg_0.25_64.json
│ ├── mobilenet_reg_0.25_64.png
│ ├── performance.pdf
│ └── performance.png
│ ├── mobilenet_reg_0.5_64
│ ├── history_mobilenet_reg_0.5_64.h5
│ ├── loss.pdf
│ ├── loss.png
│ ├── mobilenet_reg_0.5_64.h5
│ ├── mobilenet_reg_0.5_64.json
│ ├── mobilenet_reg_0.5_64.png
│ ├── performance.pdf
│ └── performance.png
│ └── ssrnet_3_3_3_64_1.0_1.0
│ ├── history_ssrnet_3_3_3_64_1.0_1.0.h5
│ ├── loss.pdf
│ ├── performance.pdf
│ ├── ssrnet_3_3_3_64_1.0_1.0.h5
│ ├── ssrnet_3_3_3_64_1.0_1.0.json
│ └── ssrnet_3_3_3_64_1.0_1.0.png
├── run_CA.sh
├── run_megaage_DenseNet.sh
├── run_megaage_MobileNet.sh
└── run_ssrnet_megaage.sh
/MobileNet_and_DenseNet/CA_D.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import sys
3 | import logging
4 | import csv
5 | import os
6 | os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
7 | from TYY_utils import mk_dir, load_data_npz
8 | from TYY_model import TYY_DenseNet_reg
9 |
10 | def MAE(a,b):
11 | mae = np.sum(np.absolute(a-b))
12 | mae/=len(b)
13 | return mae
14 |
15 | '''''''''''''''''''''''''''''''''''''''''''''
16 | file name
17 | '''''''''''''''''''''''''''''''''''''''''''''
18 | test_file = sys.argv[1]
19 | netType = int(sys.argv[2])
20 |
21 | logging.debug("Loading testing data...")
22 | image2, age2, image_size = load_data_npz(test_file)
23 |
24 | if netType == 3:
25 | N_densenet = 3
26 | depth_densenet = 3*N_densenet+4
27 | model_file = 'megaage_models/DenseNet/batch_size_50/densenet_reg_%d_64/densenet_reg_%d_64.h5'%(depth_densenet, depth_densenet)
28 | model = TYY_DenseNet_reg(image_size,depth_densenet)()
29 | mk_dir('Results_csv')
30 | save_name = 'Results_csv/densenet_reg_%d_%d.csv' % (depth_densenet, image_size)
31 |
32 | elif netType == 4:
33 | N_densenet = 5
34 | depth_densenet = 3*N_densenet+4
35 | model_file = 'megaage_models/DenseNet/batch_size_50/densenet_reg_%d_64/densenet_reg_%d_64.h5'%(depth_densenet, depth_densenet)
36 | model = TYY_DenseNet_reg(image_size,depth_densenet)()
37 | mk_dir('Results_csv')
38 | save_name = 'Results_csv/densenet_reg_%d_%d.csv' % (depth_densenet, image_size)
39 |
40 |
41 | '''''''''''''''''''''''''''''''''''''''''''''
42 | load data
43 | '''''''''''''''''''''''''''''''''''''''''''''
44 | logging.debug("Loading model file...")
45 | model.load_weights(model_file)
46 |
47 | age_p=model.predict(image2)
48 |
49 | '''''''''''''''''''''''''''''''''''''''''''''
50 | prediction
51 | '''''''''''''''''''''''''''''''''''''''''''''
52 | pred=[['MAE'],[str(MAE(age2,age_p[:,0]))],['CA3','CA5'],['0','0'],['ID','age','age_p','error']]
53 | CA3=0
54 | CA5=0
55 | for i in range(0,len(image2)):
56 | error=np.absolute(age2[i]-age_p[i,0])
57 | if error<=3:
58 | CA3+=1
59 | if error<=5:
60 | CA5+=1
61 | temp = [str(i), str(age2[i]), str(age_p[i,0]), str(error)]
62 | pred.append(temp)
63 |
64 | CA3/=len(image2)
65 | CA5/=len(image2)
66 | pred[3]=[str(CA3),str(CA5)]
67 |
68 | print('CA3: ',CA3,'\nCA5: ',CA5)
69 |
70 | f=open(save_name,'w')
71 | w=csv.writer(f)
72 | w.writerows(pred)
73 | f.close
74 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/CA_M.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import sys
3 | import logging
4 | import csv
5 | import os
6 | os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
7 |
8 | from TYY_utils import mk_dir, load_data_npz
9 | from TYY_model import TYY_MobileNet_reg
10 |
11 | def MAE(a,b):
12 | mae = np.sum(np.absolute(a-b))
13 | mae/=len(b)
14 | return mae
15 |
16 | '''''''''''''''''''''''''''''''''''''''''''''
17 | file name
18 | '''''''''''''''''''''''''''''''''''''''''''''
19 | test_file = sys.argv[1]
20 | netType = int(sys.argv[2])
21 |
22 | logging.debug("Loading testing data...")
23 | image2, age2, image_size = load_data_npz(test_file)
24 |
25 | if netType == 1:
26 | alpha = 0.25
27 | model_file = 'megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.h5'
28 | model = TYY_MobileNet_reg(image_size,alpha)()
29 | mk_dir('Results_csv')
30 | save_name = 'Results_csv/mobilenet_reg_%s_%d.csv' % (alpha, image_size)
31 |
32 | elif netType == 2:
33 | alpha = 0.5
34 | model_file = 'megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.5_64/mobilenet_reg_0.5_64.h5'
35 | model = TYY_MobileNet_reg(image_size,alpha)()
36 | mk_dir('Results_csv')
37 | save_name = 'Results_csv/mobilenet_reg_%s_%d.csv' % (alpha, image_size)
38 |
39 |
40 | '''''''''''''''''''''''''''''''''''''''''''''
41 | load data
42 | '''''''''''''''''''''''''''''''''''''''''''''
43 | logging.debug("Loading model file...")
44 | model.load_weights(model_file)
45 |
46 | age_p=model.predict(image2,batch_size=len(image2))
47 |
48 | '''''''''''''''''''''''''''''''''''''''''''''
49 | prediction
50 | '''''''''''''''''''''''''''''''''''''''''''''
51 | pred=[['MAE'],[str(MAE(age2,age_p[:,0]))],['ID','age','age_p','error']]
52 | pred.append(['CA3','CA5'])
53 | pred.append(['0','0'])
54 | CA3=0
55 | CA5=0
56 | for i in range(0,len(image2)):
57 | error=np.absolute(age2[i]-age_p[i,0])
58 | if error<=3:
59 | CA3+=1
60 | if error<=5:
61 | CA5+=1
62 | temp = [str(i), str(age2[i]), str(age_p[i,0]), str(error)]
63 | pred.append(temp)
64 |
65 | CA3/=len(image2)
66 | CA5/=len(image2)
67 | pred[4]=[str(CA3),str(CA5)]
68 |
69 | print('CA3: ',CA3,'\nCA5: ',CA5)
70 |
71 | f=open(save_name,'w')
72 | w=csv.writer(f)
73 | w.writerows(pred)
74 | f.close
75 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/TYY_callbacks.py:
--------------------------------------------------------------------------------
1 | import keras
2 | from sklearn.metrics import roc_auc_score
3 | import sys
4 | import matplotlib.pyplot as plt
5 | from keras.models import Model
6 | import numpy as np
7 | from keras import backend as K
8 |
9 |
10 | class DecayLearningRate(keras.callbacks.Callback):
11 | def __init__(self, startEpoch):
12 | self.startEpoch = startEpoch
13 |
14 | def on_train_begin(self, logs={}):
15 | return
16 | def on_train_end(self, logs={}):
17 | return
18 |
19 | def on_epoch_begin(self, epoch, logs={}):
20 | if epoch in self.startEpoch:
21 | if epoch == 0:
22 | ratio = 1
23 | else:
24 | ratio = 0.1
25 | LR = K.get_value(self.model.optimizer.lr)
26 | K.set_value(self.model.optimizer.lr,LR*ratio)
27 | return
28 |
29 | def on_epoch_end(self, epoch, logs={}):
30 | return
31 |
32 | def on_batch_begin(self, batch, logs={}):
33 | return
34 |
35 | def on_batch_end(self, batch, logs={}):
36 | return
37 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/TYY_generators.py:
--------------------------------------------------------------------------------
1 | import keras
2 | import numpy as np
3 | import sys
4 | from scipy import misc
5 | import tensorflow as tf
6 |
7 |
8 | def random_crop(x,dn):
9 | dx = np.random.randint(dn,size=1)[0]
10 | dy = np.random.randint(dn,size=1)[0]
11 | w = x.shape[0]
12 | h = x.shape[1]
13 | out = x[0+dx:w-(dn-dx),0+dy:h-(dn-dy),:]
14 | out = misc.imresize(out, (w,h), interp='nearest')
15 | return out
16 |
17 | def augment_data(images):
18 | for i in range(0,images.shape[0]):
19 |
20 | if np.random.random() > 0.5:
21 | images[i] = images[i][:,::-1]
22 | """
23 | if np.random.random() > 0.5:
24 | images[i] = random_crop(images[i],4)
25 | """
26 | if np.random.random() > 0.75:
27 | images[i] = tf.contrib.keras.preprocessing.image.random_rotation(images[i], 20, row_axis=0, col_axis=1, channel_axis=2)
28 | if np.random.random() > 0.75:
29 | images[i] = tf.contrib.keras.preprocessing.image.random_shear(images[i], 0.2, row_axis=0, col_axis=1, channel_axis=2)
30 | if np.random.random() > 0.75:
31 | images[i] = tf.contrib.keras.preprocessing.image.random_shift(images[i], 0.2, 0.2, row_axis=0, col_axis=1, channel_axis=2)
32 | if np.random.random() > 0.75:
33 | images[i] = tf.contrib.keras.preprocessing.image.random_zoom(images[i], [0.8,1.2], row_axis=0, col_axis=1, channel_axis=2)
34 |
35 | return images
36 |
37 |
38 | def data_generator_reg(X,Y,batch_size):
39 |
40 | while True:
41 | idxs = np.random.permutation(len(X))
42 | X = X[idxs]
43 | Y = Y[idxs]
44 | p,q = [],[]
45 | for i in range(len(X)):
46 | p.append(X[i])
47 | q.append(Y[i])
48 | if len(p) == batch_size:
49 | yield augment_data(np.array(p)),np.array(q)
50 | p,q = [],[]
51 | if p:
52 | yield augment_data(np.array(p)),np.array(q)
53 | p,q = [],[]
54 |
55 | def data_generator_dex(X,Y,batch_size):
56 |
57 | Y1 = Y[0]
58 | Y2 = Y[1]
59 |
60 | while True:
61 | idxs = np.random.permutation(len(X))
62 | X = X[idxs]
63 | Y1 = Y1[idxs]
64 | Y2 = Y2[idxs]
65 | p,q1,q2 = [],[],[]
66 | for i in range(len(X)):
67 | p.append(X[i])
68 | q1.append(Y1[i])
69 | q2.append(Y2[i])
70 | if len(p) == batch_size:
71 | yield augment_data(np.array(p)),[np.array(q1),np.array(q2)]
72 | p,q1,q2 = [],[],[]
73 | if p:
74 | yield augment_data(np.array(p)),[np.array(q1),np.array(q2)]
75 | p,q1,q2 = [],[],[]
76 |
77 | def data_generator_dex_centerloss(X,Y,batch_size):
78 | X1 = X[0]
79 | X2 = X[1]
80 | Y1 = Y[0]
81 | Y2 = Y[1]
82 | Y3 = Y[2]
83 | while True:
84 | idxs = np.random.permutation(len(X1))
85 | X1 = X1[idxs] #images
86 | X2 = X2[idxs] #labels for center loss
87 | Y1 = Y1[idxs]
88 | Y2 = Y2[idxs]
89 | Y3 = Y3[idxs]
90 | p1,p2,q1,q2,q3 = [],[],[],[],[]
91 | for i in range(len(X1)):
92 | p1.append(X1[i])
93 | p2.append(X2[i])
94 | q1.append(Y1[i])
95 | q2.append(Y2[i])
96 | q3.append(Y3[i])
97 | if len(p1) == batch_size:
98 | yield [augment_data(np.array(p1)),np.array(p2)],[np.array(q1),np.array(q2),np.array(q3)]
99 | p1,p2,q1,q2,q3 = [],[],[],[],[]
100 | if p1:
101 | yield [augment_data(np.array(p1)),np.array(p2)],[np.array(q1),np.array(q2),np.array(q3)]
102 | p1,p2,q1,q2,q3 = [],[],[],[],[]
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/TYY_model.py:
--------------------------------------------------------------------------------
1 | # This code is imported from the following project: https://github.com/asmith26/wide_resnets_keras
2 |
3 | import logging
4 | import sys
5 | import numpy as np
6 | from keras.models import Model
7 | from keras.layers import Input, Activation, add, Dense, Flatten, Dropout, Multiply, Embedding, Lambda, Add, Concatenate, Activation
8 | from keras.layers.convolutional import Conv2D, AveragePooling2D, MaxPooling2D
9 | from keras.layers.normalization import BatchNormalization
10 | from keras.regularizers import l2
11 | from keras import backend as K
12 | from keras.optimizers import SGD,Adam
13 | from keras.applications.mobilenet import MobileNet
14 | from densenet import *
15 | from keras.utils import plot_model
16 |
17 | sys.setrecursionlimit(2 ** 20)
18 | np.random.seed(2 ** 10)
19 |
20 |
21 | class TYY_MobileNet_reg:
22 | def __init__(self, image_size, alpha):
23 |
24 |
25 | if K.image_dim_ordering() == "th":
26 | logging.debug("image_dim_ordering = 'th'")
27 | self._channel_axis = 1
28 | self._input_shape = (3, image_size, image_size)
29 | else:
30 | logging.debug("image_dim_ordering = 'tf'")
31 | self._channel_axis = -1
32 | self._input_shape = (image_size, image_size, 3)
33 | self.alpha = alpha
34 |
35 | # def create_model(self):
36 | def __call__(self):
37 | logging.debug("Creating model...")
38 |
39 | inputs = Input(shape=self._input_shape)
40 | model_mobilenet = MobileNet(input_shape=self._input_shape, alpha=self.alpha, depth_multiplier=1, dropout=1e-3, include_top=False, weights=None, input_tensor=None, pooling=None)
41 | x = model_mobilenet(inputs)
42 | #flatten = Flatten()(x)
43 |
44 | feat_a = Conv2D(20,(1,1),activation='relu')(x)
45 | feat_a = Flatten()(feat_a)
46 | feat_a = Dropout(0.2)(feat_a)
47 | feat_a = Dense(32,activation='relu',name='feat_a')(feat_a)
48 |
49 | pred_a = Dense(1,name='pred_a')(feat_a)
50 | model = Model(inputs=inputs, outputs=[pred_a])
51 |
52 |
53 | return model
54 |
55 |
56 | class TYY_DenseNet_reg:
57 | def __init__(self, image_size, depth):
58 |
59 | if K.image_dim_ordering() == "th":
60 | logging.debug("image_dim_ordering = 'th'")
61 | self._channel_axis = 1
62 | self._input_shape = (3, image_size, image_size)
63 | else:
64 | logging.debug("image_dim_ordering = 'tf'")
65 | self._channel_axis = -1
66 | self._input_shape = (image_size, image_size, 3)
67 | self.depth = depth
68 |
69 | # def create_model(self):
70 | def __call__(self):
71 | logging.debug("Creating model...")
72 |
73 | inputs = Input(shape=self._input_shape)
74 | model_densenet = DenseNet(input_shape=self._input_shape, depth=self.depth, include_top=False, weights=None, input_tensor=None)
75 | flatten = model_densenet(inputs)
76 |
77 | feat_a = Dense(128,activation='relu')(flatten)
78 | feat_a = Dropout(0.2)(feat_a)
79 | feat_a = Dense(32,activation='relu',name='feat_a')(feat_a)
80 |
81 | pred_a = Dense(1,name='pred_a')(feat_a)
82 | model = Model(inputs=inputs, outputs=[pred_a])
83 |
84 | return model
85 |
86 |
87 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/TYY_train_others.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import logging
3 | import argparse
4 | import os
5 | from keras.callbacks import ModelCheckpoint
6 | from keras.optimizers import Adam
7 | from TYY_model import TYY_MobileNet_reg, TYY_DenseNet_reg
8 | from TYY_utils import mk_dir, load_data_npz
9 | import sys
10 | import numpy as np
11 | from keras.preprocessing.image import ImageDataGenerator
12 | from keras.applications.mobilenet import MobileNet
13 | import TYY_callbacks
14 | from keras.preprocessing.image import ImageDataGenerator
15 | '''from mixup_generator import MixupGenerator'''
16 | '''from random_eraser import get_random_eraser'''
17 | from TYY_generators import *
18 | from keras.utils import plot_model
19 | from moviepy.editor import *
20 |
21 | logging.basicConfig(level=logging.DEBUG)
22 |
23 |
24 |
25 | def get_args():
26 | parser = argparse.ArgumentParser(description="This script trains the CNN model for age and gender estimation.",
27 | formatter_class=argparse.ArgumentDefaultsHelpFormatter)
28 | parser.add_argument("--input1", "-i1", type=str, required=True,
29 | help="path to input database npz file")
30 | parser.add_argument("--input2", "-i2", type=str, required=True,
31 | help="path to input database npz file")
32 | parser.add_argument("--db", type=str, required=True,
33 | help="database name")
34 | parser.add_argument("--netType", type=int, required=True,
35 | help="network type")
36 | parser.add_argument("--batch_size", type=int, default=128,
37 | help="batch size")
38 | parser.add_argument("--nb_epochs", type=int, default=90,
39 | help="number of epochs")
40 |
41 | args = parser.parse_args()
42 | return args
43 |
44 |
45 |
46 | def main():
47 | args = get_args()
48 | input_path1 = args.input1
49 | input_path2 = args.input2
50 | db_name = args.db
51 | batch_size = args.batch_size
52 | nb_epochs = args.nb_epochs
53 | netType = args.netType
54 |
55 | logging.debug("Loading training data...")
56 | image1, age1, image_size = load_data_npz(input_path1)
57 | logging.debug("Loading testing data...")
58 | image2, age2, image_size = load_data_npz(input_path2)
59 |
60 |
61 | start_decay_epoch = [30,60]
62 |
63 | optMethod = Adam()
64 |
65 | if netType == 1:
66 | model_type = 'MobileNet'
67 | alpha = 0.25
68 | model = TYY_MobileNet_reg(image_size,alpha)()
69 | save_name = 'mobilenet_reg_%s_%d' % (alpha, image_size)
70 | model.compile(optimizer=optMethod, loss=["mae"], metrics={'pred_a':'mae'})
71 |
72 | elif netType == 2:
73 | model_type = 'MobileNet'
74 | alpha = 0.5
75 | model = TYY_MobileNet_reg(image_size,alpha)()
76 | save_name = 'mobilenet_reg_%s_%d' % (alpha, image_size)
77 | model.compile(optimizer=optMethod, loss=["mae"], metrics={'pred_a':'mae'})
78 |
79 | elif netType == 3:
80 | model_type = 'DenseNet'
81 | N_densenet = 3
82 | depth_densenet = 3*N_densenet+4
83 | model = TYY_DenseNet_reg(image_size,depth_densenet)()
84 | save_name = 'densenet_reg_%d_%d' % (depth_densenet, image_size)
85 | model.compile(optimizer=optMethod, loss=["mae"], metrics={'pred_a':'mae'})
86 |
87 | elif netType == 4:
88 | model_type = 'DenseNet'
89 | N_densenet = 5
90 | depth_densenet = 3*N_densenet+4
91 | model = TYY_DenseNet_reg(image_size,depth_densenet)()
92 | save_name = 'densenet_reg_%d_%d' % (depth_densenet, image_size)
93 | model.compile(optimizer=optMethod, loss=["mae"], metrics={'pred_a':'mae'})
94 |
95 |
96 |
97 | if db_name == "meagaage":
98 | weight_file = "../pre-trained/wiki/"+save_name+"/"+save_name+".h5"
99 | model.load_weights(weight_file)
100 |
101 |
102 | logging.debug("Model summary...")
103 | model.count_params()
104 | model.summary()
105 |
106 | logging.debug("Saving model...")
107 |
108 | mk_dir(db_name+"_models")
109 | mk_dir(db_name+"_models/"+model_type+"/")
110 | mk_dir(db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size))
111 | mk_dir(db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size)+save_name)
112 | mk_dir(db_name+"_checkpoints")
113 | mk_dir(db_name+"_checkpoints/"+model_type)
114 | mk_dir(db_name+"_checkpoints/"+model_type+"/batch_size_%d/"%(batch_size))
115 | plot_model(model, to_file=db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size)+save_name+"/"+save_name+".png")
116 |
117 | with open(os.path.join(db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size)+save_name, save_name+'.json'), "w") as f:
118 | f.write(model.to_json())
119 |
120 | decaylearningrate = TYY_callbacks.DecayLearningRate(start_decay_epoch)
121 |
122 | callbacks = [ModelCheckpoint(db_name+"_checkpoints/"+model_type+"/batch_size_%d/"%(batch_size)+"weights.{epoch:02d}-{val_loss:.2f}.hdf5",
123 | monitor="val_loss",
124 | verbose=1,
125 | save_best_only=True,
126 | mode="auto"), decaylearningrate
127 | ]
128 |
129 | logging.debug("Running training...")
130 |
131 |
132 | data_num = len(image1)+len(image2)
133 | indexes1 = np.arange(len(image1))
134 | indexes2 = np.arange(len(image2))
135 | np.random.shuffle(indexes1)
136 | np.random.shuffle(indexes2)
137 | x_train = image1[indexes1]
138 | x_test = image2[indexes2]
139 | y_train_a = age1[indexes1]
140 | y_test_a = age2[indexes2]
141 | train_num = len(image1)
142 |
143 |
144 | hist = model.fit_generator(generator=data_generator_reg(X=x_train, Y=y_train_a, batch_size=batch_size),
145 | steps_per_epoch=train_num // batch_size,
146 | validation_data=(x_test, [y_test_a]),
147 | epochs=nb_epochs, verbose=1,
148 | callbacks=callbacks)
149 |
150 | logging.debug("Saving weights...")
151 | model.save_weights(os.path.join(db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size)+save_name, save_name+'.h5'), overwrite=True)
152 | pd.DataFrame(hist.history).to_hdf(os.path.join(db_name+"_models/"+model_type+"/batch_size_%d/"%(batch_size)+save_name, 'history_'+save_name+'.h5'), "history")
153 |
154 |
155 | if __name__ == '__main__':
156 | main()
157 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/TYY_utils.py:
--------------------------------------------------------------------------------
1 | # modifided from https://github.com/yu4u/age-gender-estimation
2 |
3 | from scipy.io import loadmat
4 | from datetime import datetime
5 | import os
6 | import numpy as np
7 |
8 | def calc_age(taken, dob):
9 | birth = datetime.fromordinal(max(int(dob) - 366, 1))
10 |
11 | # assume the photo was taken in the middle of the year
12 | if birth.month < 7:
13 | return taken - birth.year
14 | else:
15 | return taken - birth.year - 1
16 |
17 |
18 | def get_meta(mat_path, db):
19 | meta = loadmat(mat_path)
20 | full_path = meta[db][0, 0]["full_path"][0]
21 | dob = meta[db][0, 0]["dob"][0] # Matlab serial date number
22 | gender = meta[db][0, 0]["gender"][0]
23 | photo_taken = meta[db][0, 0]["photo_taken"][0] # year
24 | face_score = meta[db][0, 0]["face_score"][0]
25 | second_face_score = meta[db][0, 0]["second_face_score"][0]
26 | age = [calc_age(photo_taken[i], dob[i]) for i in range(len(dob))]
27 |
28 | return full_path, dob, gender, photo_taken, face_score, second_face_score, age
29 |
30 |
31 | def load_data(mat_path):
32 | d = loadmat(mat_path)
33 |
34 | return d["image"], d["gender"][0], d["age"][0], d["db"][0], d["img_size"][0, 0], d["min_score"][0, 0]
35 |
36 | '''
37 | def load_MORPH_data_npz(npz_path):
38 | d = np.load(npz_path)
39 |
40 | return d["image"], d["gender"], d["age"], d["img_size"]
41 | '''
42 | def load_data_npz(npz_path):
43 | d = np.load(npz_path)
44 |
45 | return d["image"], d["age"], d["img_size"]
46 |
47 | def mk_dir(dir):
48 | try:
49 | os.mkdir( dir )
50 | except OSError:
51 | pass
52 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/subpixel.py:
--------------------------------------------------------------------------------
1 | #https://github.com/titu1994/DenseNet
2 | from __future__ import absolute_import
3 |
4 | from keras import backend as K
5 | from keras.engine import Layer
6 | from keras.utils.generic_utils import get_custom_objects
7 | from keras.utils.conv_utils import normalize_data_format
8 |
9 | if K.backend() == 'theano':
10 | import theano_backend as K_BACKEND
11 | else:
12 | import tensorflow_backend as K_BACKEND
13 |
14 | class SubPixelUpscaling(Layer):
15 | """ Sub-pixel convolutional upscaling layer based on the paper "Real-Time Single Image
16 | and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network"
17 | (https://arxiv.org/abs/1609.05158).
18 | This layer requires a Convolution2D prior to it, having output filters computed according to
19 | the formula :
20 | filters = k * (scale_factor * scale_factor)
21 | where k = a user defined number of filters (generally larger than 32)
22 | scale_factor = the upscaling factor (generally 2)
23 | This layer performs the depth to space operation on the convolution filters, and returns a
24 | tensor with the size as defined below.
25 | # Example :
26 | ```python
27 | # A standard subpixel upscaling block
28 | x = Convolution2D(256, 3, 3, padding='same', activation='relu')(...)
29 | u = SubPixelUpscaling(scale_factor=2)(x)
30 | [Optional]
31 | x = Convolution2D(256, 3, 3, padding='same', activation='relu')(u)
32 | ```
33 | In practice, it is useful to have a second convolution layer after the
34 | SubPixelUpscaling layer to speed up the learning process.
35 | However, if you are stacking multiple SubPixelUpscaling blocks, it may increase
36 | the number of parameters greatly, so the Convolution layer after SubPixelUpscaling
37 | layer can be removed.
38 | # Arguments
39 | scale_factor: Upscaling factor.
40 | data_format: Can be None, 'channels_first' or 'channels_last'.
41 | # Input shape
42 | 4D tensor with shape:
43 | `(samples, k * (scale_factor * scale_factor) channels, rows, cols)` if data_format='channels_first'
44 | or 4D tensor with shape:
45 | `(samples, rows, cols, k * (scale_factor * scale_factor) channels)` if data_format='channels_last'.
46 | # Output shape
47 | 4D tensor with shape:
48 | `(samples, k channels, rows * scale_factor, cols * scale_factor))` if data_format='channels_first'
49 | or 4D tensor with shape:
50 | `(samples, rows * scale_factor, cols * scale_factor, k channels)` if data_format='channels_last'.
51 | """
52 |
53 | def __init__(self, scale_factor=2, data_format=None, **kwargs):
54 | super(SubPixelUpscaling, self).__init__(**kwargs)
55 |
56 | self.scale_factor = scale_factor
57 | self.data_format = normalize_data_format(data_format)
58 |
59 | def build(self, input_shape):
60 | pass
61 |
62 | def call(self, x, mask=None):
63 | y = K_BACKEND.depth_to_space(x, self.scale_factor, self.data_format)
64 | return y
65 |
66 | def compute_output_shape(self, input_shape):
67 | if self.data_format == 'channels_first':
68 | b, k, r, c = input_shape
69 | return (b, k // (self.scale_factor ** 2), r * self.scale_factor, c * self.scale_factor)
70 | else:
71 | b, r, c, k = input_shape
72 | return (b, r * self.scale_factor, c * self.scale_factor, k // (self.scale_factor ** 2))
73 |
74 | def get_config(self):
75 | config = {'scale_factor': self.scale_factor,
76 | 'data_format': self.data_format}
77 | base_config = super(SubPixelUpscaling, self).get_config()
78 | return dict(list(base_config.items()) + list(config.items()))
79 |
80 |
81 | get_custom_objects().update({'SubPixelUpscaling': SubPixelUpscaling})
82 |
--------------------------------------------------------------------------------
/MobileNet_and_DenseNet/tensorflow_backend.py:
--------------------------------------------------------------------------------
1 | #https://github.com/titu1994/DenseNet
2 | import tensorflow as tf
3 |
4 | from keras.backend import tensorflow_backend as KTF
5 | from keras.backend.common import image_data_format
6 |
7 | py_all = all
8 |
9 |
10 | def _preprocess_conv2d_input(x, data_format):
11 | """Transpose and cast the input before the conv2d.
12 | # Arguments
13 | x: input tensor.
14 | data_format: string, `"channels_last"` or `"channels_first"`.
15 | # Returns
16 | A tensor.
17 | """
18 | if dtype(x) == 'float64':
19 | x = tf.cast(x, 'float32')
20 | if data_format == 'channels_first':
21 | # TF uses the last dimension as channel dimension,
22 | # instead of the 2nd one.
23 | # TH input shape: (samples, input_depth, rows, cols)
24 | # TF input shape: (samples, rows, cols, input_depth)
25 | x = tf.transpose(x, (0, 2, 3, 1))
26 | return x
27 |
28 |
29 | def _postprocess_conv2d_output(x, data_format):
30 | """Transpose and cast the output from conv2d if needed.
31 | # Arguments
32 | x: A tensor.
33 | data_format: string, `"channels_last"` or `"channels_first"`.
34 | # Returns
35 | A tensor.
36 | """
37 |
38 | if data_format == 'channels_first':
39 | x = tf.transpose(x, (0, 3, 1, 2))
40 |
41 | if floatx() == 'float64':
42 | x = tf.cast(x, 'float64')
43 | return x
44 |
45 |
46 | def depth_to_space(input, scale, data_format=None):
47 | ''' Uses phase shift algorithm to convert channels/depth for spatial resolution '''
48 | if data_format is None:
49 | data_format = image_data_format()
50 | data_format = data_format.lower()
51 | input = _preprocess_conv2d_input(input, data_format)
52 | out = tf.depth_to_space(input, scale)
53 | out = _postprocess_conv2d_output(out, data_format)
54 | return out
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SSR-Net_megaage-asian
2 | [IJCAI18] SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation
3 | * A real time age estimation model with 0.32MB
4 | * This repository is for *MegaAge-Asian datasets*
5 | * See also https://github.com/shamangary/SSR-Net for more datasets and video demo
6 |
7 | **Last update: 2018/08/06 (Adding MegaAge-Asian dataset.)**
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | ## Paper
18 | ### PDF
19 | https://github.com/shamangary/SSR-Net/blob/master/ijcai18_ssrnet_pdfa_2b.pdf
20 | ### Authors
21 | **[Tsun-Yi Yang](http://shamangary.logdown.com/), [Yi-Husan Huang](https://github.com/b02901145), [Yen-Yu Lin](https://www.citi.sinica.edu.tw/pages/yylin/index_zh.html), [Pi-Cheng Hsiu](https://www.citi.sinica.edu.tw/pages/pchsiu/index_en.html), and [Yung-Yu Chuang](https://www.csie.ntu.edu.tw/~cyy/)**
22 |
23 | ## Abstract
24 | This paper presents a novel CNN model called Soft Stagewise Regression Network (SSR-Net) for age estimation from a single image with a compact model size. Inspired by DEX, we address age estimation by performing multi-class classification and then turning classification results into regression by calculating the expected values. SSR-Net takes a coarse-to-fine strategy and performs multi-class classification with multiple stages. Each stage is only responsible for refining the decision of the previous stage. Thus, each stage performs a task with few classes and requires few neurons, greatly reducing the model size. For addressing the quantization issue introduced by grouping ages into classes, SSR-Net assigns a dynamic range to each age class by allowing it to be shifted and scaled according to the input face image. Both the multi-stage strategy and the dynamic range are incorporated into the formulation of soft stagewise regression. A novel network architecture is proposed for carrying out soft stagewise regression. The resultant SSR-Net model is very compact and takes only **0.32 MB**. Despite of its compact size, SSR-Net’s performance approaches those of the state-of-the-art methods whose model sizes are more than 1500x larger.
25 |
26 | ## Platform
27 | + Keras
28 | + Tensorflow
29 | + GTX-1080Ti and GTX-1080
30 | + Ubuntu
31 |
32 | ## Codes
33 | **This repository is for MegaAge-Asian datasets.**
34 | There are three different section of this project.
35 | + Data pre-processing
36 | + Training
37 | + Testing
38 |
39 | We will go through the details in the following sections.
40 |
41 |
42 | ### Data pre-processing
43 | + Download MegaAge-Asian dataset from http://mmlab.ie.cuhk.edu.hk/projects/MegaAge/
44 | + Extract under this folder
45 | + Run the following codes for dataset pre-processing
46 |
47 | or
48 |
49 | + Download from https://drive.google.com/open?id=1CismL8x4gi3sAfTi3qpxedWSStTPsrcp
50 | ```
51 | python TYY_Megaage_asian_create_db.py
52 | ```
53 |
54 | ### Training
55 | + For SSR-Net
56 | ```
57 | bash run_ssrnet_megaage.sh
58 | ```
59 | + For MobileNet
60 | ```
61 | bash run_megaage_MobileNet.sh
62 | ```
63 | + For DenseNet
64 | ```
65 | bash run_megaage_DenseNet.sh
66 | ```
67 |
68 | ### Testing
69 | Create predicted results and calculate CA (cumulative accuracy)
70 | + For SSR-Net, MobileNet and DenseNet
71 | ```
72 | bash run_CA.sh
73 | ```
74 |
--------------------------------------------------------------------------------
/SSRNET/CA.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import sys
3 | import logging
4 | import csv
5 | import os
6 | os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
7 |
8 | from SSRNET_model import SSR_net
9 | from TYY_utils import mk_dir, load_data_npz
10 |
11 | def MAE(a,b):
12 | mae = np.sum(np.absolute(a-b))
13 | mae/=len(a)
14 | return mae
15 |
16 | '''''''''''''''''''''''''''''''''''''''''''''
17 | file name
18 | '''''''''''''''''''''''''''''''''''''''''''''
19 | test_file = sys.argv[1]
20 | netType1 = int(sys.argv[2])
21 | netType2 = int(sys.argv[3])
22 | stage_num = [3,3,3]
23 |
24 | lambda_local = 0.25*(netType1%5)
25 | lambda_d = 0.25*(netType2%5)
26 |
27 |
28 | logging.debug("Loading testing data...")
29 | image2, age2, image_size = load_data_npz(test_file)
30 |
31 | mk_dir('Results_csv')
32 |
33 | model_file = 'megaage_models/batch_size_50/ssrnet_%d_%d_%d_%d_%s_%s/ssrnet_%d_%d_%d_%d_%s_%s.h5' % (stage_num[0],stage_num[1],stage_num[2], image_size, lambda_local, lambda_d, stage_num[0],stage_num[1],stage_num[2], image_size, lambda_local, lambda_d)
34 | save_name = 'Results_csv/ssrnet_%d_%d_%d_%d_%s_%s_age.csv' % (stage_num[0],stage_num[1],stage_num[2], image_size, lambda_local, lambda_d)
35 |
36 | '''''''''''''''''''''''''''''''''''''''''''''
37 | load data
38 | '''''''''''''''''''''''''''''''''''''''''''''
39 | model = SSR_net(image_size,stage_num, lambda_local, lambda_d)()
40 |
41 | logging.debug("Loading model file...")
42 | model.load_weights(model_file)
43 |
44 | age_p=model.predict(image2)
45 |
46 | '''''''''''''''''''''''''''''''''''''''''''''
47 | prediction
48 | '''''''''''''''''''''''''''''''''''''''''''''
49 | age_p2=age_p
50 |
51 | pred=[['MAE'],[str(MAE(age2[age2>=-1],age_p2[age2>=-1]))],['CA3','CA5'],['0','0'],['ID','age','age_p','error']]
52 | CA3=0
53 | CA5=0
54 | for i in range(0,len(image2)):
55 | error=np.absolute(age2[i]-age_p2[i])
56 | if age2[i]>=-1:
57 | if error<=3:
58 | CA3+=1
59 | if error<=5:
60 | CA5+=1
61 | temp = [str(i), str(age2[i]), str(age_p2[i]), str(error)]
62 | pred.append(temp)
63 |
64 | CA3/=len(age2[age2>=-1])
65 | CA5/=len(age2[age2>=-1])
66 | pred[3]=[str(CA3),str(CA5)]
67 |
68 | print('CA3: ',CA3,'\nCA5: ',CA5)
69 |
70 | f=open(save_name,'w')
71 | w=csv.writer(f)
72 | w.writerows(pred)
73 | f.close
74 |
--------------------------------------------------------------------------------
/SSRNET/SSRNET_model.py:
--------------------------------------------------------------------------------
1 | # This code is imported from the following project: https://github.com/asmith26/wide_resnets_keras
2 |
3 | import logging
4 | import sys
5 | import numpy as np
6 | from keras.models import Model
7 | from keras.layers import Input, Activation, add, Dense, Flatten, Dropout, Multiply, Embedding, Lambda, Add, Concatenate, Activation
8 | from keras.layers.convolutional import Conv2D, AveragePooling2D, MaxPooling2D
9 | from keras.layers.normalization import BatchNormalization
10 | from keras.regularizers import l2
11 | from keras import backend as K
12 | from keras.optimizers import SGD,Adam
13 | from keras.applications.mobilenet import MobileNet
14 | from densenet import *
15 | from keras.utils import plot_model
16 |
17 | sys.setrecursionlimit(2 ** 20)
18 | np.random.seed(2 ** 10)
19 |
20 |
21 | class SSR_net:
22 | def __init__(self, image_size,stage_num,lambda_local,lambda_d):
23 |
24 | if K.image_dim_ordering() == "th":
25 | logging.debug("image_dim_ordering = 'th'")
26 | self._channel_axis = 1
27 | self._input_shape = (3, image_size, image_size)
28 | else:
29 | logging.debug("image_dim_ordering = 'tf'")
30 | self._channel_axis = -1
31 | self._input_shape = (image_size, image_size, 3)
32 |
33 |
34 | self.stage_num = stage_num
35 | self.lambda_local = lambda_local
36 | self.lambda_d = lambda_d
37 |
38 | # def create_model(self):
39 | def __call__(self):
40 | logging.debug("Creating model...")
41 |
42 |
43 | inputs = Input(shape=self._input_shape)
44 |
45 | #-------------------------------------------------------------------------------------------------------------------------
46 | x = Conv2D(32,(3,3))(inputs)
47 | x = BatchNormalization(axis=self._channel_axis)(x)
48 | x = Activation('relu')(x)
49 | x_layer1 = AveragePooling2D(2,2)(x)
50 | x = Conv2D(32,(3,3))(x_layer1)
51 | x = BatchNormalization(axis=self._channel_axis)(x)
52 | x = Activation('relu')(x)
53 | x_layer2 = AveragePooling2D(2,2)(x)
54 | x = Conv2D(32,(3,3))(x_layer2)
55 | x = BatchNormalization(axis=self._channel_axis)(x)
56 | x = Activation('relu')(x)
57 | x_layer3 = AveragePooling2D(2,2)(x)
58 | x = Conv2D(32,(3,3))(x_layer3)
59 | x = BatchNormalization(axis=self._channel_axis)(x)
60 | x = Activation('relu')(x)
61 | #-------------------------------------------------------------------------------------------------------------------------
62 | s = Conv2D(16,(3,3))(inputs)
63 | s = BatchNormalization(axis=self._channel_axis)(s)
64 | s = Activation('tanh')(s)
65 | s_layer1 = MaxPooling2D(2,2)(s)
66 | s = Conv2D(16,(3,3))(s_layer1)
67 | s = BatchNormalization(axis=self._channel_axis)(s)
68 | s = Activation('tanh')(s)
69 | s_layer2 = MaxPooling2D(2,2)(s)
70 | s = Conv2D(16,(3,3))(s_layer2)
71 | s = BatchNormalization(axis=self._channel_axis)(s)
72 | s = Activation('tanh')(s)
73 | s_layer3 = MaxPooling2D(2,2)(s)
74 | s = Conv2D(16,(3,3))(s_layer3)
75 | s = BatchNormalization(axis=self._channel_axis)(s)
76 | s = Activation('tanh')(s)
77 |
78 |
79 | #-------------------------------------------------------------------------------------------------------------------------
80 | # Classifier block
81 | s_layer4 = Conv2D(10,(1,1),activation='relu')(s)
82 | s_layer4 = Flatten()(s_layer4)
83 | s_layer4_mix = Dropout(0.2)(s_layer4)
84 | s_layer4_mix = Dense(units=self.stage_num[0], activation="relu")(s_layer4_mix)
85 |
86 | x_layer4 = Conv2D(10,(1,1),activation='relu')(x)
87 | x_layer4 = Flatten()(x_layer4)
88 | x_layer4_mix = Dropout(0.2)(x_layer4)
89 | x_layer4_mix = Dense(units=self.stage_num[0], activation="relu")(x_layer4_mix)
90 |
91 | feat_a_s1_pre = Multiply()([s_layer4,x_layer4])
92 | delta_s1 = Dense(1,activation='tanh',name='delta_s1')(feat_a_s1_pre)
93 |
94 | feat_a_s1 = Multiply()([s_layer4_mix,x_layer4_mix])
95 | feat_a_s1 = Dense(2*self.stage_num[0],activation='relu')(feat_a_s1)
96 | pred_a_s1 = Dense(units=self.stage_num[0], activation="relu",name='pred_age_stage1')(feat_a_s1)
97 | #feat_local_s1 = Lambda(lambda x: x/10)(feat_a_s1)
98 | #feat_a_s1_local = Dropout(0.2)(pred_a_s1)
99 | local_s1 = Dense(units=self.stage_num[0], activation='tanh', name='local_delta_stage1')(feat_a_s1)
100 | #-------------------------------------------------------------------------------------------------------------------------
101 | s_layer2 = Conv2D(10,(1,1),activation='relu')(s_layer2)
102 | s_layer2 = MaxPooling2D(4,4)(s_layer2)
103 | s_layer2 = Flatten()(s_layer2)
104 | s_layer2_mix = Dropout(0.2)(s_layer2)
105 | s_layer2_mix = Dense(self.stage_num[1],activation='relu')(s_layer2_mix)
106 |
107 | x_layer2 = Conv2D(10,(1,1),activation='relu')(x_layer2)
108 | x_layer2 = AveragePooling2D(4,4)(x_layer2)
109 | x_layer2 = Flatten()(x_layer2)
110 | x_layer2_mix = Dropout(0.2)(x_layer2)
111 | x_layer2_mix = Dense(self.stage_num[1],activation='relu')(x_layer2_mix)
112 |
113 | feat_a_s2_pre = Multiply()([s_layer2,x_layer2])
114 | delta_s2 = Dense(1,activation='tanh',name='delta_s2')(feat_a_s2_pre)
115 |
116 | feat_a_s2 = Multiply()([s_layer2_mix,x_layer2_mix])
117 | feat_a_s2 = Dense(2*self.stage_num[1],activation='relu')(feat_a_s2)
118 | pred_a_s2 = Dense(units=self.stage_num[1], activation="relu",name='pred_age_stage2')(feat_a_s2)
119 | #feat_local_s2 = Lambda(lambda x: x/10)(feat_a_s2)
120 | #feat_a_s2_local = Dropout(0.2)(pred_a_s2)
121 | local_s2 = Dense(units=self.stage_num[1], activation='tanh', name='local_delta_stage2')(feat_a_s2)
122 | #-------------------------------------------------------------------------------------------------------------------------
123 | s_layer1 = Conv2D(10,(1,1),activation='relu')(s_layer1)
124 | s_layer1 = MaxPooling2D(8,8)(s_layer1)
125 | s_layer1 = Flatten()(s_layer1)
126 | s_layer1_mix = Dropout(0.2)(s_layer1)
127 | s_layer1_mix = Dense(self.stage_num[2],activation='relu')(s_layer1_mix)
128 |
129 | x_layer1 = Conv2D(10,(1,1),activation='relu')(x_layer1)
130 | x_layer1 = AveragePooling2D(8,8)(x_layer1)
131 | x_layer1 = Flatten()(x_layer1)
132 | x_layer1_mix = Dropout(0.2)(x_layer1)
133 | x_layer1_mix = Dense(self.stage_num[2],activation='relu')(x_layer1_mix)
134 |
135 | feat_a_s3_pre = Multiply()([s_layer1,x_layer1])
136 | delta_s3 = Dense(1,activation='tanh',name='delta_s3')(feat_a_s3_pre)
137 |
138 | feat_a_s3 = Multiply()([s_layer1_mix,x_layer1_mix])
139 | feat_a_s3 = Dense(2*self.stage_num[2],activation='relu')(feat_a_s3)
140 | pred_a_s3 = Dense(units=self.stage_num[2], activation="relu",name='pred_age_stage3')(feat_a_s3)
141 | #feat_local_s3 = Lambda(lambda x: x/10)(feat_a_s3)
142 | #feat_a_s3_local = Dropout(0.2)(pred_a_s3)
143 | local_s3 = Dense(units=self.stage_num[2], activation='tanh', name='local_delta_stage3')(feat_a_s3)
144 | #-------------------------------------------------------------------------------------------------------------------------
145 |
146 | def merge_age(x,s1,s2,s3,lambda_local,lambda_d):
147 | a = x[0][:,0]*0
148 | b = x[0][:,0]*0
149 | c = x[0][:,0]*0
150 | A = s1*s2*s3
151 | V = 101
152 |
153 | for i in range(0,s1):
154 | a = a+(i+lambda_local*x[6][:,i])*x[0][:,i]
155 | a = K.expand_dims(a,-1)
156 | a = a/(s1*(1+lambda_d*x[3]))
157 |
158 | for j in range(0,s2):
159 | b = b+(j+lambda_local*x[7][:,j])*x[1][:,j]
160 | b = K.expand_dims(b,-1)
161 | b = b/(s1*(1+lambda_d*x[3]))/(s2*(1+lambda_d*x[4]))
162 |
163 | for k in range(0,s3):
164 | c = c+(k+lambda_local*x[8][:,k])*x[2][:,k]
165 | c = K.expand_dims(c,-1)
166 | c = c/(s1*(1+lambda_d*x[3]))/(s2*(1+lambda_d*x[4]))/(s3*(1+lambda_d*x[5]))
167 |
168 |
169 | age = (a+b+c)*V
170 | return age
171 |
172 | pred_a = Lambda(merge_age,arguments={'s1':self.stage_num[0],'s2':self.stage_num[1],'s3':self.stage_num[2],'lambda_local':self.lambda_local,'lambda_d':self.lambda_d},output_shape=(1,),name='pred_a')([pred_a_s1,pred_a_s2,pred_a_s3,delta_s1,delta_s2,delta_s3, local_s1, local_s2, local_s3])
173 |
174 | model = Model(inputs=inputs, outputs=pred_a)
175 | return model
176 |
177 |
178 |
--------------------------------------------------------------------------------
/SSRNET/SSRNET_train.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import logging
3 | import argparse
4 | import os
5 | os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
6 | import tensorflow as tf
7 |
8 | from keras.callbacks import ModelCheckpoint
9 | from keras.optimizers import Adam
10 | from SSRNET_model import SSR_net
11 | from TYY_utils import mk_dir, load_data_npz
12 | import numpy as np
13 | import TYY_callbacks
14 | from TYY_generators import *
15 | from keras.utils import plot_model
16 | from moviepy.editor import *
17 | logging.basicConfig(level=logging.DEBUG)
18 |
19 |
20 |
21 |
22 | def get_args():
23 | parser = argparse.ArgumentParser(description="This script trains the CNN model for age and gender estimation.",
24 | formatter_class=argparse.ArgumentDefaultsHelpFormatter)
25 | parser.add_argument("--input1", "-i1", type=str, required=True,
26 | help="path to input1 database npz file")
27 | parser.add_argument("--input2", "-i2", type=str, required=True,
28 | help="path to input2 database npz file")
29 | parser.add_argument("--db", type=str, required=True,
30 | help="database name")
31 | parser.add_argument("--batch_size", type=int, default=128,
32 | help="batch size")
33 | parser.add_argument("--nb_epochs", type=int, default=90,
34 | help="number of epochs")
35 | parser.add_argument("--netType1", type=int, required=True,
36 | help="network type 1")
37 | parser.add_argument("--netType2", type=int, required=True,
38 | help="network type 2")
39 |
40 | args = parser.parse_args()
41 | return args
42 |
43 |
44 |
45 | def main():
46 | args = get_args()
47 | input_path1 = args.input1
48 | input_path2 = args.input2
49 | db_name = args.db
50 | batch_size = args.batch_size
51 | nb_epochs = args.nb_epochs
52 | netType1 = args.netType1
53 | netType2 = args.netType2
54 |
55 | logging.debug("Loading training data...")
56 | image1, age1, image_size = load_data_npz(input_path1)
57 | logging.debug("Loading testing data...")
58 | image2, age2, image_size = load_data_npz(input_path2)
59 |
60 |
61 | start_decay_epoch = [30,60]
62 |
63 | optMethod = Adam()
64 |
65 | stage_num = [3,3,3]
66 | lambda_local = 0.25*(netType1%5)
67 | lambda_d = 0.25*(netType2%5)
68 |
69 | model = SSR_net(image_size,stage_num, lambda_local, lambda_d)()
70 | save_name = 'ssrnet_%d_%d_%d_%d_%s_%s' % (stage_num[0],stage_num[1],stage_num[2], image_size, lambda_local, lambda_d)
71 | model.compile(optimizer=optMethod, loss=["mae"], metrics={'pred_a':'mae'})
72 |
73 | if db_name == "megaage":
74 | weight_file = "./pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.h5"
75 | model.load_weights(weight_file)
76 |
77 | logging.debug("Model summary...")
78 | model.count_params()
79 | model.summary()
80 |
81 | logging.debug("Saving model...")
82 | mk_dir(db_name+"_models")
83 | mk_dir(db_name+"_models/batch_size_%d/"%(batch_size))
84 | mk_dir(db_name+"_models/batch_size_%d/"%(batch_size)+save_name)
85 | mk_dir(db_name+"_checkpoints")
86 | mk_dir(db_name+"_checkpoints/batch_size_%d/"%(batch_size))
87 | plot_model(model, to_file=db_name+"_models/batch_size_%d/"%(batch_size)+save_name+"/"+save_name+".png")
88 |
89 | with open(os.path.join(db_name+"_models/batch_size_%d/"%(batch_size)+save_name, save_name+'.json'), "w") as f:
90 | f.write(model.to_json())
91 |
92 | decaylearningrate = TYY_callbacks.DecayLearningRate(start_decay_epoch)
93 |
94 | callbacks = [ModelCheckpoint(db_name+"_checkpoints/batch_size_%d/"%(batch_size)+"weights.{epoch:02d}-{val_loss:.2f}.hdf5",
95 | monitor="val_loss",
96 | verbose=1,
97 | save_best_only=True,
98 | mode="auto"), decaylearningrate
99 | ]
100 | logging.debug("Running training...")
101 |
102 | data_num = len(image1)+len(image2)
103 | indexes1 = np.arange(len(image1))
104 | indexes2 = np.arange(len(image2))
105 | np.random.shuffle(indexes1)
106 | np.random.shuffle(indexes2)
107 | x_train = image1[indexes1]
108 | x_test = image2[indexes2]
109 | y_train_a = age1[indexes1]
110 | y_test_a = age2[indexes2]
111 | train_num = len(image1)
112 |
113 | hist = model.fit_generator(generator=data_generator_reg(X=x_train, Y=y_train_a, batch_size=batch_size),
114 | steps_per_epoch=train_num // batch_size,
115 | validation_data=(x_test, [y_test_a]),
116 | epochs=nb_epochs, verbose=1,
117 | callbacks=callbacks)
118 |
119 | logging.debug("Saving weights...")
120 | model.save_weights(os.path.join(db_name+"_models/batch_size_%d/"%(batch_size)+save_name, save_name+'.h5'), overwrite=True)
121 | pd.DataFrame(hist.history).to_hdf(os.path.join(db_name+"_models/batch_size_%d/"%(batch_size)+save_name, 'history_'+save_name+'.h5'), "history")
122 |
123 |
124 | if __name__ == '__main__':
125 | main()
126 |
127 |
--------------------------------------------------------------------------------
/SSRNET/TYY_callbacks.py:
--------------------------------------------------------------------------------
1 | import keras
2 | from sklearn.metrics import roc_auc_score
3 | import sys
4 | import matplotlib.pyplot as plt
5 | from keras.models import Model
6 | import numpy as np
7 | from keras import backend as K
8 |
9 |
10 | class DecayLearningRate(keras.callbacks.Callback):
11 | def __init__(self, startEpoch):
12 | self.startEpoch = startEpoch
13 |
14 | def on_train_begin(self, logs={}):
15 | return
16 | def on_train_end(self, logs={}):
17 | return
18 |
19 | def on_epoch_begin(self, epoch, logs={}):
20 | if epoch in self.startEpoch:
21 | if epoch == 0:
22 | ratio = 1
23 | else:
24 | ratio = 0.1
25 | LR = K.get_value(self.model.optimizer.lr)
26 | K.set_value(self.model.optimizer.lr,LR*ratio)
27 | return
28 |
29 | def on_epoch_end(self, epoch, logs={}):
30 | return
31 |
32 | def on_batch_begin(self, batch, logs={}):
33 | return
34 |
35 | def on_batch_end(self, batch, logs={}):
36 | return
37 |
--------------------------------------------------------------------------------
/SSRNET/TYY_generators.py:
--------------------------------------------------------------------------------
1 | import keras
2 | import numpy as np
3 | import sys
4 | from scipy import misc
5 | import tensorflow as tf
6 |
7 |
8 | def random_crop(x,dn):
9 | dx = np.random.randint(dn,size=1)[0]
10 | dy = np.random.randint(dn,size=1)[0]
11 | w = x.shape[0]
12 | h = x.shape[1]
13 | out = x[0+dx:w-(dn-dx),0+dy:h-(dn-dy),:]
14 | out = misc.imresize(out, (w,h), interp='nearest')
15 | return out
16 |
17 | def augment_data(images):
18 | for i in range(0,images.shape[0]):
19 |
20 | if np.random.random() > 0.5:
21 | images[i] = images[i][:,::-1]
22 | """
23 | if np.random.random() > 0.5:
24 | images[i] = random_crop(images[i],4)
25 | """
26 | if np.random.random() > 0.75:
27 | images[i] = tf.contrib.keras.preprocessing.image.random_rotation(images[i], 20, row_axis=0, col_axis=1, channel_axis=2)
28 | if np.random.random() > 0.75:
29 | images[i] = tf.contrib.keras.preprocessing.image.random_shear(images[i], 0.2, row_axis=0, col_axis=1, channel_axis=2)
30 | if np.random.random() > 0.75:
31 | images[i] = tf.contrib.keras.preprocessing.image.random_shift(images[i], 0.2, 0.2, row_axis=0, col_axis=1, channel_axis=2)
32 | if np.random.random() > 0.75:
33 | images[i] = tf.contrib.keras.preprocessing.image.random_zoom(images[i], [0.8,1.2], row_axis=0, col_axis=1, channel_axis=2)
34 |
35 | return images
36 |
37 |
38 | def data_generator_reg(X,Y,batch_size):
39 |
40 | while True:
41 | idxs = np.random.permutation(len(X))
42 | X = X[idxs]
43 | Y = Y[idxs]
44 | p,q = [],[]
45 | for i in range(len(X)):
46 | p.append(X[i])
47 | q.append(Y[i])
48 | if len(p) == batch_size:
49 | yield augment_data(np.array(p)),np.array(q)
50 | p,q = [],[]
51 | if p:
52 | yield augment_data(np.array(p)),np.array(q)
53 | p,q = [],[]
54 |
55 | def data_generator_dex(X,Y,batch_size):
56 |
57 | Y1 = Y[0]
58 | Y2 = Y[1]
59 |
60 | while True:
61 | idxs = np.random.permutation(len(X))
62 | X = X[idxs]
63 | Y1 = Y1[idxs]
64 | Y2 = Y2[idxs]
65 | p,q1,q2 = [],[],[]
66 | for i in range(len(X)):
67 | p.append(X[i])
68 | q1.append(Y1[i])
69 | q2.append(Y2[i])
70 | if len(p) == batch_size:
71 | yield augment_data(np.array(p)),[np.array(q1),np.array(q2)]
72 | p,q1,q2 = [],[],[]
73 | if p:
74 | yield augment_data(np.array(p)),[np.array(q1),np.array(q2)]
75 | p,q1,q2 = [],[],[]
76 |
77 | def data_generator_dex_centerloss(X,Y,batch_size):
78 | X1 = X[0]
79 | X2 = X[1]
80 | Y1 = Y[0]
81 | Y2 = Y[1]
82 | Y3 = Y[2]
83 | while True:
84 | idxs = np.random.permutation(len(X1))
85 | X1 = X1[idxs] #images
86 | X2 = X2[idxs] #labels for center loss
87 | Y1 = Y1[idxs]
88 | Y2 = Y2[idxs]
89 | Y3 = Y3[idxs]
90 | p1,p2,q1,q2,q3 = [],[],[],[],[]
91 | for i in range(len(X1)):
92 | p1.append(X1[i])
93 | p2.append(X2[i])
94 | q1.append(Y1[i])
95 | q2.append(Y2[i])
96 | q3.append(Y3[i])
97 | if len(p1) == batch_size:
98 | yield [augment_data(np.array(p1)),np.array(p2)],[np.array(q1),np.array(q2),np.array(q3)]
99 | p1,p2,q1,q2,q3 = [],[],[],[],[]
100 | if p1:
101 | yield [augment_data(np.array(p1)),np.array(p2)],[np.array(q1),np.array(q2),np.array(q3)]
102 | p1,p2,q1,q2,q3 = [],[],[],[],[]
--------------------------------------------------------------------------------
/SSRNET/TYY_utils.py:
--------------------------------------------------------------------------------
1 | # modifided from https://github.com/yu4u/age-gender-estimation
2 |
3 | from scipy.io import loadmat
4 | from datetime import datetime
5 | import os
6 | import numpy as np
7 |
8 | def calc_age(taken, dob):
9 | birth = datetime.fromordinal(max(int(dob) - 366, 1))
10 |
11 | # assume the photo was taken in the middle of the year
12 | if birth.month < 7:
13 | return taken - birth.year
14 | else:
15 | return taken - birth.year - 1
16 |
17 |
18 | def get_meta(mat_path, db):
19 | meta = loadmat(mat_path)
20 | full_path = meta[db][0, 0]["full_path"][0]
21 | dob = meta[db][0, 0]["dob"][0] # Matlab serial date number
22 | gender = meta[db][0, 0]["gender"][0]
23 | photo_taken = meta[db][0, 0]["photo_taken"][0] # year
24 | face_score = meta[db][0, 0]["face_score"][0]
25 | second_face_score = meta[db][0, 0]["second_face_score"][0]
26 | age = [calc_age(photo_taken[i], dob[i]) for i in range(len(dob))]
27 |
28 | return full_path, dob, gender, photo_taken, face_score, second_face_score, age
29 |
30 |
31 | def load_data(mat_path):
32 | d = loadmat(mat_path)
33 |
34 | return d["image"], d["gender"][0], d["age"][0], d["db"][0], d["img_size"][0, 0], d["min_score"][0, 0]
35 |
36 | '''
37 | def load_MORPH_data_npz(npz_path):
38 | d = np.load(npz_path)
39 |
40 | return d["image"], d["gender"], d["age"], d["img_size"]
41 | '''
42 | def load_data_npz(npz_path):
43 | d = np.load(npz_path)
44 |
45 | return d["image"], d["age"], d["img_size"]
46 |
47 | def mk_dir(dir):
48 | try:
49 | os.mkdir( dir )
50 | except OSError:
51 | pass
52 |
--------------------------------------------------------------------------------
/SSRNET/subpixel.py:
--------------------------------------------------------------------------------
1 | #https://github.com/titu1994/DenseNet
2 | from __future__ import absolute_import
3 |
4 | from keras import backend as K
5 | from keras.engine import Layer
6 | from keras.utils.generic_utils import get_custom_objects
7 | from keras.utils.conv_utils import normalize_data_format
8 |
9 | if K.backend() == 'theano':
10 | import theano_backend as K_BACKEND
11 | else:
12 | import tensorflow_backend as K_BACKEND
13 |
14 | class SubPixelUpscaling(Layer):
15 | """ Sub-pixel convolutional upscaling layer based on the paper "Real-Time Single Image
16 | and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network"
17 | (https://arxiv.org/abs/1609.05158).
18 | This layer requires a Convolution2D prior to it, having output filters computed according to
19 | the formula :
20 | filters = k * (scale_factor * scale_factor)
21 | where k = a user defined number of filters (generally larger than 32)
22 | scale_factor = the upscaling factor (generally 2)
23 | This layer performs the depth to space operation on the convolution filters, and returns a
24 | tensor with the size as defined below.
25 | # Example :
26 | ```python
27 | # A standard subpixel upscaling block
28 | x = Convolution2D(256, 3, 3, padding='same', activation='relu')(...)
29 | u = SubPixelUpscaling(scale_factor=2)(x)
30 | [Optional]
31 | x = Convolution2D(256, 3, 3, padding='same', activation='relu')(u)
32 | ```
33 | In practice, it is useful to have a second convolution layer after the
34 | SubPixelUpscaling layer to speed up the learning process.
35 | However, if you are stacking multiple SubPixelUpscaling blocks, it may increase
36 | the number of parameters greatly, so the Convolution layer after SubPixelUpscaling
37 | layer can be removed.
38 | # Arguments
39 | scale_factor: Upscaling factor.
40 | data_format: Can be None, 'channels_first' or 'channels_last'.
41 | # Input shape
42 | 4D tensor with shape:
43 | `(samples, k * (scale_factor * scale_factor) channels, rows, cols)` if data_format='channels_first'
44 | or 4D tensor with shape:
45 | `(samples, rows, cols, k * (scale_factor * scale_factor) channels)` if data_format='channels_last'.
46 | # Output shape
47 | 4D tensor with shape:
48 | `(samples, k channels, rows * scale_factor, cols * scale_factor))` if data_format='channels_first'
49 | or 4D tensor with shape:
50 | `(samples, rows * scale_factor, cols * scale_factor, k channels)` if data_format='channels_last'.
51 | """
52 |
53 | def __init__(self, scale_factor=2, data_format=None, **kwargs):
54 | super(SubPixelUpscaling, self).__init__(**kwargs)
55 |
56 | self.scale_factor = scale_factor
57 | self.data_format = normalize_data_format(data_format)
58 |
59 | def build(self, input_shape):
60 | pass
61 |
62 | def call(self, x, mask=None):
63 | y = K_BACKEND.depth_to_space(x, self.scale_factor, self.data_format)
64 | return y
65 |
66 | def compute_output_shape(self, input_shape):
67 | if self.data_format == 'channels_first':
68 | b, k, r, c = input_shape
69 | return (b, k // (self.scale_factor ** 2), r * self.scale_factor, c * self.scale_factor)
70 | else:
71 | b, r, c, k = input_shape
72 | return (b, r * self.scale_factor, c * self.scale_factor, k // (self.scale_factor ** 2))
73 |
74 | def get_config(self):
75 | config = {'scale_factor': self.scale_factor,
76 | 'data_format': self.data_format}
77 | base_config = super(SubPixelUpscaling, self).get_config()
78 | return dict(list(base_config.items()) + list(config.items()))
79 |
80 |
81 | get_custom_objects().update({'SubPixelUpscaling': SubPixelUpscaling})
82 |
--------------------------------------------------------------------------------
/SSRNET/tensorflow_backend.py:
--------------------------------------------------------------------------------
1 | #https://github.com/titu1994/DenseNet
2 | import tensorflow as tf
3 |
4 | from keras.backend import tensorflow_backend as KTF
5 | from keras.backend.common import image_data_format
6 |
7 | py_all = all
8 |
9 |
10 | def _preprocess_conv2d_input(x, data_format):
11 | """Transpose and cast the input before the conv2d.
12 | # Arguments
13 | x: input tensor.
14 | data_format: string, `"channels_last"` or `"channels_first"`.
15 | # Returns
16 | A tensor.
17 | """
18 | if dtype(x) == 'float64':
19 | x = tf.cast(x, 'float32')
20 | if data_format == 'channels_first':
21 | # TF uses the last dimension as channel dimension,
22 | # instead of the 2nd one.
23 | # TH input shape: (samples, input_depth, rows, cols)
24 | # TF input shape: (samples, rows, cols, input_depth)
25 | x = tf.transpose(x, (0, 2, 3, 1))
26 | return x
27 |
28 |
29 | def _postprocess_conv2d_output(x, data_format):
30 | """Transpose and cast the output from conv2d if needed.
31 | # Arguments
32 | x: A tensor.
33 | data_format: string, `"channels_last"` or `"channels_first"`.
34 | # Returns
35 | A tensor.
36 | """
37 |
38 | if data_format == 'channels_first':
39 | x = tf.transpose(x, (0, 3, 1, 2))
40 |
41 | if floatx() == 'float64':
42 | x = tf.cast(x, 'float64')
43 | return x
44 |
45 |
46 | def depth_to_space(input, scale, data_format=None):
47 | ''' Uses phase shift algorithm to convert channels/depth for spatial resolution '''
48 | if data_format is None:
49 | data_format = image_data_format()
50 | data_format = data_format.lower()
51 | input = _preprocess_conv2d_input(input, data_format)
52 | out = tf.depth_to_space(input, scale)
53 | out = _postprocess_conv2d_output(out, data_format)
54 | return out
55 |
--------------------------------------------------------------------------------
/TYY_Megaage_asian_create_db.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import cv2
3 | import scipy.io
4 | import argparse
5 | from tqdm import tqdm
6 | from os import listdir
7 | from os.path import isfile, join
8 | import sys
9 | import dlib
10 | from moviepy.editor import *
11 |
12 |
13 | def get_args():
14 | parser = argparse.ArgumentParser(description="This script cleans-up noisy labels "
15 | "and creates database for training.",
16 | formatter_class=argparse.ArgumentDefaultsHelpFormatter)
17 | parser.add_argument("--output", "-o", type=str,
18 | help="path to output database mat file")
19 | parser.add_argument("--img_size", type=int, default=64,
20 | help="output image size")
21 |
22 | args = parser.parse_args()
23 | return args
24 |
25 |
26 | def main():
27 | args = get_args()
28 | output_path = './data/megaage_test'
29 | #output_path = './data/megaage_train'
30 | img_size = args.img_size
31 |
32 | mypath = './megaage_asian/test'
33 | #mypath = './megaage_asian/train'
34 | isPlot = False
35 |
36 | age_file = np.loadtxt('./megaage_asian/list/test_age.txt')
37 | #age_file = np.loadtxt('./megaage_asian/list/train_age.txt')
38 | img_name_file = np.genfromtxt('./megaage_asian/list/test_name.txt',dtype='str')
39 | #img_name_file = np.genfromtxt('./megaage_asian/list/train_name.txt',dtype='str')
40 | out_ages = []
41 | out_imgs = []
42 |
43 | for i in tqdm(range(len(img_name_file))):
44 |
45 | input_img = cv2.imread(mypath+'/'+img_name_file[i])
46 | input_img = input_img[20:-20,:,:]
47 | img_h, img_w, _ = np.shape(input_img)
48 | age = int(float(age_file[i]))
49 | if age >= -1:
50 | if isPlot:
51 | img_clip = ImageClip(input_img)
52 | img_clip.show()
53 | key = cv2.waitKey(1000)
54 |
55 | input_img = cv2.resize(input_img,(img_size,img_size))
56 | #only add to the list when faces is detected
57 | out_imgs.append(input_img)
58 | out_ages.append(int(age))
59 |
60 | np.savez(output_path,image=np.array(out_imgs), age=np.array(out_ages), img_size=img_size)
61 |
62 | if __name__ == '__main__':
63 | main()
64 |
--------------------------------------------------------------------------------
/data/README.md:
--------------------------------------------------------------------------------
1 | Create megaage_train.npz and megaage_test.npz by running
2 |
3 | ```
4 | python TYY_Megaage_asian_create_db.py
5 | ```
6 | or
7 |
8 | Download from https://drive.google.com/open?id=1CismL8x4gi3sAfTi3qpxedWSStTPsrcp
9 |
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/densenet_reg_19_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/densenet_reg_19_64.h5
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/densenet_reg_19_64.json:
--------------------------------------------------------------------------------
1 | {"backend": "tensorflow", "class_name": "Model", "config": {"name": "model_1", "input_layers": [["input_1", 0, 0]], "output_layers": [["pred_a", 0, 0]], "layers": [{"name": "input_1", "class_name": "InputLayer", "inbound_nodes": [], "config": {"batch_input_shape": [null, 64, 64, 3], "dtype": "float32", "sparse": false, "name": "input_1"}}, {"name": "densenet", "class_name": "Model", "inbound_nodes": [[["input_1", 0, 0, {}]]], "config": {"name": "densenet", "input_layers": [["input_2", 0, 0]], "output_layers": [["global_average_pooling2d_1", 0, 0]], "layers": [{"name": "input_2", "inbound_nodes": [], "class_name": "InputLayer", "config": {"batch_input_shape": [null, 64, 64, 3], "dtype": "float32", "sparse": false, "name": "input_2"}}, {"name": "conv2d_1", "inbound_nodes": [[["input_2", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_1", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 24, "kernel_constraint": null}}, {"name": "batch_normalization_1", "inbound_nodes": [[["conv2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_1", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_1", "inbound_nodes": [[["batch_normalization_1", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_1", "activation": "relu", "trainable": true}}, {"name": "conv2d_2", "inbound_nodes": [[["activation_1", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_2", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_1", "inbound_nodes": [[["conv2d_1", 0, 0, {}], ["conv2d_2", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_1", "axis": -1, "trainable": true}}, {"name": "batch_normalization_2", "inbound_nodes": [[["concatenate_1", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_2", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_2", "inbound_nodes": [[["batch_normalization_2", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_2", "activation": "relu", "trainable": true}}, {"name": "conv2d_3", "inbound_nodes": [[["activation_2", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_3", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_2", "inbound_nodes": [[["concatenate_1", 0, 0, {}], ["conv2d_3", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_2", "axis": -1, "trainable": true}}, {"name": "batch_normalization_3", "inbound_nodes": [[["concatenate_2", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_3", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_3", "inbound_nodes": [[["batch_normalization_3", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_3", "activation": "relu", "trainable": true}}, {"name": "conv2d_4", "inbound_nodes": [[["activation_3", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_4", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_3", "inbound_nodes": [[["concatenate_2", 0, 0, {}], ["conv2d_4", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_3", "axis": -1, "trainable": true}}, {"name": "batch_normalization_4", "inbound_nodes": [[["concatenate_3", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_4", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_4", "inbound_nodes": [[["batch_normalization_4", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_4", "activation": "relu", "trainable": true}}, {"name": "conv2d_5", "inbound_nodes": [[["activation_4", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_5", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_4", "inbound_nodes": [[["concatenate_3", 0, 0, {}], ["conv2d_5", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_4", "axis": -1, "trainable": true}}, {"name": "batch_normalization_5", "inbound_nodes": [[["concatenate_4", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_5", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_5", "inbound_nodes": [[["batch_normalization_5", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_5", "activation": "relu", "trainable": true}}, {"name": "conv2d_6", "inbound_nodes": [[["activation_5", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_6", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_5", "inbound_nodes": [[["concatenate_4", 0, 0, {}], ["conv2d_6", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_5", "axis": -1, "trainable": true}}, {"name": "batch_normalization_6", "inbound_nodes": [[["concatenate_5", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_6", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_6", "inbound_nodes": [[["batch_normalization_6", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_6", "activation": "relu", "trainable": true}}, {"name": "conv2d_7", "inbound_nodes": [[["activation_6", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [1, 1], "name": "conv2d_7", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 84, "kernel_constraint": null}}, {"name": "average_pooling2d_1", "inbound_nodes": [[["conv2d_7", 0, 0, {}]]], "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_1", "padding": "valid", "strides": [2, 2], "trainable": true, "data_format": "channels_last", "pool_size": [2, 2]}}, {"name": "batch_normalization_7", "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_7", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_7", "inbound_nodes": [[["batch_normalization_7", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_7", "activation": "relu", "trainable": true}}, {"name": "conv2d_8", "inbound_nodes": [[["activation_7", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_8", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_6", "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}], ["conv2d_8", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_6", "axis": -1, "trainable": true}}, {"name": "batch_normalization_8", "inbound_nodes": [[["concatenate_6", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_8", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_8", "inbound_nodes": [[["batch_normalization_8", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_8", "activation": "relu", "trainable": true}}, {"name": "conv2d_9", "inbound_nodes": [[["activation_8", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_9", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_7", "inbound_nodes": [[["concatenate_6", 0, 0, {}], ["conv2d_9", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_7", "axis": -1, "trainable": true}}, {"name": "batch_normalization_9", "inbound_nodes": [[["concatenate_7", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_9", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_9", "inbound_nodes": [[["batch_normalization_9", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_9", "activation": "relu", "trainable": true}}, {"name": "conv2d_10", "inbound_nodes": [[["activation_9", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_10", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_8", "inbound_nodes": [[["concatenate_7", 0, 0, {}], ["conv2d_10", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_8", "axis": -1, "trainable": true}}, {"name": "batch_normalization_10", "inbound_nodes": [[["concatenate_8", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_10", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_10", "inbound_nodes": [[["batch_normalization_10", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_10", "activation": "relu", "trainable": true}}, {"name": "conv2d_11", "inbound_nodes": [[["activation_10", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_11", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_9", "inbound_nodes": [[["concatenate_8", 0, 0, {}], ["conv2d_11", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_9", "axis": -1, "trainable": true}}, {"name": "batch_normalization_11", "inbound_nodes": [[["concatenate_9", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_11", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_11", "inbound_nodes": [[["batch_normalization_11", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_11", "activation": "relu", "trainable": true}}, {"name": "conv2d_12", "inbound_nodes": [[["activation_11", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_12", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_10", "inbound_nodes": [[["concatenate_9", 0, 0, {}], ["conv2d_12", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_10", "axis": -1, "trainable": true}}, {"name": "batch_normalization_12", "inbound_nodes": [[["concatenate_10", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_12", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_12", "inbound_nodes": [[["batch_normalization_12", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_12", "activation": "relu", "trainable": true}}, {"name": "conv2d_13", "inbound_nodes": [[["activation_12", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [1, 1], "name": "conv2d_13", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 144, "kernel_constraint": null}}, {"name": "average_pooling2d_2", "inbound_nodes": [[["conv2d_13", 0, 0, {}]]], "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_2", "padding": "valid", "strides": [2, 2], "trainable": true, "data_format": "channels_last", "pool_size": [2, 2]}}, {"name": "batch_normalization_13", "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_13", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_13", "inbound_nodes": [[["batch_normalization_13", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_13", "activation": "relu", "trainable": true}}, {"name": "conv2d_14", "inbound_nodes": [[["activation_13", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_14", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_11", "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}], ["conv2d_14", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_11", "axis": -1, "trainable": true}}, {"name": "batch_normalization_14", "inbound_nodes": [[["concatenate_11", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_14", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_14", "inbound_nodes": [[["batch_normalization_14", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_14", "activation": "relu", "trainable": true}}, {"name": "conv2d_15", "inbound_nodes": [[["activation_14", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_15", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_12", "inbound_nodes": [[["concatenate_11", 0, 0, {}], ["conv2d_15", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_12", "axis": -1, "trainable": true}}, {"name": "batch_normalization_15", "inbound_nodes": [[["concatenate_12", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_15", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_15", "inbound_nodes": [[["batch_normalization_15", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_15", "activation": "relu", "trainable": true}}, {"name": "conv2d_16", "inbound_nodes": [[["activation_15", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_16", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_13", "inbound_nodes": [[["concatenate_12", 0, 0, {}], ["conv2d_16", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_13", "axis": -1, "trainable": true}}, {"name": "batch_normalization_16", "inbound_nodes": [[["concatenate_13", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_16", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_16", "inbound_nodes": [[["batch_normalization_16", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_16", "activation": "relu", "trainable": true}}, {"name": "conv2d_17", "inbound_nodes": [[["activation_16", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_17", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_14", "inbound_nodes": [[["concatenate_13", 0, 0, {}], ["conv2d_17", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_14", "axis": -1, "trainable": true}}, {"name": "batch_normalization_17", "inbound_nodes": [[["concatenate_14", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_17", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_17", "inbound_nodes": [[["batch_normalization_17", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_17", "activation": "relu", "trainable": true}}, {"name": "conv2d_18", "inbound_nodes": [[["activation_17", 0, 0, {}]]], "class_name": "Conv2D", "config": {"activation": "linear", "kernel_size": [3, 3], "name": "conv2d_18", "strides": [1, 1], "activity_regularizer": null, "data_format": "channels_last", "bias_constraint": null, "bias_regularizer": null, "kernel_regularizer": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "mode": "fan_in", "scale": 2.0, "seed": null}}, "padding": "same", "bias_initializer": {"class_name": "Zeros", "config": {}}, "trainable": true, "use_bias": false, "dilation_rate": [1, 1], "filters": 12, "kernel_constraint": null}}, {"name": "concatenate_15", "inbound_nodes": [[["concatenate_14", 0, 0, {}], ["conv2d_18", 0, 0, {}]]], "class_name": "Concatenate", "config": {"name": "concatenate_15", "axis": -1, "trainable": true}}, {"name": "batch_normalization_18", "inbound_nodes": [[["concatenate_15", 0, 0, {}]]], "class_name": "BatchNormalization", "config": {"epsilon": 1.1e-05, "gamma_initializer": {"class_name": "Ones", "config": {}}, "axis": -1, "gamma_constraint": null, "beta_regularizer": null, "center": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "name": "batch_normalization_18", "beta_constraint": null, "gamma_regularizer": null, "trainable": true, "momentum": 0.99, "scale": true, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}}}, {"name": "activation_18", "inbound_nodes": [[["batch_normalization_18", 0, 0, {}]]], "class_name": "Activation", "config": {"name": "activation_18", "activation": "relu", "trainable": true}}, {"name": "global_average_pooling2d_1", "inbound_nodes": [[["activation_18", 0, 0, {}]]], "class_name": "GlobalAveragePooling2D", "config": {"name": "global_average_pooling2d_1", "data_format": "channels_last", "trainable": true}}]}}, {"name": "dense_1", "class_name": "Dense", "inbound_nodes": [[["densenet", 1, 0, {}]]], "config": {"bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "activation": "relu", "trainable": true, "bias_regularizer": null, "activity_regularizer": null, "units": 128, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "mode": "fan_avg", "scale": 1.0, "seed": null}}, "bias_constraint": null, "name": "dense_1", "use_bias": true, "kernel_constraint": null}}, {"name": "dropout_1", "class_name": "Dropout", "inbound_nodes": [[["dense_1", 0, 0, {}]]], "config": {"name": "dropout_1", "rate": 0.2, "trainable": true}}, {"name": "feat_a", "class_name": "Dense", "inbound_nodes": [[["dropout_1", 0, 0, {}]]], "config": {"bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "activation": "relu", "trainable": true, "bias_regularizer": null, "activity_regularizer": null, "units": 32, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "mode": "fan_avg", "scale": 1.0, "seed": null}}, "bias_constraint": null, "name": "feat_a", "use_bias": true, "kernel_constraint": null}}, {"name": "pred_a", "class_name": "Dense", "inbound_nodes": [[["feat_a", 0, 0, {}]]], "config": {"bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "activation": "linear", "trainable": true, "bias_regularizer": null, "activity_regularizer": null, "units": 1, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "mode": "fan_avg", "scale": 1.0, "seed": null}}, "bias_constraint": null, "name": "pred_a", "use_bias": true, "kernel_constraint": null}}]}, "keras_version": "2.0.6"}
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/densenet_reg_19_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/densenet_reg_19_64.png
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/history_densenet_reg_19_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/history_densenet_reg_19_64.h5
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/loss.pdf
--------------------------------------------------------------------------------
/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/DenseNet/batch_size_50/densenet_reg_19_64/performance.pdf
--------------------------------------------------------------------------------
/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/history_mobilenet_reg_0.25_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/history_mobilenet_reg_0.25_64.h5
--------------------------------------------------------------------------------
/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.h5
--------------------------------------------------------------------------------
/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/MobileNet/batch_size_50/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.png
--------------------------------------------------------------------------------
/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/history_ssrnet_3_3_3_64_1.0_1.0.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/history_ssrnet_3_3_3_64_1.0_1.0.h5
--------------------------------------------------------------------------------
/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.h5
--------------------------------------------------------------------------------
/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.json:
--------------------------------------------------------------------------------
1 | {"class_name": "Model", "config": {"name": "model_1", "layers": [{"name": "input_1", "class_name": "InputLayer", "config": {"batch_input_shape": [null, 64, 64, 3], "dtype": "float32", "sparse": false, "name": "input_1"}, "inbound_nodes": []}, {"name": "conv2d_5", "class_name": "Conv2D", "config": {"name": "conv2d_5", "trainable": true, "filters": 16, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["input_1", 0, 0, {}]]]}, {"name": "conv2d_1", "class_name": "Conv2D", "config": {"name": "conv2d_1", "trainable": true, "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["input_1", 0, 0, {}]]]}, {"name": "batch_normalization_5", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_5", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_5", 0, 0, {}]]]}, {"name": "batch_normalization_1", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_1", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_1", 0, 0, {}]]]}, {"name": "activation_5", "class_name": "Activation", "config": {"name": "activation_5", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_5", 0, 0, {}]]]}, {"name": "activation_1", "class_name": "Activation", "config": {"name": "activation_1", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_1", 0, 0, {}]]]}, {"name": "max_pooling2d_1", "class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_1", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_5", 0, 0, {}]]]}, {"name": "average_pooling2d_1", "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_1", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_1", 0, 0, {}]]]}, {"name": "conv2d_6", "class_name": "Conv2D", "config": {"name": "conv2d_6", "trainable": true, "filters": 16, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["max_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_2", "class_name": "Conv2D", "config": {"name": "conv2d_2", "trainable": true, "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]]}, {"name": "batch_normalization_6", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_6", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_6", 0, 0, {}]]]}, {"name": "batch_normalization_2", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_2", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_2", 0, 0, {}]]]}, {"name": "activation_6", "class_name": "Activation", "config": {"name": "activation_6", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_6", 0, 0, {}]]]}, {"name": "activation_2", "class_name": "Activation", "config": {"name": "activation_2", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_2", 0, 0, {}]]]}, {"name": "max_pooling2d_2", "class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_2", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_6", 0, 0, {}]]]}, {"name": "average_pooling2d_2", "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_2", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_2", 0, 0, {}]]]}, {"name": "conv2d_7", "class_name": "Conv2D", "config": {"name": "conv2d_7", "trainable": true, "filters": 16, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["max_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_3", "class_name": "Conv2D", "config": {"name": "conv2d_3", "trainable": true, "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]]}, {"name": "batch_normalization_7", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_7", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_7", 0, 0, {}]]]}, {"name": "batch_normalization_3", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_3", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_3", 0, 0, {}]]]}, {"name": "activation_7", "class_name": "Activation", "config": {"name": "activation_7", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_7", 0, 0, {}]]]}, {"name": "activation_3", "class_name": "Activation", "config": {"name": "activation_3", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_3", 0, 0, {}]]]}, {"name": "max_pooling2d_3", "class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_3", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_7", 0, 0, {}]]]}, {"name": "average_pooling2d_3", "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_3", "trainable": true, "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}, "inbound_nodes": [[["activation_3", 0, 0, {}]]]}, {"name": "conv2d_8", "class_name": "Conv2D", "config": {"name": "conv2d_8", "trainable": true, "filters": 16, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["max_pooling2d_3", 0, 0, {}]]]}, {"name": "conv2d_4", "class_name": "Conv2D", "config": {"name": "conv2d_4", "trainable": true, "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["average_pooling2d_3", 0, 0, {}]]]}, {"name": "batch_normalization_8", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_8", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_8", 0, 0, {}]]]}, {"name": "batch_normalization_4", "class_name": "BatchNormalization", "config": {"name": "batch_normalization_4", "trainable": true, "axis": -1, "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "inbound_nodes": [[["conv2d_4", 0, 0, {}]]]}, {"name": "activation_8", "class_name": "Activation", "config": {"name": "activation_8", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_8", 0, 0, {}]]]}, {"name": "activation_4", "class_name": "Activation", "config": {"name": "activation_4", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_4", 0, 0, {}]]]}, {"name": "conv2d_11", "class_name": "Conv2D", "config": {"name": "conv2d_11", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["max_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_12", "class_name": "Conv2D", "config": {"name": "conv2d_12", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_13", "class_name": "Conv2D", "config": {"name": "conv2d_13", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["max_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_14", "class_name": "Conv2D", "config": {"name": "conv2d_14", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_9", "class_name": "Conv2D", "config": {"name": "conv2d_9", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["activation_8", 0, 0, {}]]]}, {"name": "conv2d_10", "class_name": "Conv2D", "config": {"name": "conv2d_10", "trainable": true, "filters": 10, "kernel_size": [1, 1], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["activation_4", 0, 0, {}]]]}, {"name": "max_pooling2d_4", "class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_4", "trainable": true, "pool_size": [4, 4], "padding": "valid", "strides": [4, 4], "data_format": "channels_last"}, "inbound_nodes": [[["conv2d_11", 0, 0, {}]]]}, {"name": "average_pooling2d_4", "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_4", "trainable": true, "pool_size": [4, 4], "padding": "valid", "strides": [4, 4], "data_format": "channels_last"}, "inbound_nodes": [[["conv2d_12", 0, 0, {}]]]}, {"name": "max_pooling2d_5", "class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_5", "trainable": true, "pool_size": [8, 8], "padding": "valid", "strides": [8, 8], "data_format": "channels_last"}, "inbound_nodes": [[["conv2d_13", 0, 0, {}]]]}, {"name": "average_pooling2d_5", "class_name": "AveragePooling2D", "config": {"name": "average_pooling2d_5", "trainable": true, "pool_size": [8, 8], "padding": "valid", "strides": [8, 8], "data_format": "channels_last"}, "inbound_nodes": [[["conv2d_14", 0, 0, {}]]]}, {"name": "flatten_1", "class_name": "Flatten", "config": {"name": "flatten_1", "trainable": true}, "inbound_nodes": [[["conv2d_9", 0, 0, {}]]]}, {"name": "flatten_2", "class_name": "Flatten", "config": {"name": "flatten_2", "trainable": true}, "inbound_nodes": [[["conv2d_10", 0, 0, {}]]]}, {"name": "flatten_3", "class_name": "Flatten", "config": {"name": "flatten_3", "trainable": true}, "inbound_nodes": [[["max_pooling2d_4", 0, 0, {}]]]}, {"name": "flatten_4", "class_name": "Flatten", "config": {"name": "flatten_4", "trainable": true}, "inbound_nodes": [[["average_pooling2d_4", 0, 0, {}]]]}, {"name": "flatten_5", "class_name": "Flatten", "config": {"name": "flatten_5", "trainable": true}, "inbound_nodes": [[["max_pooling2d_5", 0, 0, {}]]]}, {"name": "flatten_6", "class_name": "Flatten", "config": {"name": "flatten_6", "trainable": true}, "inbound_nodes": [[["average_pooling2d_5", 0, 0, {}]]]}, {"name": "dropout_1", "class_name": "Dropout", "config": {"name": "dropout_1", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_1", 0, 0, {}]]]}, {"name": "dropout_2", "class_name": "Dropout", "config": {"name": "dropout_2", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_2", 0, 0, {}]]]}, {"name": "dropout_3", "class_name": "Dropout", "config": {"name": "dropout_3", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_3", 0, 0, {}]]]}, {"name": "dropout_4", "class_name": "Dropout", "config": {"name": "dropout_4", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_4", 0, 0, {}]]]}, {"name": "dropout_5", "class_name": "Dropout", "config": {"name": "dropout_5", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_5", 0, 0, {}]]]}, {"name": "dropout_6", "class_name": "Dropout", "config": {"name": "dropout_6", "trainable": true, "rate": 0.2, "noise_shape": null, "seed": null}, "inbound_nodes": [[["flatten_6", 0, 0, {}]]]}, {"name": "dense_1", "class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_1", 0, 0, {}]]]}, {"name": "dense_2", "class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_2", 0, 0, {}]]]}, {"name": "dense_4", "class_name": "Dense", "config": {"name": "dense_4", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_3", 0, 0, {}]]]}, {"name": "dense_5", "class_name": "Dense", "config": {"name": "dense_5", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_4", 0, 0, {}]]]}, {"name": "dense_7", "class_name": "Dense", "config": {"name": "dense_7", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_5", 0, 0, {}]]]}, {"name": "dense_8", "class_name": "Dense", "config": {"name": "dense_8", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dropout_6", 0, 0, {}]]]}, {"name": "multiply_2", "class_name": "Multiply", "config": {"name": "multiply_2", "trainable": true}, "inbound_nodes": [[["dense_1", 0, 0, {}], ["dense_2", 0, 0, {}]]]}, {"name": "multiply_4", "class_name": "Multiply", "config": {"name": "multiply_4", "trainable": true}, "inbound_nodes": [[["dense_4", 0, 0, {}], ["dense_5", 0, 0, {}]]]}, {"name": "multiply_6", "class_name": "Multiply", "config": {"name": "multiply_6", "trainable": true}, "inbound_nodes": [[["dense_7", 0, 0, {}], ["dense_8", 0, 0, {}]]]}, {"name": "dense_3", "class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "units": 6, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_2", 0, 0, {}]]]}, {"name": "dense_6", "class_name": "Dense", "config": {"name": "dense_6", "trainable": true, "units": 6, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_4", 0, 0, {}]]]}, {"name": "dense_9", "class_name": "Dense", "config": {"name": "dense_9", "trainable": true, "units": 6, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_6", 0, 0, {}]]]}, {"name": "multiply_1", "class_name": "Multiply", "config": {"name": "multiply_1", "trainable": true}, "inbound_nodes": [[["flatten_1", 0, 0, {}], ["flatten_2", 0, 0, {}]]]}, {"name": "multiply_3", "class_name": "Multiply", "config": {"name": "multiply_3", "trainable": true}, "inbound_nodes": [[["flatten_3", 0, 0, {}], ["flatten_4", 0, 0, {}]]]}, {"name": "multiply_5", "class_name": "Multiply", "config": {"name": "multiply_5", "trainable": true}, "inbound_nodes": [[["flatten_5", 0, 0, {}], ["flatten_6", 0, 0, {}]]]}, {"name": "pred_age_stage1", "class_name": "Dense", "config": {"name": "pred_age_stage1", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_3", 0, 0, {}]]]}, {"name": "pred_age_stage2", "class_name": "Dense", "config": {"name": "pred_age_stage2", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_6", 0, 0, {}]]]}, {"name": "pred_age_stage3", "class_name": "Dense", "config": {"name": "pred_age_stage3", "trainable": true, "units": 3, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_9", 0, 0, {}]]]}, {"name": "delta_s1", "class_name": "Dense", "config": {"name": "delta_s1", "trainable": true, "units": 1, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_1", 0, 0, {}]]]}, {"name": "delta_s2", "class_name": "Dense", "config": {"name": "delta_s2", "trainable": true, "units": 1, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_3", 0, 0, {}]]]}, {"name": "delta_s3", "class_name": "Dense", "config": {"name": "delta_s3", "trainable": true, "units": 1, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["multiply_5", 0, 0, {}]]]}, {"name": "local_delta_stage1", "class_name": "Dense", "config": {"name": "local_delta_stage1", "trainable": true, "units": 3, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_3", 0, 0, {}]]]}, {"name": "local_delta_stage2", "class_name": "Dense", "config": {"name": "local_delta_stage2", "trainable": true, "units": 3, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_6", 0, 0, {}]]]}, {"name": "local_delta_stage3", "class_name": "Dense", "config": {"name": "local_delta_stage3", "trainable": true, "units": 3, "activation": "tanh", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "inbound_nodes": [[["dense_9", 0, 0, {}]]]}, {"name": "pred_a", "class_name": "Lambda", "config": {"name": "pred_a", "trainable": true, "function": ["4wYAAAAAAAAADwAAAAcAAABTAAAAc+4BAAB8AGQBGQBkAGQAhQJkAWYCGQBkARQAfQZ8AGQBGQBk\nAGQAhQJkAWYCGQBkARQAfQd8AGQBGQBkAGQAhQJkAWYCGQBkARQAfQh8AXwCFAB8AxQAfQlkAn0K\neEZ0AGQBfAGDAkQAXTh9C3wGfAt8BHwAZAMZAGQAZACFAnwLZgIZABQAFwB8AGQBGQBkAGQAhQJ8\nC2YCGQAUABcAfQZxZFcAdAFqAnwGZAuDAn0GfAZ8AWQEfAV8AGQFGQAUABcAFAAbAH0GeEZ0AGQB\nfAKDAkQAXTh9DHwHfAx8BHwAZAYZAGQAZACFAnwMZgIZABQAFwB8AGQEGQBkAGQAhQJ8DGYCGQAU\nABcAfQdx0FcAdAFqAnwHZAyDAn0HfAd8AWQEfAV8AGQFGQAUABcAFAAbAHwCZAR8BXwAZAcZABQA\nFwAUABsAfQd4SHQAZAF8A4MCRABdOn0NfAh8DXwEfABkCBkAZABkAIUCfA1mAhkAFAAXAHwAZAkZ\nAGQAZACFAnwNZgIZABQAFwB9CJABcVBXAHQBagJ8CGQNgwJ9CHwIfAFkBHwFfABkBRkAFAAXABQA\nGwB8AmQEfAV8AGQHGQAUABcAFAAbAHwDZAR8BXwAZAoZABQAFwAUABsAfQh8BnwHFwB8CBcAfAoU\nAH0OfA5TACkOTukAAAAA6WUAAADpBgAAAOkBAAAA6QMAAADpBwAAAOkEAAAA6QgAAADpAgAAAOkF\nAAAA6f////9yCwAAAHILAAAAKQPaBXJhbmdl2gFL2gtleHBhbmRfZGltcykP2gF42gJzMdoCczLa\nAnMz2gxsYW1iZGFfbG9jYWzaCGxhbWJkYV9k2gFh2gFi2gFj2gFB2gFW2gFp2gFq2gFr2gNhZ2Wp\nAHIeAAAA+kMvaG9tZS95aWhzdWFuL0RvY3VtZW50cy9TaW5pY2EvU1NSTkVUX21lZ2FhZ2VfYXNp\nYW4vU1NSTkVUX21vZGVsLnB52gltZXJnZV9hZ2UgBAAAcyYAAAAAARgBGAEYAQwBBAIQATgBDAEY\nAhABOAEMASwCEAE6AQwBQAMQAQ==\n", null, null], "function_type": "lambda", "output_shape": [1], "output_shape_type": "raw", "arguments": {"s1": 3, "s2": 3, "s3": 3, "lambda_local": 1.0, "lambda_d": 1.0}}, "inbound_nodes": [[["pred_age_stage1", 0, 0, {}], ["pred_age_stage2", 0, 0, {}], ["pred_age_stage3", 0, 0, {}], ["delta_s1", 0, 0, {}], ["delta_s2", 0, 0, {}], ["delta_s3", 0, 0, {}], ["local_delta_stage1", 0, 0, {}], ["local_delta_stage2", 0, 0, {}], ["local_delta_stage3", 0, 0, {}]]]}], "input_layers": [["input_1", 0, 0]], "output_layers": [["pred_a", 0, 0]]}, "keras_version": "2.1.5", "backend": "tensorflow"}
--------------------------------------------------------------------------------
/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/megaage_models/batch_size_50/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.png
--------------------------------------------------------------------------------
/paper_images/magaage_asian_CA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/paper_images/magaage_asian_CA.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/densenet_reg_13_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/densenet_reg_13_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/densenet_reg_13_64.json:
--------------------------------------------------------------------------------
1 | {"keras_version": "2.0.6", "backend": "tensorflow", "class_name": "Model", "config": {"layers": [{"config": {"dtype": "float32", "batch_input_shape": [null, 64, 64, 3], "sparse": false, "name": "input_1"}, "class_name": "InputLayer", "name": "input_1", "inbound_nodes": []}, {"config": {"layers": [{"inbound_nodes": [], "class_name": "InputLayer", "name": "input_2", "config": {"dtype": "float32", "batch_input_shape": [null, 64, 64, 3], "sparse": false, "name": "input_2"}}, {"inbound_nodes": [[["input_2", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_1", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": {"class_name": "L1L2", "config": {"l1": 0.0, "l2": 9.999999747378752e-05}}, "activity_regularizer": null, "filters": 24, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_1"}}, {"inbound_nodes": [[["conv2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_1", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_1"}}, {"inbound_nodes": [[["batch_normalization_1", 0, 0, {}]]], "class_name": "Activation", "name": "activation_1", "config": {"activation": "relu", "name": "activation_1", "trainable": true}}, {"inbound_nodes": [[["activation_1", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_2", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_2"}}, {"inbound_nodes": [[["conv2d_1", 0, 0, {}], ["conv2d_2", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_1", "config": {"axis": -1, "name": "concatenate_1", "trainable": true}}, {"inbound_nodes": [[["concatenate_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_2", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_2"}}, {"inbound_nodes": [[["batch_normalization_2", 0, 0, {}]]], "class_name": "Activation", "name": "activation_2", "config": {"activation": "relu", "name": "activation_2", "trainable": true}}, {"inbound_nodes": [[["activation_2", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_3", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_3"}}, {"inbound_nodes": [[["concatenate_1", 0, 0, {}], ["conv2d_3", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_2", "config": {"axis": -1, "name": "concatenate_2", "trainable": true}}, {"inbound_nodes": [[["concatenate_2", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_3", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_3"}}, {"inbound_nodes": [[["batch_normalization_3", 0, 0, {}]]], "class_name": "Activation", "name": "activation_3", "config": {"activation": "relu", "name": "activation_3", "trainable": true}}, {"inbound_nodes": [[["activation_3", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_4", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_4"}}, {"inbound_nodes": [[["concatenate_2", 0, 0, {}], ["conv2d_4", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_3", "config": {"axis": -1, "name": "concatenate_3", "trainable": true}}, {"inbound_nodes": [[["concatenate_3", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_4", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_4"}}, {"inbound_nodes": [[["batch_normalization_4", 0, 0, {}]]], "class_name": "Activation", "name": "activation_4", "config": {"activation": "relu", "name": "activation_4", "trainable": true}}, {"inbound_nodes": [[["activation_4", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_5", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": {"class_name": "L1L2", "config": {"l1": 0.0, "l2": 9.999999747378752e-05}}, "activity_regularizer": null, "filters": 60, "kernel_constraint": null, "kernel_size": [1, 1], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_5"}}, {"inbound_nodes": [[["conv2d_5", 0, 0, {}]]], "class_name": "AveragePooling2D", "name": "average_pooling2d_1", "config": {"data_format": "channels_last", "trainable": true, "pool_size": [2, 2], "strides": [2, 2], "padding": "valid", "name": "average_pooling2d_1"}}, {"inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_5", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_5"}}, {"inbound_nodes": [[["batch_normalization_5", 0, 0, {}]]], "class_name": "Activation", "name": "activation_5", "config": {"activation": "relu", "name": "activation_5", "trainable": true}}, {"inbound_nodes": [[["activation_5", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_6", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_6"}}, {"inbound_nodes": [[["average_pooling2d_1", 0, 0, {}], ["conv2d_6", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_4", "config": {"axis": -1, "name": "concatenate_4", "trainable": true}}, {"inbound_nodes": [[["concatenate_4", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_6", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_6"}}, {"inbound_nodes": [[["batch_normalization_6", 0, 0, {}]]], "class_name": "Activation", "name": "activation_6", "config": {"activation": "relu", "name": "activation_6", "trainable": true}}, {"inbound_nodes": [[["activation_6", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_7", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_7"}}, {"inbound_nodes": [[["concatenate_4", 0, 0, {}], ["conv2d_7", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_5", "config": {"axis": -1, "name": "concatenate_5", "trainable": true}}, {"inbound_nodes": [[["concatenate_5", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_7", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_7"}}, {"inbound_nodes": [[["batch_normalization_7", 0, 0, {}]]], "class_name": "Activation", "name": "activation_7", "config": {"activation": "relu", "name": "activation_7", "trainable": true}}, {"inbound_nodes": [[["activation_7", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_8", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_8"}}, {"inbound_nodes": [[["concatenate_5", 0, 0, {}], ["conv2d_8", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_6", "config": {"axis": -1, "name": "concatenate_6", "trainable": true}}, {"inbound_nodes": [[["concatenate_6", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_8", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_8"}}, {"inbound_nodes": [[["batch_normalization_8", 0, 0, {}]]], "class_name": "Activation", "name": "activation_8", "config": {"activation": "relu", "name": "activation_8", "trainable": true}}, {"inbound_nodes": [[["activation_8", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_9", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": {"class_name": "L1L2", "config": {"l1": 0.0, "l2": 9.999999747378752e-05}}, "activity_regularizer": null, "filters": 96, "kernel_constraint": null, "kernel_size": [1, 1], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_9"}}, {"inbound_nodes": [[["conv2d_9", 0, 0, {}]]], "class_name": "AveragePooling2D", "name": "average_pooling2d_2", "config": {"data_format": "channels_last", "trainable": true, "pool_size": [2, 2], "strides": [2, 2], "padding": "valid", "name": "average_pooling2d_2"}}, {"inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_9", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_9"}}, {"inbound_nodes": [[["batch_normalization_9", 0, 0, {}]]], "class_name": "Activation", "name": "activation_9", "config": {"activation": "relu", "name": "activation_9", "trainable": true}}, {"inbound_nodes": [[["activation_9", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_10", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_10"}}, {"inbound_nodes": [[["average_pooling2d_2", 0, 0, {}], ["conv2d_10", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_7", "config": {"axis": -1, "name": "concatenate_7", "trainable": true}}, {"inbound_nodes": [[["concatenate_7", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_10", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_10"}}, {"inbound_nodes": [[["batch_normalization_10", 0, 0, {}]]], "class_name": "Activation", "name": "activation_10", "config": {"activation": "relu", "name": "activation_10", "trainable": true}}, {"inbound_nodes": [[["activation_10", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_11", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_11"}}, {"inbound_nodes": [[["concatenate_7", 0, 0, {}], ["conv2d_11", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_8", "config": {"axis": -1, "name": "concatenate_8", "trainable": true}}, {"inbound_nodes": [[["concatenate_8", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_11", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_11"}}, {"inbound_nodes": [[["batch_normalization_11", 0, 0, {}]]], "class_name": "Activation", "name": "activation_11", "config": {"activation": "relu", "name": "activation_11", "trainable": true}}, {"inbound_nodes": [[["activation_11", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_12", "config": {"data_format": "channels_last", "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 2.0, "distribution": "normal", "seed": null, "mode": "fan_in"}}, "activation": "linear", "trainable": true, "strides": [1, 1], "bias_regularizer": null, "padding": "same", "kernel_regularizer": null, "activity_regularizer": null, "filters": 12, "kernel_constraint": null, "kernel_size": [3, 3], "bias_initializer": {"class_name": "Zeros", "config": {}}, "dilation_rate": [1, 1], "bias_constraint": null, "use_bias": false, "name": "conv2d_12"}}, {"inbound_nodes": [[["concatenate_8", 0, 0, {}], ["conv2d_12", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_9", "config": {"axis": -1, "name": "concatenate_9", "trainable": true}}, {"inbound_nodes": [[["concatenate_9", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_12", "config": {"center": true, "momentum": 0.99, "trainable": true, "axis": -1, "gamma_regularizer": null, "beta_regularizer": null, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "gamma_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "epsilon": 1.1e-05, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "name": "batch_normalization_12"}}, {"inbound_nodes": [[["batch_normalization_12", 0, 0, {}]]], "class_name": "Activation", "name": "activation_12", "config": {"activation": "relu", "name": "activation_12", "trainable": true}}, {"inbound_nodes": [[["activation_12", 0, 0, {}]]], "class_name": "GlobalAveragePooling2D", "name": "global_average_pooling2d_1", "config": {"data_format": "channels_last", "name": "global_average_pooling2d_1", "trainable": true}}], "output_layers": [["global_average_pooling2d_1", 0, 0]], "input_layers": [["input_2", 0, 0]], "name": "densenet"}, "class_name": "Model", "name": "densenet", "inbound_nodes": [[["input_1", 0, 0, {}]]]}, {"config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "distribution": "uniform", "seed": null, "mode": "fan_avg"}}, "activation": "relu", "trainable": true, "bias_regularizer": null, "kernel_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "units": 128, "bias_initializer": {"class_name": "Zeros", "config": {}}, "bias_constraint": null, "use_bias": true, "name": "dense_1"}, "class_name": "Dense", "name": "dense_1", "inbound_nodes": [[["densenet", 1, 0, {}]]]}, {"config": {"rate": 0.2, "trainable": true, "name": "dropout_1"}, "class_name": "Dropout", "name": "dropout_1", "inbound_nodes": [[["dense_1", 0, 0, {}]]]}, {"config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "distribution": "uniform", "seed": null, "mode": "fan_avg"}}, "activation": "relu", "trainable": true, "bias_regularizer": null, "kernel_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "units": 32, "bias_initializer": {"class_name": "Zeros", "config": {}}, "bias_constraint": null, "use_bias": true, "name": "feat_a"}, "class_name": "Dense", "name": "feat_a", "inbound_nodes": [[["dropout_1", 0, 0, {}]]]}, {"config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "distribution": "uniform", "seed": null, "mode": "fan_avg"}}, "activation": "linear", "trainable": true, "bias_regularizer": null, "kernel_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "units": 1, "bias_initializer": {"class_name": "Zeros", "config": {}}, "bias_constraint": null, "use_bias": true, "name": "pred_a"}, "class_name": "Dense", "name": "pred_a", "inbound_nodes": [[["feat_a", 0, 0, {}]]]}], "output_layers": [["pred_a", 0, 0]], "name": "model_1", "input_layers": [["input_1", 0, 0]]}}
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/densenet_reg_13_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/densenet_reg_13_64.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/history_densenet_reg_13_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/history_densenet_reg_13_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/loss.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/loss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/loss.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/performance.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_13_64/performance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_13_64/performance.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/densenet_reg_19_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/densenet_reg_19_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/densenet_reg_19_64.json:
--------------------------------------------------------------------------------
1 | {"config": {"input_layers": [["input_1", 0, 0]], "output_layers": [["pred_a", 0, 0]], "name": "model_1", "layers": [{"config": {"dtype": "float32", "sparse": false, "name": "input_1", "batch_input_shape": [null, 64, 64, 3]}, "inbound_nodes": [], "class_name": "InputLayer", "name": "input_1"}, {"config": {"input_layers": [["input_2", 0, 0]], "output_layers": [["global_average_pooling2d_1", 0, 0]], "name": "densenet", "layers": [{"config": {"dtype": "float32", "sparse": false, "name": "input_2", "batch_input_shape": [null, 64, 64, 3]}, "inbound_nodes": [], "class_name": "InputLayer", "name": "input_2"}, {"config": {"kernel_regularizer": {"config": {"l2": 9.999999747378752e-05, "l1": 0.0}, "class_name": "L1L2"}, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 24, "name": "conv2d_1", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["input_2", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_1"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_1", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["conv2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_1"}, {"config": {"trainable": true, "name": "activation_1", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_1", 0, 0, {}]]], "class_name": "Activation", "name": "activation_1"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_2", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_1", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_2"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_1"}, "inbound_nodes": [[["conv2d_1", 0, 0, {}], ["conv2d_2", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_1"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_2", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_2"}, {"config": {"trainable": true, "name": "activation_2", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_2", 0, 0, {}]]], "class_name": "Activation", "name": "activation_2"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_3", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_2", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_3"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_2"}, "inbound_nodes": [[["concatenate_1", 0, 0, {}], ["conv2d_3", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_2"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_3", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_2", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_3"}, {"config": {"trainable": true, "name": "activation_3", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_3", 0, 0, {}]]], "class_name": "Activation", "name": "activation_3"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_4", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_3", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_4"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_3"}, "inbound_nodes": [[["concatenate_2", 0, 0, {}], ["conv2d_4", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_3"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_4", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_3", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_4"}, {"config": {"trainable": true, "name": "activation_4", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_4", 0, 0, {}]]], "class_name": "Activation", "name": "activation_4"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_5", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_4", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_5"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_4"}, "inbound_nodes": [[["concatenate_3", 0, 0, {}], ["conv2d_5", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_4"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_5", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_4", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_5"}, {"config": {"trainable": true, "name": "activation_5", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_5", 0, 0, {}]]], "class_name": "Activation", "name": "activation_5"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_6", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_5", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_6"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_5"}, "inbound_nodes": [[["concatenate_4", 0, 0, {}], ["conv2d_6", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_5"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_6", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_5", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_6"}, {"config": {"trainable": true, "name": "activation_6", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_6", 0, 0, {}]]], "class_name": "Activation", "name": "activation_6"}, {"config": {"kernel_regularizer": {"config": {"l2": 9.999999747378752e-05, "l1": 0.0}, "class_name": "L1L2"}, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 84, "name": "conv2d_7", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [1, 1], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_6", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_7"}, {"config": {"trainable": true, "strides": [2, 2], "name": "average_pooling2d_1", "pool_size": [2, 2], "data_format": "channels_last", "padding": "valid"}, "inbound_nodes": [[["conv2d_7", 0, 0, {}]]], "class_name": "AveragePooling2D", "name": "average_pooling2d_1"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_7", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_7"}, {"config": {"trainable": true, "name": "activation_7", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_7", 0, 0, {}]]], "class_name": "Activation", "name": "activation_7"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_8", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_7", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_8"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_6"}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}], ["conv2d_8", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_6"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_8", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_6", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_8"}, {"config": {"trainable": true, "name": "activation_8", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_8", 0, 0, {}]]], "class_name": "Activation", "name": "activation_8"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_9", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_8", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_9"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_7"}, "inbound_nodes": [[["concatenate_6", 0, 0, {}], ["conv2d_9", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_7"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_9", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_7", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_9"}, {"config": {"trainable": true, "name": "activation_9", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_9", 0, 0, {}]]], "class_name": "Activation", "name": "activation_9"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_10", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_9", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_10"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_8"}, "inbound_nodes": [[["concatenate_7", 0, 0, {}], ["conv2d_10", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_8"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_10", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_8", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_10"}, {"config": {"trainable": true, "name": "activation_10", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_10", 0, 0, {}]]], "class_name": "Activation", "name": "activation_10"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_11", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_10", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_11"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_9"}, "inbound_nodes": [[["concatenate_8", 0, 0, {}], ["conv2d_11", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_9"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_11", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_9", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_11"}, {"config": {"trainable": true, "name": "activation_11", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_11", 0, 0, {}]]], "class_name": "Activation", "name": "activation_11"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_12", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_11", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_12"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_10"}, "inbound_nodes": [[["concatenate_9", 0, 0, {}], ["conv2d_12", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_10"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_12", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_10", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_12"}, {"config": {"trainable": true, "name": "activation_12", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_12", 0, 0, {}]]], "class_name": "Activation", "name": "activation_12"}, {"config": {"kernel_regularizer": {"config": {"l2": 9.999999747378752e-05, "l1": 0.0}, "class_name": "L1L2"}, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 144, "name": "conv2d_13", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [1, 1], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_12", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_13"}, {"config": {"trainable": true, "strides": [2, 2], "name": "average_pooling2d_2", "pool_size": [2, 2], "data_format": "channels_last", "padding": "valid"}, "inbound_nodes": [[["conv2d_13", 0, 0, {}]]], "class_name": "AveragePooling2D", "name": "average_pooling2d_2"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_13", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_13"}, {"config": {"trainable": true, "name": "activation_13", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_13", 0, 0, {}]]], "class_name": "Activation", "name": "activation_13"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_14", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_13", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_14"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_11"}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}], ["conv2d_14", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_11"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_14", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_11", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_14"}, {"config": {"trainable": true, "name": "activation_14", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_14", 0, 0, {}]]], "class_name": "Activation", "name": "activation_14"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_15", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_14", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_15"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_12"}, "inbound_nodes": [[["concatenate_11", 0, 0, {}], ["conv2d_15", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_12"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_15", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_12", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_15"}, {"config": {"trainable": true, "name": "activation_15", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_15", 0, 0, {}]]], "class_name": "Activation", "name": "activation_15"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_16", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_15", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_16"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_13"}, "inbound_nodes": [[["concatenate_12", 0, 0, {}], ["conv2d_16", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_13"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_16", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_13", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_16"}, {"config": {"trainable": true, "name": "activation_16", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_16", 0, 0, {}]]], "class_name": "Activation", "name": "activation_16"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_17", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_16", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_17"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_14"}, "inbound_nodes": [[["concatenate_13", 0, 0, {}], ["conv2d_17", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_14"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_17", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_14", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_17"}, {"config": {"trainable": true, "name": "activation_17", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_17", 0, 0, {}]]], "class_name": "Activation", "name": "activation_17"}, {"config": {"kernel_regularizer": null, "trainable": true, "bias_constraint": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": false, "activity_regularizer": null, "padding": "same", "filters": 12, "name": "conv2d_18", "kernel_initializer": {"config": {"scale": 2.0, "distribution": "normal", "mode": "fan_in", "seed": null}, "class_name": "VarianceScaling"}, "kernel_size": [3, 3], "bias_regularizer": null, "activation": "linear", "data_format": "channels_last", "dilation_rate": [1, 1], "strides": [1, 1]}, "inbound_nodes": [[["activation_17", 0, 0, {}]]], "class_name": "Conv2D", "name": "conv2d_18"}, {"config": {"axis": -1, "trainable": true, "name": "concatenate_15"}, "inbound_nodes": [[["concatenate_14", 0, 0, {}], ["conv2d_18", 0, 0, {}]]], "class_name": "Concatenate", "name": "concatenate_15"}, {"config": {"scale": true, "trainable": true, "beta_constraint": null, "gamma_constraint": null, "beta_regularizer": null, "beta_initializer": {"config": {}, "class_name": "Zeros"}, "moving_mean_initializer": {"config": {}, "class_name": "Zeros"}, "center": true, "gamma_regularizer": null, "moving_variance_initializer": {"config": {}, "class_name": "Ones"}, "name": "batch_normalization_18", "axis": -1, "epsilon": 1.1e-05, "momentum": 0.99, "gamma_initializer": {"config": {}, "class_name": "Ones"}}, "inbound_nodes": [[["concatenate_15", 0, 0, {}]]], "class_name": "BatchNormalization", "name": "batch_normalization_18"}, {"config": {"trainable": true, "name": "activation_18", "activation": "relu"}, "inbound_nodes": [[["batch_normalization_18", 0, 0, {}]]], "class_name": "Activation", "name": "activation_18"}, {"config": {"trainable": true, "data_format": "channels_last", "name": "global_average_pooling2d_1"}, "inbound_nodes": [[["activation_18", 0, 0, {}]]], "class_name": "GlobalAveragePooling2D", "name": "global_average_pooling2d_1"}]}, "inbound_nodes": [[["input_1", 0, 0, {}]]], "class_name": "Model", "name": "densenet"}, {"config": {"kernel_regularizer": null, "trainable": true, "name": "dense_1", "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": true, "bias_constraint": null, "activity_regularizer": null, "units": 128, "kernel_initializer": {"config": {"scale": 1.0, "distribution": "uniform", "mode": "fan_avg", "seed": null}, "class_name": "VarianceScaling"}, "bias_regularizer": null, "activation": "relu"}, "inbound_nodes": [[["densenet", 1, 0, {}]]], "class_name": "Dense", "name": "dense_1"}, {"config": {"trainable": true, "rate": 0.2, "name": "dropout_1"}, "inbound_nodes": [[["dense_1", 0, 0, {}]]], "class_name": "Dropout", "name": "dropout_1"}, {"config": {"kernel_regularizer": null, "trainable": true, "name": "feat_a", "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": true, "bias_constraint": null, "activity_regularizer": null, "units": 32, "kernel_initializer": {"config": {"scale": 1.0, "distribution": "uniform", "mode": "fan_avg", "seed": null}, "class_name": "VarianceScaling"}, "bias_regularizer": null, "activation": "relu"}, "inbound_nodes": [[["dropout_1", 0, 0, {}]]], "class_name": "Dense", "name": "feat_a"}, {"config": {"kernel_regularizer": null, "trainable": true, "name": "pred_a", "bias_initializer": {"config": {}, "class_name": "Zeros"}, "kernel_constraint": null, "use_bias": true, "bias_constraint": null, "activity_regularizer": null, "units": 1, "kernel_initializer": {"config": {"scale": 1.0, "distribution": "uniform", "mode": "fan_avg", "seed": null}, "class_name": "VarianceScaling"}, "bias_regularizer": null, "activation": "linear"}, "inbound_nodes": [[["feat_a", 0, 0, {}]]], "class_name": "Dense", "name": "pred_a"}]}, "backend": "tensorflow", "keras_version": "2.0.6", "class_name": "Model"}
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/densenet_reg_19_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/densenet_reg_19_64.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/history_densenet_reg_19_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/history_densenet_reg_19_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/loss.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/loss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/loss.png
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/performance.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/densenet_reg_19_64/performance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/densenet_reg_19_64/performance.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/history_mobilenet_reg_0.25_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/history_mobilenet_reg_0.25_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/loss.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/loss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/loss.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/mobilenet_reg_0.25_64.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/performance.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.25_64/performance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.25_64/performance.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/history_mobilenet_reg_0.5_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/history_mobilenet_reg_0.5_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/loss.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/loss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/loss.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/mobilenet_reg_0.5_64.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/mobilenet_reg_0.5_64.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/mobilenet_reg_0.5_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/mobilenet_reg_0.5_64.png
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/performance.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/mobilenet_reg_0.5_64/performance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/mobilenet_reg_0.5_64/performance.png
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/history_ssrnet_3_3_3_64_1.0_1.0.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/history_ssrnet_3_3_3_64_1.0_1.0.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/loss.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/loss.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/performance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/performance.pdf
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.h5
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.json:
--------------------------------------------------------------------------------
1 | {"class_name": "Model", "keras_version": "2.0.6", "backend": "tensorflow", "config": {"name": "model_1", "layers": [{"name": "input_1", "class_name": "InputLayer", "config": {"name": "input_1", "sparse": false, "batch_input_shape": [null, 64, 64, 3], "dtype": "float32"}, "inbound_nodes": []}, {"name": "conv2d_5", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_5", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 16, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["input_1", 0, 0, {}]]]}, {"name": "conv2d_1", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_1", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 32, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["input_1", 0, 0, {}]]]}, {"name": "batch_normalization_5", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_5", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_5", 0, 0, {}]]]}, {"name": "batch_normalization_1", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_1", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_1", 0, 0, {}]]]}, {"name": "activation_5", "class_name": "Activation", "config": {"name": "activation_5", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_5", 0, 0, {}]]]}, {"name": "activation_1", "class_name": "Activation", "config": {"name": "activation_1", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_1", 0, 0, {}]]]}, {"name": "max_pooling2d_1", "class_name": "MaxPooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "max_pooling2d_1", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_5", 0, 0, {}]]]}, {"name": "average_pooling2d_1", "class_name": "AveragePooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "average_pooling2d_1", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_1", 0, 0, {}]]]}, {"name": "conv2d_6", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_6", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 16, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["max_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_2", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_2", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 32, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]]}, {"name": "batch_normalization_6", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_6", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_6", 0, 0, {}]]]}, {"name": "batch_normalization_2", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_2", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_2", 0, 0, {}]]]}, {"name": "activation_6", "class_name": "Activation", "config": {"name": "activation_6", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_6", 0, 0, {}]]]}, {"name": "activation_2", "class_name": "Activation", "config": {"name": "activation_2", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_2", 0, 0, {}]]]}, {"name": "max_pooling2d_2", "class_name": "MaxPooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "max_pooling2d_2", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_6", 0, 0, {}]]]}, {"name": "average_pooling2d_2", "class_name": "AveragePooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "average_pooling2d_2", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_2", 0, 0, {}]]]}, {"name": "conv2d_7", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_7", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 16, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["max_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_3", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_3", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 32, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]]}, {"name": "batch_normalization_7", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_7", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_7", 0, 0, {}]]]}, {"name": "batch_normalization_3", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_3", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_3", 0, 0, {}]]]}, {"name": "activation_7", "class_name": "Activation", "config": {"name": "activation_7", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_7", 0, 0, {}]]]}, {"name": "activation_3", "class_name": "Activation", "config": {"name": "activation_3", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_3", 0, 0, {}]]]}, {"name": "max_pooling2d_3", "class_name": "MaxPooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "max_pooling2d_3", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_7", 0, 0, {}]]]}, {"name": "average_pooling2d_3", "class_name": "AveragePooling2D", "config": {"pool_size": [2, 2], "padding": "valid", "data_format": "channels_last", "name": "average_pooling2d_3", "trainable": true, "strides": [2, 2]}, "inbound_nodes": [[["activation_3", 0, 0, {}]]]}, {"name": "conv2d_8", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_8", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 16, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["max_pooling2d_3", 0, 0, {}]]]}, {"name": "conv2d_4", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_4", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [3, 3], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "filters": 32, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["average_pooling2d_3", 0, 0, {}]]]}, {"name": "batch_normalization_8", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_8", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_8", 0, 0, {}]]]}, {"name": "batch_normalization_4", "class_name": "BatchNormalization", "config": {"gamma_regularizer": null, "gamma_constraint": null, "center": true, "scale": true, "name": "batch_normalization_4", "axis": -1, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "beta_regularizer": null, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_constraint": null, "momentum": 0.99, "trainable": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "epsilon": 0.001, "gamma_initializer": {"class_name": "Ones", "config": {}}}, "inbound_nodes": [[["conv2d_4", 0, 0, {}]]]}, {"name": "activation_8", "class_name": "Activation", "config": {"name": "activation_8", "trainable": true, "activation": "tanh"}, "inbound_nodes": [[["batch_normalization_8", 0, 0, {}]]]}, {"name": "activation_4", "class_name": "Activation", "config": {"name": "activation_4", "trainable": true, "activation": "relu"}, "inbound_nodes": [[["batch_normalization_4", 0, 0, {}]]]}, {"name": "conv2d_11", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_11", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["max_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_12", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_12", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["average_pooling2d_2", 0, 0, {}]]]}, {"name": "conv2d_13", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_13", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["max_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_14", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_14", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["average_pooling2d_1", 0, 0, {}]]]}, {"name": "conv2d_9", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_9", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["activation_8", 0, 0, {}]]]}, {"name": "conv2d_10", "class_name": "Conv2D", "config": {"kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_10", "data_format": "channels_last", "activity_regularizer": null, "kernel_size": [1, 1], "dilation_rate": [1, 1], "use_bias": true, "strides": [1, 1], "trainable": true, "padding": "valid", "bias_regularizer": null, "bias_constraint": null, "activation": "relu", "filters": 10, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["activation_4", 0, 0, {}]]]}, {"name": "max_pooling2d_4", "class_name": "MaxPooling2D", "config": {"pool_size": [4, 4], "padding": "valid", "data_format": "channels_last", "name": "max_pooling2d_4", "trainable": true, "strides": [4, 4]}, "inbound_nodes": [[["conv2d_11", 0, 0, {}]]]}, {"name": "average_pooling2d_4", "class_name": "AveragePooling2D", "config": {"pool_size": [4, 4], "padding": "valid", "data_format": "channels_last", "name": "average_pooling2d_4", "trainable": true, "strides": [4, 4]}, "inbound_nodes": [[["conv2d_12", 0, 0, {}]]]}, {"name": "max_pooling2d_5", "class_name": "MaxPooling2D", "config": {"pool_size": [8, 8], "padding": "valid", "data_format": "channels_last", "name": "max_pooling2d_5", "trainable": true, "strides": [8, 8]}, "inbound_nodes": [[["conv2d_13", 0, 0, {}]]]}, {"name": "average_pooling2d_5", "class_name": "AveragePooling2D", "config": {"pool_size": [8, 8], "padding": "valid", "data_format": "channels_last", "name": "average_pooling2d_5", "trainable": true, "strides": [8, 8]}, "inbound_nodes": [[["conv2d_14", 0, 0, {}]]]}, {"name": "flatten_1", "class_name": "Flatten", "config": {"name": "flatten_1", "trainable": true}, "inbound_nodes": [[["conv2d_9", 0, 0, {}]]]}, {"name": "flatten_2", "class_name": "Flatten", "config": {"name": "flatten_2", "trainable": true}, "inbound_nodes": [[["conv2d_10", 0, 0, {}]]]}, {"name": "flatten_3", "class_name": "Flatten", "config": {"name": "flatten_3", "trainable": true}, "inbound_nodes": [[["max_pooling2d_4", 0, 0, {}]]]}, {"name": "flatten_4", "class_name": "Flatten", "config": {"name": "flatten_4", "trainable": true}, "inbound_nodes": [[["average_pooling2d_4", 0, 0, {}]]]}, {"name": "flatten_5", "class_name": "Flatten", "config": {"name": "flatten_5", "trainable": true}, "inbound_nodes": [[["max_pooling2d_5", 0, 0, {}]]]}, {"name": "flatten_6", "class_name": "Flatten", "config": {"name": "flatten_6", "trainable": true}, "inbound_nodes": [[["average_pooling2d_5", 0, 0, {}]]]}, {"name": "dropout_1", "class_name": "Dropout", "config": {"name": "dropout_1", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_1", 0, 0, {}]]]}, {"name": "dropout_2", "class_name": "Dropout", "config": {"name": "dropout_2", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_2", 0, 0, {}]]]}, {"name": "dropout_3", "class_name": "Dropout", "config": {"name": "dropout_3", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_3", 0, 0, {}]]]}, {"name": "dropout_4", "class_name": "Dropout", "config": {"name": "dropout_4", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_4", 0, 0, {}]]]}, {"name": "dropout_5", "class_name": "Dropout", "config": {"name": "dropout_5", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_5", 0, 0, {}]]]}, {"name": "dropout_6", "class_name": "Dropout", "config": {"name": "dropout_6", "trainable": true, "rate": 0.2}, "inbound_nodes": [[["flatten_6", 0, 0, {}]]]}, {"name": "dense_1", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_1", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_1", 0, 0, {}]]]}, {"name": "dense_2", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_2", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_2", 0, 0, {}]]]}, {"name": "dense_4", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_4", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_3", 0, 0, {}]]]}, {"name": "dense_5", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_5", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_4", 0, 0, {}]]]}, {"name": "dense_7", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_7", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_5", 0, 0, {}]]]}, {"name": "dense_8", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_8", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dropout_6", 0, 0, {}]]]}, {"name": "multiply_2", "class_name": "Multiply", "config": {"name": "multiply_2", "trainable": true}, "inbound_nodes": [[["dense_1", 0, 0, {}], ["dense_2", 0, 0, {}]]]}, {"name": "multiply_4", "class_name": "Multiply", "config": {"name": "multiply_4", "trainable": true}, "inbound_nodes": [[["dense_4", 0, 0, {}], ["dense_5", 0, 0, {}]]]}, {"name": "multiply_6", "class_name": "Multiply", "config": {"name": "multiply_6", "trainable": true}, "inbound_nodes": [[["dense_7", 0, 0, {}], ["dense_8", 0, 0, {}]]]}, {"name": "dense_3", "class_name": "Dense", "config": {"units": 6, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_3", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_2", 0, 0, {}]]]}, {"name": "dense_6", "class_name": "Dense", "config": {"units": 6, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_6", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_4", 0, 0, {}]]]}, {"name": "dense_9", "class_name": "Dense", "config": {"units": 6, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_9", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_6", 0, 0, {}]]]}, {"name": "multiply_1", "class_name": "Multiply", "config": {"name": "multiply_1", "trainable": true}, "inbound_nodes": [[["flatten_1", 0, 0, {}], ["flatten_2", 0, 0, {}]]]}, {"name": "multiply_3", "class_name": "Multiply", "config": {"name": "multiply_3", "trainable": true}, "inbound_nodes": [[["flatten_3", 0, 0, {}], ["flatten_4", 0, 0, {}]]]}, {"name": "multiply_5", "class_name": "Multiply", "config": {"name": "multiply_5", "trainable": true}, "inbound_nodes": [[["flatten_5", 0, 0, {}], ["flatten_6", 0, 0, {}]]]}, {"name": "pred_age_stage1", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "pred_age_stage1", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_3", 0, 0, {}]]]}, {"name": "pred_age_stage2", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "pred_age_stage2", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_6", 0, 0, {}]]]}, {"name": "pred_age_stage3", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "pred_age_stage3", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "relu", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_9", 0, 0, {}]]]}, {"name": "delta_s1", "class_name": "Dense", "config": {"units": 1, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "delta_s1", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_1", 0, 0, {}]]]}, {"name": "delta_s2", "class_name": "Dense", "config": {"units": 1, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "delta_s2", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_3", 0, 0, {}]]]}, {"name": "delta_s3", "class_name": "Dense", "config": {"units": 1, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "delta_s3", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["multiply_5", 0, 0, {}]]]}, {"name": "local_delta_stage1", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "local_delta_stage1", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_3", 0, 0, {}]]]}, {"name": "local_delta_stage2", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "local_delta_stage2", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_6", 0, 0, {}]]]}, {"name": "local_delta_stage3", "class_name": "Dense", "config": {"units": 3, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "local_delta_stage3", "bias_constraint": null, "activity_regularizer": null, "use_bias": true, "bias_regularizer": null, "activation": "tanh", "trainable": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "seed": null, "scale": 1.0, "mode": "fan_avg"}}, "kernel_constraint": null, "kernel_regularizer": null}, "inbound_nodes": [[["dense_9", 0, 0, {}]]]}, {"name": "pred_a", "class_name": "Lambda", "config": {"output_shape": [1], "function": ["\u00e3\u0006\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000e\u0000\u0000\u0000\u0007\u0000\u0000\u0000S\u0000\u0000\u0000s\u0016\u0002\u0000\u0000|\u0000\u0000d\u0001\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000d\u0001\u0000f\u0002\u0000\u0019d\u0001\u0000\u0014}\u0006\u0000|\u0000\u0000d\u0001\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000d\u0001\u0000f\u0002\u0000\u0019d\u0001\u0000\u0014}\u0007\u0000|\u0000\u0000d\u0001\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000d\u0001\u0000f\u0002\u0000\u0019d\u0001\u0000\u0014}\b\u0000|\u0001\u0000|\u0002\u0000\u0014|\u0003\u0000\u0014}\t\u0000d\u0002\u0000}\n\u0000xU\u0000t\u0000\u0000d\u0001\u0000|\u0001\u0000\u0083\u0002\u0000D]D\u0000}\u000b\u0000|\u0006\u0000|\u000b\u0000|\u0004\u0000|\u0000\u0000d\u0003\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\u000b\u0000f\u0002\u0000\u0019\u0014\u0017|\u0000\u0000d\u0001\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\u000b\u0000f\u0002\u0000\u0019\u0014\u0017}\u0006\u0000q~\u0000W|\u0006\u0000|\u0001\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\u0005\u0000\u0019\u0014\u0017\u0014\u001b}\u0006\u0000xU\u0000t\u0000\u0000d\u0001\u0000|\u0002\u0000\u0083\u0002\u0000D]D\u0000}\f\u0000|\u0007\u0000|\f\u0000|\u0004\u0000|\u0000\u0000d\u0006\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\f\u0000f\u0002\u0000\u0019\u0014\u0017|\u0000\u0000d\u0004\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\f\u0000f\u0002\u0000\u0019\u0014\u0017}\u0007\u0000q\u00f0\u0000W|\u0007\u0000|\u0001\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\u0005\u0000\u0019\u0014\u0017\u0014\u001b|\u0002\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\u0007\u0000\u0019\u0014\u0017\u0014\u001b}\u0007\u0000xU\u0000t\u0000\u0000d\u0001\u0000|\u0003\u0000\u0083\u0002\u0000D]D\u0000}\r\u0000|\b\u0000|\r\u0000|\u0004\u0000|\u0000\u0000d\b\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\r\u0000f\u0002\u0000\u0019\u0014\u0017|\u0000\u0000d\t\u0000\u0019d\u0000\u0000d\u0000\u0000\u0085\u0002\u0000|\r\u0000f\u0002\u0000\u0019\u0014\u0017}\b\u0000qv\u0001W|\b\u0000|\u0001\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\u0005\u0000\u0019\u0014\u0017\u0014\u001b|\u0002\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\u0007\u0000\u0019\u0014\u0017\u0014\u001b|\u0003\u0000d\u0004\u0000|\u0005\u0000|\u0000\u0000d\n\u0000\u0019\u0014\u0017\u0014\u001b}\b\u0000|\u0006\u0000|\u0007\u0000\u0017|\b\u0000\u0017|\n\u0000\u0014}\u0006\u0000|\u0006\u0000S)\u000bN\u00e9\u0000\u0000\u0000\u0000\u00e9e\u0000\u0000\u0000\u00e9\u0006\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000\u00e9\u0003\u0000\u0000\u0000\u00e9\u0007\u0000\u0000\u0000\u00e9\u0004\u0000\u0000\u0000\u00e9\b\u0000\u0000\u0000\u00e9\u0002\u0000\u0000\u0000\u00e9\u0005\u0000\u0000\u0000)\u0001\u00da\u0005range)\u000e\u00da\u0001x\u00da\u0002s1\u00da\u0002s2\u00da\u0002s3\u00da\flambda_local\u00da\blambda_d\u00da\u0001a\u00da\u0001b\u00da\u0001c\u00da\u0001A\u00da\u0001V\u00da\u0001i\u00da\u0001j\u00da\u0001k\u00a9\u0000r\u001a\u0000\u0000\u0000\u00faE/home/shamangary/Desktop/codeDemo/age-gender/training/SSRNET_model.py\u00da\tmerge_age\u00fd\u0003\u0000\u0000s \u0000\u0000\u0000\u0000\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u000e\u0001\u0006\u0003\u0016\u0001B\u0001\u001a\u0002\u0016\u0001B\u0001.\u0002\u0016\u0001B\u0001B\u0003\u0012\u0001", null, null], "arguments": {"s3": 3, "s1": 3, "lambda_d": 1.0, "s2": 3, "lambda_local": 1.0}, "output_shape_type": "raw", "function_type": "lambda", "name": "pred_a", "trainable": true}, "inbound_nodes": [[["pred_age_stage1", 0, 0, {}], ["pred_age_stage2", 0, 0, {}], ["pred_age_stage3", 0, 0, {}], ["delta_s1", 0, 0, {}], ["delta_s2", 0, 0, {}], ["delta_s3", 0, 0, {}], ["local_delta_stage1", 0, 0, {}], ["local_delta_stage2", 0, 0, {}], ["local_delta_stage3", 0, 0, {}]]]}], "output_layers": [["pred_a", 0, 0]], "input_layers": [["input_1", 0, 0]]}}
--------------------------------------------------------------------------------
/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b02901145/SSR-Net_megaage-asian/0708992cb1cd0cf4b9090c235a7c38d0b57936f5/pre-trained/wiki/ssrnet_3_3_3_64_1.0_1.0/ssrnet_3_3_3_64_1.0_1.0.png
--------------------------------------------------------------------------------
/run_CA.sh:
--------------------------------------------------------------------------------
1 | python ./SSRNET/CA.py './data/megaage_test.npz' 4 4
2 | python ./MobileNet_and_DenseNet/CA_M.py './data/megaage_test.npz' 1
3 | python ./MobileNet_and_DenseNet/CA_D.py './data/megaage_test.npz' 4
4 |
5 |
--------------------------------------------------------------------------------
/run_megaage_DenseNet.sh:
--------------------------------------------------------------------------------
1 | KERAS_BACKEND=tensorflow python ./MobileNet_and_DenseNet/TYY_train_others.py --input1 ./data/megaage_train.npz --input2 ./data/megaage_test.npz --netType 4 --db megaage --batch_size 50
2 |
3 |
--------------------------------------------------------------------------------
/run_megaage_MobileNet.sh:
--------------------------------------------------------------------------------
1 | KERAS_BACKEND=tensorflow python ./MobileNet_and_DenseNet/TYY_train_others.py --input1 ./data/megaage_train.npz --input2 ./data/megaage_test.npz --netType 1 --db megaage --batch_size 50
2 |
3 |
--------------------------------------------------------------------------------
/run_ssrnet_megaage.sh:
--------------------------------------------------------------------------------
1 | max1=4
2 | max2=4
3 | for i in `seq 4 $max1`
4 | do
5 | #echo "$i"
6 | for j in `seq 4 $max2`
7 | do
8 | #echo "$j" 50
9 | KERAS_BACKEND=tensorflow python ./SSRNET/SSRNET_train.py --input1 ./data/megaage_train.npz --input2 ./data/megaage_test.npz --db megaage --netType1 $i --netType2 $j --batch_size 50
10 | done
11 | done
12 |
--------------------------------------------------------------------------------