HodgeExperiments.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:SlidingWindowVideoTDA 作者: ctralie 项目源码 文件源码
def doBatchExperiments(N, omissions, flips, NTrials = 10):
    I, J = np.meshgrid(np.arange(N), np.arange(N))
    I = I[np.triu_indices(N, 1)]
    J = J[np.triu_indices(N, 1)]

    Rankings = np.zeros((len(omissions), len(flips), NTrials, N))
    INorms = np.zeros((len(omissions), len(flips), NTrials))
    HNorms = np.zeros((len(omissions), len(flips), NTrials))

    for t in range(NTrials):
        for i in range(0, len(omissions)):
            om = omissions[i]
            NEdges = int(len(I)*(1-om))
            for j in range(len(flips)):
                print("Doing trial %i of %i, omission %i of %i, flip %i of %i"%(t, NTrials, i, len(omissions), j, len(flips)))

                R = np.zeros((NEdges, 2))
                idx = np.random.permutation(len(I))[0:NEdges]
                R[:, 0] = I[idx]
                R[:, 1] = J[idx]

                f = flips[j]
                Y = np.ones(NEdges)
                W = 0.5 + 0.5*np.random.rand(NEdges)
                #W = np.ones(NEdges)
                NFlips = int(f*len(Y))
                Y[np.random.permutation(NEdges)[0:NFlips]] = -1

                (s, IM, H) = doHodge(R, W, Y, verbose = True)
                Rankings[i, j, t, :] = s
                [INorms[i, j, t], HNorms[i, j, t]] = [getWNorm(IM, W), getWNorm(H, W)]
        KTScores = scoreBatchRankings(Rankings)
        sio.savemat("BatchResults.mat", {"Rankings":Rankings, "INorms":INorms, "HNorms":HNorms, "omissions":omissions, "flips":flips, "KTScores":KTScores})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号