-1

モデル ファイルをモデリングするために liblinear を実行しました。

Python コードは次のとおりです。

y, x = svm_read_problem(vector_file)
prob = problem(y, x)
param = parameter('-s 2 -c 1')
m = train(prob, param)
save_model(model_file, m)

問題は、vector_file が約 247MB の場合、liblinear を実行したときのメモリの総コストが約 3.08GB になることです。なぜそんなに費用がかかるのですか?

また、私のプロジェクトでは、vector_file は 2GB にもなります。liblinear を使用して問題をトレーニングし、モデル ファイルを取得するにはどうすればよいですか?

4

1 に答える 1

1

わかりました、問題の理由がわかりました。

問題を読むと、liblinear の python インターフェイスは次のように使用されます。

prob_y = []
prob_x = []

for line in open(data_file_name):
    line = line.split(None, 1)
    # In case an instance with all zero features
    if len(line) == 1: line += ['']
    label, features = line
    xi = {}
    for e in features.split():
        ind, val = e.split(":")
        xi[int(ind)] = float(val)
    prob_y += [float(label)]
    prob_x += [xi]

return (prob_y, prob_x)

Python では、int が 28 バイト、float が 24 バイトと、私の想像を超えています。

そのような場合は著者に投稿します。

于 2014-08-22T05:21:54.250 に答える