예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
    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
예제 #5
0
    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
예제 #6
0
    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
예제 #7
0
    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
예제 #8
0
    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
예제 #9
0
    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
예제 #10
0
    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
예제 #11
0
    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
예제 #12
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
    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
예제 #13
0
    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
예제 #14
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
 def testNet(self, fname):
     self.nt = MyCaffeNet({"debug": True})
     #self.convNet(fname, True)
     self.net(fname, True)
예제 #15
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
 def trainNet(self, fname):
     self.nt = MyCaffeNet({"debug": True})
     #self.convNet(fname, False)
     self.net(fname, False)
예제 #16
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
 def testNet(self, fname):
     self.net_model = MyCaffeNet({"debug": True})
     self.net(fname, True)
예제 #17
0
파일: Net.py 프로젝트: xiaojingyi/finTest2
 def trainNet(self, fname):
     self.net_model = MyCaffeNet({"debug": True})
     self.net(fname, False)
예제 #18
0
    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