Skip to content

Commit

Permalink
add serialization_complex_example.lua
Browse files Browse the repository at this point in the history
  • Loading branch information
sploving committed Jul 20, 2011
1 parent 0e4d085 commit b3eb376
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 0 deletions.
120 changes: 120 additions & 0 deletions examples/undocumented/lua_modular/serialization_complex_example.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
require 'shogun'
require 'load'

parameter_list={{5,1,10, 2.0, 10}, {10,0.3,2, 1.0, 0.1}}

function check_status(status)

assert(status == true)
-- if status:
-- print "OK reading/writing .h5\n"
--else:
-- print "ERROR reading/writing .h5\n"
end

function concatenate(...)
local result = ...
for _,t in ipairs{select(2, ...)} do
for row,rowdata in ipairs(t) do
for col,coldata in ipairs(rowdata) do
table.insert(result[row], coldata)
end
end
end
return result
end

function rand_matrix(rows, cols, dist)
local matrix = {}
for i = 1, rows do
matrix[i] = {}
for j = 1, cols do
matrix[i][j] = math.random() + dist
end
end
return matrix
end

function generate_lab(num)
lab={}
for i=1,num do
lab[i]=0
end
for i=num+1,2*num do
lab[i]=1
end
for i=2*num+1,3*num do
lab[i]=2
end
for i=3*num+1,4*num do
lab[i]=3
end
return lab
end

function serialization_complex_example(num, dist, dim, C, width)

math.randomseed(17)

data=concatenate(rand_matrix(dim, num, 0), rand_matrix(dim, num, dist), rand_matrix(dim, num, 2 * dist), rand_matrix(dim, num, 3 * dist))

lab=generate_lab(num)

feats=RealFeatures(data)
kernel=GaussianKernel(feats, feats, width)

labels=Labels(lab)

svm = GMNPSVM(C, kernel, labels)

feats:add_preprocessor(NormOne())
feats:add_preprocessor(LogPlusOne())
feats:set_preprocessed(1)
svm:train(feats)

fstream = SerializableHdf5File("blaah.h5", "w")
status = svm:save_serializable(fstream)
check_status(status)

fstream = SerializableAsciiFile("blaah.asc", "w")
status = svm:save_serializable(fstream)
check_status(status)

fstream = SerializableJsonFile("blaah.json", "w")
status = svm:save_serializable(fstream)
check_status(status)

fstream = SerializableXmlFile("blaah.xml", "w")
status = svm:save_serializable(fstream)
check_status(status)


fstream = SerializableHdf5File("blaah.h5", "r")
new_svm=GMNPSVM()
status = new_svm:load_serializable(fstream)
check_status(status)
new_svm:train()

fstream = SerializableAsciiFile("blaah.asc", "r")
new_svm=GMNPSVM()
status = new_svm:load_serializable(fstream)
check_status(status)
new_svm:train()

fstream = SerializableJsonFile("blaah.json", "r")
new_svm=GMNPSVM()
status = new_svm:load_serializable(fstream)
check_status(status)
new_svm:train()

fstream = SerializableXmlFile("blaah.xml", "r")
new_svm=GMNPSVM()
status = new_svm:load_serializable(fstream)
check_status(status)
new_svm:train()

return svm,new_svm
end

print 'Serialization SVMLight'
serialization_complex_example(unpack(parameter_list[1]))
5 changes: 5 additions & 0 deletions src/interfaces/lua_modular/shogun.lua
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,8 @@ RecallMeasure = modshogun.RecallMeasure
PrecisionMeasure = modshogun.PrecisionMeasure
SpecificityMeasure = modshogun.SpecificityMeasure
ClassicIsomap = modshogun.ClassicIsomap
GMNPSVM = modshogun.GMNPSVM
SerializableHdf5File = modshogun.SerializableHdf5File
SerializableAsciiFile = modshogun.SerializableAsciiFile
SerializableJsonFile = modshogun.SerializableJsonFile
SerializableXmlFil = modshogun.SerializableXmlFil

0 comments on commit b3eb376

Please sign in to comment.