summaryrefslogblamecommitdiff
path: root/examples/tnet_preprocessing_example.lua
blob: 5f20910e038a899533361667e7e0663b94c496f5 (plain) (tree)
1
2
3
                   
           
                                         

































                                                                                










                                                                             
 


                                                                             
 
                                     








                                                                          



                                    

                      
                                                




                                               
require 'libspeech'
frm_ext = 5
gconf = {cumat_type = nerv.CuMatrixFloat,
        batch_size = 158}
param_repo = nerv.ParamRepo({"global_transf.nerv"})
sublayer_repo = nerv.LayerRepo(
    {
        ["nerv.BiasLayer"] =
        {
            blayer1 = {{bias = "bias1"}, {dim_in = {429}, dim_out = {429}}},
            blayer2 = {{bias = "bias2"}, {dim_in = {429}, dim_out = {429}}}
        },
        ["nerv.WindowLayer"] =
        {
            wlayer1 = {{window = "window1"}, {dim_in = {429}, dim_out = {429}}},
            wlayer2 = {{window = "window2"}, {dim_in = {429}, dim_out = {429}}}
        }
    }, param_repo, gconf)

layer_repo = nerv.LayerRepo(
    {
        ["nerv.DAGLayer"] =
        {
            main = {{}, {
                dim_in = {429}, dim_out = {429},
                sub_layers = sublayer_repo,
                connections = {
                    ["<input>[1]"] = "blayer1[1]",
                    ["blayer1[1]"] = "wlayer1[1]",
                    ["wlayer1[1]"] = "blayer2[1]",
                    ["blayer2[1]"] = "wlayer2[1]",
                    ["wlayer2[1]"] = "<output>[1]"
                }
            }}
        }
    }, param_repo, gconf)

feat_repo = nerv.TNetFeatureRepo(
                                "/slfs1/users/mfy43/swb_ivec/train_bp.scp",
                                "/slfs1/users/mfy43/swb_ivec/plp_0_d_a.conf",
                                frm_ext)
lab_repo = nerv.TNetLabelRepo(
                                "/slfs1/users/mfy43/swb_ivec/ref.mlf",
                                "map",
                                "/slfs1/users/mfy43/swb_ivec/dict",
                                "*/",
                                "lab")
feat_utter = feat_repo:cur_utter()

-- print(feat_utter)
-- lab_utter = lab_repo:get_utter(feat_repo, feat_utter:nrow() - frm_ext * 2)
-- print(lab_utter)

cf2 = nerv.ChunkFile("feat_256", "r")
input = cf2:read_chunk("input", gconf)

step = frm_ext * 2 + 1
expanded = nerv.CuMatrixFloat(feat_utter:nrow(), feat_utter:ncol() * step)
expanded:expand_frm(nerv.CuMatrixFloat.new_from_host(feat_utter), frm_ext)

rearranged = expanded:create()
rearranged:rearrange_frm(expanded, step)

output = {expanded:create()}
main = layer_repo:get_layer("main")
main:init()
main:propagate({rearranged}, output)

for i = 0, 157 - 10 do
    row_diff = input.trans[i] - output[1][i + 5]
    for j = 0, row_diff:ncol() - 1 do
        nerv.utils.printf("%.8f ", row_diff[j])
    end
    nerv.utils.printf("\n")
end