def alexNet2(self, single_dim, stock_dim, num, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 36768 data, label = net.dataLayer( "", "mem", 16, tops=["data", "label"], memdim=[1,1,d_dim] ) points = [single_dim-stock_dim, single_dim] slices = net.sliceLayer(data, points) conv01 = net.convLayer(slices[1], [3, 1], [1, 1], 128, pad_wh=[1, 0]) conv1 = net.convLayer(slices[2], [stock_dim, 1], [stock_dim, 1], 64) pool1 = net.poolLayer(conv1, [34, 1], [2, 1], "ave") concat = net.concatLayer(*[conv01, pool1]) conv2 = net.convLayer(concat, [3, 1], [1, 1], 128, pad_wh=[1, 0]) pool = net.poolLayer(conv2, [7, 1], [2, 1], "max", pad_wh=[3, 0]) conv_last = net.convLayer(pool, [3, 1], [1, 1], 64, pad_wh=[1, 0]) helper1 = net.fcLayer(conv_last, 2048, replace='relu', dropout=self.dropout) helper1_2 = net.fcLayer(helper1, 2048, replace='relu', dropout=self.dropout) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, label, "softmax", 1) helper1_acc = net.accLayer(helper1_out, label) ignore1 = net.fcLayer(slices[0], 1, t="xavier", isout=True) loss = net.lossLayer(ignore1, label, "softmax", 0) net.netStr(self.netname) return
def alexNet(self, margin=1): net = MyCaffeNet({"debug": True}) onelen = 24 d_dim = onelen + onelen * 800 data, label = net.dataLayer( "", "mem", 32, tops=["data", "label"], memdim=[1,1,d_dim] ) points = [onelen] slices = net.sliceLayer(data, points) fc = net.fcLayer(slices[0], 1024, replace="relu") conv1 = net.convLayer(slices[1], [onelen, 1], [onelen, 1], 64) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) helper1 = net.fcLayer(concat, 2048, replace='relu', dropout=self.dropout) helper1_2 = net.fcLayer(helper1, 2048, replace='relu', dropout=self.dropout) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, label, "softmax", 1) helper1_acc = net.accLayer(helper1_out, label) net.netStr(self.netname) return
def inceptionNetTest(self, single_dim, stock_dim, num, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 36768 data, label = net.dataLayer("", "mem", 16, tops=["data", "label"], memdim=[1, 1, d_dim]) points = [single_dim - stock_dim, single_dim] slices = net.sliceLayer(data, points) #fc = net.fcLayer(slices[1], 2048, replace='relu') #reshape = net.flattenLayer(fc, True) #conv01 = net.convLayer(reshape, [80, 1], [16, 1], 128, pad_wh=[0, 0]) conv01 = net.convLayer(slices[1], [3, 1], [1, 1], 128, pad_wh=[1, 0]) """ points = map(lambda x: (x+1) * stock_dim, range(num-1)) slices_all = net.sliceLayer(slices[2], points) tops = [] one_dim = 64 for one in slices_all: tmp = net.fcLayer(one, one_dim, replace="relu", wname=["d_w", "d_b"]) tops.append(tmp) concat = net.concatLayer(*tops) reshape = net.flattenLayer(concat, True) conv1 = net.convLayer(reshape, [one_dim, 1], [one_dim, 1], 32) pool1 = net.poolLayer(conv1, [34, 1], [2, 1], "ave") conv2 = net.convLayer(pool1, [5, 1], [1, 1], 128, pad_wh=[2, 0]) concat = net.concatLayer(*[conv01, conv2]) conv_last = net.convLayer(concat, [3, 1], [2, 1], 64, pad_wh=[1, 0]) reshape = net.flattenLayer(conv1) """ conv1 = net.convLayer(slices[2], [stock_dim, 1], [stock_dim, 1], 64) pool1 = net.poolLayer(conv1, [34, 1], [2, 1], "ave") concat = net.concatLayer(*[conv01, pool1]) inception1 = net.inceptionLayerV1(concat) pool = net.poolLayer(inception1, [7, 1], [2, 1], "max", pad_wh=[3, 0]) conv_last = net.convLayer(pool, [3, 1], [1, 1], 64, pad_wh=[1, 0]) helper1 = net.fcLayer(conv_last, 2048, replace='relu', dropout=0.5) helper1_2 = net.fcLayer(helper1, 2048, replace='relu', dropout=0.5) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, label, "softmax", 1) helper1_acc = net.accLayer(helper1_out, label) classify = net.fcLayer(concat, 20, t="xavier", isout=True) loss = net.lossLayer(classify, label, "softmax", 0.3) acc = net.accLayer(classify, label) ignore1 = net.fcLayer(slices[0], 1, t="xavier", isout=True) loss = net.lossLayer(ignore1, label, "softmax", 0) #acc = net.accLayer(classify_1, label) net.netStr(self.netname) return
def net(self, netname, is_test): net = MyCaffeNet({"debug": True}) data, label_multi, label, label_, clips = net.pyDataLayer( "DataTrain" if not is_test else "DataTest", "DataTrain" if not is_test else "DataTest", 0 if not is_test else 1, tops = [ "data", "label_multi", "label", "label_", "clips", ] ) points = [12] slices = net.sliceLayer(data, points) net.silenceLayer(label_) fc = net.fcLayer(slices[0], 1024, replace="relu") drop = net.groupDropLayer(slices[1], 800, 400, False) conv1 = net.convLayer(drop, [5, 1], [5, 1], 64) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) concat_same = net.fcLayer(concat, 1024, t="xavier", replace='relu', dropout=self.dropout) fc = net.fcLayer(concat_same, 1024, t="xavier", replace='relu', dropout=self.dropout) fc_resize = net.reshapeLayer(fc, [ common.tlen, common.stream_len, -1, 1]) lstm = net.rnnLayer(fc_resize, clips, 128, is_lstm=True ) drop = net.dropLayer(lstm, 0.3, False) reshape = net.reshapeLayer(drop, [ common.tlen * common.stream_len, -1, 1, 1 ]) out = net.fcLayer(reshape, 20, t="xavier", isout=True ) loss = net.lossLayer(out, label_multi, "sigcross", 1) acc = net.accLayer(out, label) net.netStr(netname) return
def testNet(self, margin=1): net = MyCaffeNet({"debug": True}) one_len = 5 num = 2862 d_dim = one_len + 7 + num * one_len - 1 data, label = net.dataLayer("", "mem", 64, tops=["data", "label"], memdim=[1, 1, d_dim]) #slices = net.sliceLayer(data, [d_dim]) #data = slices[0] #prop = slices[1] points = [one_len + 7 - 1] slices = net.sliceLayer(data, points) fc = net.fcLayer(slices[0], 256, replace="relu") #fc = net.batchNormLayer(fc) data_drop = net.groupDropLayer(slices[1], num, int(num * 0.8), False) #data_drop = slices[1] conv1 = net.convLayer(data_drop, [one_len, 1], [one_len, 1], 32, replace="relu") layer = net.normLayer(conv1) #layer = net.batchNormLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "max", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 16, pad_wh=[1, 0], replace="relu") conv3 = net.convLayer(conv2, [4, 1], [2, 1], 8, pad_wh=[1, 0], replace="relu") flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) helper1 = net.fcLayer(concat, 512, replace='relu', dropout=self.dropout) helper1_2 = net.fcLayer(helper1, 512, replace='relu', dropout=self.dropout) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, label, "softmax", 1) helper1_acc = net.accLayer(helper1_out, label) net.netStr(self.netname) return
def net(self, netname, is_test): net = MyCaffeNet({"debug": True}) data, label_muti, label, label_ = net.pyDataLayer( "DataTrain" if not is_test else "DataTest", "DataTrain" if not is_test else "DataTest", 0 if not is_test else 1, tops=["data", "label_muti", "label", "label_"]) onelen = 5 points = [7 + onelen] slices = net.sliceLayer(data, points) net.silenceLayer(label_) fc = net.fcLayer(slices[0], 1024, replace="relu") drop = net.groupDropLayer(slices[1], 800, 400, False) conv1 = net.convLayer(drop, [onelen, 1], [onelen, 1], 64) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) fc = net.fcLayer(concat, 2048, t="xavier", replace='relu', dropout=self.dropout) fc = net.fcLayer(fc, 2048, t="xavier", replace='relu', dropout=self.dropout) out = net.fcLayer(fc, 20, t="xavier", isout=True) out_seg = net.sigmoidLayer(out) net.silenceLayer(out_seg) loss = net.lossLayer(out, label_muti, "sigcross", 1) acc = net.accLayer(out, label) """ out2 = net.fcLayer(fc, 20, t="xavier", isout=True) loss = net.lossLayer(out2, label, "softmax", 1) out2_seg = net.softmaxLayer(out2) out_final = net.eltwiseLayer([out_seg, out2_seg], 0) acc = net.accLayer(out_final, label) """ net.netStr(netname) return
def nn_sauron(self): net = MyCaffeNet({"debug": True}) data, label = net.dataLayer("", "mem", 10, tops=["data", "label"], memdim=[1, 1, 6001]) slices = net.sliceLayer(data, [3000, 6000]) data1 = slices[0] data2 = slices[1] sim = slices[2] drop = 0.7 lr = [1, 2] ip1 = net.fcLayer(data1, 2048, replace="relu", \ dropout=drop, wname=["w1", "b1"], lr=lr) ip2 = net.fcLayer(ip1, 2048, replace="relu", \ dropout=drop, wname=["w2", "b2"], lr=lr) ip3 = net.fcLayer(ip2, 128, replace="sigmoid", \ dropout=0, wname=["w3", "b3"], lr=lr) decoder = net.fcLayer(ip3, 128, replace="sigmoid", wname=["dw", "db"], lr=lr) ip1_ = net.fcLayer(data2, 2048, replace="relu", \ dropout=drop, wname=["w1", "b1"], lr=lr) ip2_ = net.fcLayer(ip1_, 2048, replace="relu", \ dropout=drop, wname=["w2", "b2"], lr=lr) ip3_ = net.fcLayer(ip2_, 128, replace="sigmoid", \ dropout=0, wname=["w3", "b3"], lr=lr) decoder_ = net.fcLayer(ip3_, 128, replace="sigmoid", wname=["dw", "db"], lr=lr) top = net.fcLayer(ip3, 10, isout=True) loss = net.lossLayer(top, label, "softmax", 0.1) loss_sim = net.lossLayer(decoder, decoder_, "contrastive", 1, third_bottom=sim) acc = net.accLayer(top, label) net.netStr("nn_sauron.prototxt") return
def fcNet(self, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 1000 data, label = net.dataLayer("", "mem", 20, memdim=[1, 1, d_dim + 1]) fc = net.fcLayer(data, 512, replace="relu") fc = net.fcLayer(fc, 512, replace="relu") fc = net.fcLayer(fc, 512, replace="relu") out = net.fcLayer(fc, 20, t="xavier", isout=True) loss = net.lossLayer(out, label, "softmax", 1) acc = net.accLayer(out, label) net.netStr(self.netname) return
def net(self, margin=1): net = MyCaffeNet({"debug": True}) one_len = 40 trend_len = 800 d_dim = one_len * (trend_len + 1) data, label = net.dataLayer("", "mem", 64, tops=["data", "label"], memdim=[1, 1, d_dim + 20]) xy = net.sliceLayer(data, [20]) y = xy[0] data = xy[1] points = [one_len] slices = net.sliceLayer(data, points) fc = net.fcLayer(slices[0], 1024, replace="relu") drop = net.groupDropLayer(slices[1], 800, 400, False) conv1 = net.convLayer(drop, [one_len, 1], [one_len, 1], 64) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) helper1 = net.fcLayer(concat, 2048, t="xavier", replace='relu', dropout=self.dropout) helper1_2 = net.fcLayer(helper1, 2048, t="xavier", replace='relu', dropout=self.dropout) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, y, "sigcross", 1) loss_empty = net.lossLayer(label, label, "eloss", 0) helper1_acc = net.accLayer(helper1_out, label) net.netStr(self.netname) return
def fcNet(self, netname, is_test): net = MyCaffeNet({"debug": True}) data, label = net.pyDataLayer( "DataTrain" if not is_test else "DataTest", "DataTrain" if not is_test else "DataTest", 0 if not is_test else 1, ) fc = net.fcLayer(data, 512, replace="relu") fc = net.fcLayer(fc, 512, replace="relu") fc = net.fcLayer(fc, 512, replace="relu") out = net.fcLayer(fc, 20, t="xavier", isout=True) loss = net.lossLayer(out, label, "softmax", 1) acc = net.accLayer(out, label) net.netStr(netname) return
def testNet(self, single_dim, stock_dim, num, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 4012 data, label = net.dataLayer("", "mem", 128, tops=["data", "label"], memdim=[1, 1, d_dim]) """ """ points = [12] slices = net.sliceLayer(data, points) fc = net.fcLayer(slices[0], 512, replace="relu") #drop = slices[1] drop = net.groupDropLayer(slices[1], 800, 400, False) conv1 = net.convLayer(drop, [5, 1], [5, 1], 32) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "max", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 16, pad_wh=[1, 0]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 8, pad_wh=[1, 0]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) helper1 = net.fcLayer(concat, 1024, t="xavier", replace='relu', dropout=self.dropout) helper1_2 = net.fcLayer(helper1, 1024, t="xavier", replace='relu', dropout=self.dropout) helper1_out = net.fcLayer(helper1_2, 20, t="xavier", isout=True) helper1_loss = net.lossLayer(helper1_out, label, "softmax", 1) helper1_acc = net.accLayer(helper1_out, label) net.netStr(self.netname) return
def nn_sauron(self, fname, param): net = MyCaffeNet({"debug": True}) data, label = net.dataLayer( "", "mem", 32, tops=["data", "label"], memdim=[1,1,6001] ) slices = net.sliceLayer(data, [3000, 6000]) data1 = slices[0] data2 = slices[1] sim = slices[2] drop = 0.7 lr = [1, 2] ip1 = net.fcLayer(data1, 2048, replace="relu", \ dropout=drop, wname=["w1", "b1"], lr=lr) ip2 = net.fcLayer(ip1, 2048, replace="relu", \ dropout=drop, wname=["w2", "b2"], lr=lr) ip3 = net.fcLayer(ip2, 128, replace="sigmoid", \ dropout=0, wname=["w3", "b3"], lr=lr) decoder = net.fcLayer(ip3, 4, replace="sigmoid", wname=["dw", "db"], lr=lr) ip1_ = net.fcLayer(data2, 2048, replace="relu", \ dropout=drop, wname=["w1", "b1"], lr=lr) ip2_ = net.fcLayer(ip1_, 2048, replace="relu", \ dropout=drop, wname=["w2", "b2"], lr=lr) ip3_ = net.fcLayer(ip2_, 128, replace="sigmoid", \ dropout=0, wname=["w3", "b3"], lr=lr) decoder_ = net.fcLayer(ip3_, 4, replace="sigmoid", wname=["dw", "db"], lr=lr) #concat = net.concatLayer(*(ip3, ip3_)) #top = net.fcLayer(concat, 20, isout=True) top = net.fcLayer(ip3, 10, isout=True) loss = net.lossLayer(top, label, "softmax", 1) loss_sim = net.lossLayer(decoder, decoder_, "contrastive", 0, third_bottom=sim, param={"margin": param["margin"]}) acc = net.accLayer(top, label) net.netStr(fname) return
def alexNet(self, single_dim, stock_dim, num, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 36768 data, label = net.dataLayer( "", "mem", 32, tops=["data", "label"], memdim=[1,1,d_dim*2+1] ) datas = net.sliceLayer(data, [d_dim, d_dim*2]) sim = datas[2] points = [single_dim] dim_nn = 2048 drop_out = 0.7 " the normal side" slices = net.sliceLayer(datas[0], points) fc = net.fcLayer(slices[0], dim_nn, replace="relu", wname=["fc1_w", "fc1_b"], lr=[1, 2]) fc = net.ippLayer(fc, dim_nn, wname=["ipp_w", "ipp_b"], lr=[1, 2]) conv1 = net.convLayer( slices[1], [stock_dim, 1], [stock_dim, 1], 64, wname=["conv1_w", "conv1_b"], lr=[1, 2]) pool1 = net.poolLayer(conv1, [5, 1], [1, 1], "ave") norm1 = net.normLayer(pool1) conv2 = net.convLayer(norm1, [5, 1], [2, 1], 64, wname=["conv2_w", "conv2_b"], lr=[1, 2]) pool2 = net.poolLayer(conv2, [5, 1], [1, 1], "ave") conv3 = net.convLayer(pool2, [5, 1], [1, 1], 32, pad_wh=[4,0], wname=["conv3_w", "conv3_b"], lr=[1, 2]) pool3 = net.poolLayer(conv3, [5, 1], [2, 1], "max") flat1 = net.flattenLayer(pool3) concat = net.concatLayer(*[fc, flat1]) top1 = net.fcLayer(concat, dim_nn, replace="relu", dropout=drop_out, wname=["fc2_w", "fc2_b"], lr=[1, 2]) top2 = net.fcLayer(top1, dim_nn, replace="relu", dropout=drop_out, wname=["fc3_w", "fc3_b"], lr=[1, 2]) decoder = net.fcLayer(top2, 128, replace="sigmoid", wname=["dw", "db"], lr=[1, 2]) " the normal side start" " the pair side start" slices = net.sliceLayer(datas[1], points) fc = net.fcLayer(slices[0], dim_nn, replace="relu", wname=["fc1_w", "fc1_b"], lr=[1, 2]) fc = net.ippLayer(fc, dim_nn, wname=["ipp_w", "ipp_b"], lr=[1, 2]) conv1 = net.convLayer( slices[1], [stock_dim, 1], [stock_dim, 1], 64, wname=["conv1_w", "conv1_b"], lr=[1, 2]) pool1 = net.poolLayer(conv1, [5, 1], [1, 1], "ave") norm1 = net.normLayer(pool1) conv2 = net.convLayer(norm1, [5, 1], [2, 1], 64, wname=["conv2_w", "conv2_b"], lr=[1, 2]) pool2 = net.poolLayer(conv2, [5, 1], [1, 1], "ave") conv3 = net.convLayer(pool2, [5, 1], [1, 1], 32, pad_wh=[4,0], wname=["conv3_w", "conv3_b"], lr=[1, 2]) pool3 = net.poolLayer(conv3, [5, 1], [2, 1], "max") flat1 = net.flattenLayer(pool3) concat = net.concatLayer(*[fc, flat1]) top1 = net.fcLayer(concat, dim_nn, replace="relu", dropout=drop_out, wname=["fc2_w", "fc2_b"], lr=[1, 2]) top2_ = net.fcLayer(top1, dim_nn, replace="relu", dropout=drop_out, wname=["fc3_w", "fc3_b"], lr=[1, 2]) decoder_ = net.fcLayer(top2_, 128, replace="sigmoid", wname=["dw", "db"], lr=[1, 2]) " the pair side end" top3 = net.fcLayer(top2, 20, isout=True, lr=[1, 2]) loss = net.lossLayer(top3, label, "softmax", 1) loss_sim = net.lossLayer(decoder, decoder_, "contrastive", 0, third_bottom=sim, param={"margin": margin}) acc = net.accLayer(top3, label) net.netStr(self.netname) return
def testNet(self, fname): self.nt = MyCaffeNet({"debug": True}) #self.convNet(fname, True) self.net(fname, True)
def trainNet(self, fname): self.nt = MyCaffeNet({"debug": True}) #self.convNet(fname, False) self.net(fname, False)
def testNet(self, fname): self.net_model = MyCaffeNet({"debug": True}) self.net(fname, True)
def trainNet(self, fname): self.net_model = MyCaffeNet({"debug": True}) self.net(fname, False)
def testNetSim(self, single_dim, stock_dim, num, margin=1): net = MyCaffeNet({"debug": True}) d_dim = 4012 data, label = net.dataLayer( "", "mem", 64, tops=["data", "label"], memdim=[1,1,d_dim*2+1] ) datas = net.sliceLayer(data, [d_dim, d_dim*2]) sim = datas[2] points = [12] " the normal side" slices = net.sliceLayer(datas[0], points) fc = net.fcLayer(slices[0], 1024, replace="relu", wname=["fc1_w", "fc1_b"], lr=[1, 2]) drop = net.groupDropLayer(slices[1], 800, 600, False) conv1 = net.convLayer(drop, [5, 1], [5, 1], 64, wname=["conv1_w", "conv1_b"], lr=[1, 2]) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0], wname=["conv2_w", "conv2_b"], lr=[1, 2]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0], wname=["conv3_w", "conv3_b"], lr=[1, 2]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) fc = net.fcLayer(concat, 2048, replace='relu', dropout=0, wname=["fc2_w", "fc2_b"], lr=[1, 2]) drop = net.dropLayer(fc, self.dropout) fc = net.fcLayer(drop, 2048, replace='relu', dropout=0, wname=["fc3_w", "fc3_b"], lr=[1, 2]) drop1 = net.dropLayer(fc, self.dropout) decoder = net.fcLayer(drop1, 128, replace="sigmoid", wname=["dw", "db"], lr=[1, 2]) " the normal side start" out = net.fcLayer(drop1, 20, t="xavier", isout=True) " the pair side start" slices = net.sliceLayer(datas[1], points) fc = net.fcLayer(slices[0], 1024, replace="relu", wname=["fc1_w", "fc1_b"], lr=[1, 2]) drop = net.groupDropLayer(slices[1], 800, 600, False) conv1 = net.convLayer(drop, [5, 1], [5, 1], 64, wname=["conv1_w", "conv1_b"], lr=[1, 2]) layer = net.normLayer(conv1) pool1 = net.poolLayer(layer, [6, 1], [2, 1], "ave", pad_wh=[2, 0]) conv2 = net.convLayer(pool1, [4, 1], [2, 1], 32, pad_wh=[1, 0], wname=["conv2_w", "conv2_b"], lr=[1, 2]) conv3 = net.convLayer(conv2, [4, 1], [2, 1], 16, pad_wh=[1, 0], wname=["conv3_w", "conv3_b"], lr=[1, 2]) flat = net.flattenLayer(conv3) concat = net.concatLayer(*[fc, flat]) fc = net.fcLayer(concat, 2048, replace='relu', dropout=0, wname=["fc2_w", "fc2_b"], lr=[1, 2]) drop = net.dropLayer(fc, self.dropout) fc = net.fcLayer(drop, 2048, replace='relu', dropout=0, wname=["fc3_w", "fc3_b"], lr=[1, 2]) drop1_ = net.dropLayer(fc, self.dropout) decoder_ = net.fcLayer(drop1_, 128, replace="sigmoid", wname=["dw", "db"], lr=[1, 2]) " the pair side end" loss = net.lossLayer(out, label, "softmax", 0.01) acc = net.accLayer(out, label) loss_sim = net.lossLayer(decoder, decoder_, "contrastive", 1, third_bottom=sim, param={"margin": margin}) net.netStr(self.netname) return