rstriv / Know-Evolve

Implementation code for ICML '17 paper "Deep Temporal Reasoning for Dynamic Knowledge Graphs"
108 stars 22 forks source link

Cannot run this code on other dataset, the program suddenly exit in TestLoop. #11

Open SeanLiaoy opened 4 years ago

SeanLiaoy commented 4 years ago

I have successfully run the "run_small.sh" and "run_large.sh". Now I am trying to run the experiment on other dataset by modifying "run_largh.sh". However, it' fine in Training but the program suddenly exits in TestLoop. The only difference between the dataset I used and icews(full) the author provided is: I deleted first 2776 lines data in "train.txt" in icews(full) and set cfg::skip to 0. I think it's actually the same result because the cfg::skip in "run_large.sh" was set to 2776 to skip the first 2776 lines in "train.txt".

image

I checked the core dump file and loaded it using GDB. Here is the information provided by core file.

Core was generated by `./build/main -cur_iter 0 -max_iter 20 -bptt 200 -lr 0.0005 -l2 0.00 -embed_E 64'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000004138f9 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::_Alloc_hider (__a=...,
    __dat=<optimized out>, this=<optimized out>)
    at /usr/include/c++/5/bits/basic_string.h:109
109     : allocator_type(__a), _M_p(__dat) { }
[Current thread is 1 (Thread 0x7f0154004740 (LWP 27924))]
(gdb) where
#0  0x00000000004138f9 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::_Alloc_hider (__a=..., __dat=<optimized out>, this=<optimized out>) at /usr/include/c++/5/bits/basic_string.h:109
#1  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (
    __str=<error reading variable: Cannot access memory at address 0x10>, this=0x7ffdc16b53e0)
    at /usr/include/c++/5/bits/basic_string.h:399
#2  NNGraph<(MatMode)0, double>::InsertLayer (this=this@entry=0x997e80 <gnn>, layer=layer@entry=0x23031d10,
    operands=std::vector of length 12498, capacity 12498 = {...}) at ../graphnn_base/include/graphnn/nngraph.h:77
#3  0x0000000000408c0a in gl<SparseSurvivalNllLayer, (MatMode)0, double, int&, int&, LinearParam<(MatMode)0, double>*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, NNGraph<(MatMode)0, double>&, std::vector<ILayer<(MatMode)0, double>*, std::allocator<ILayer<(MatMode)0, double>*> >, int&, int&, LinearParam<(MatMode)0, double>*&&) (operands=<error reading variable: access outside bounds of object referenced via synthetic pointer>, gnn=...,
    name_prefix=<error reading variable: access outside bounds of object referenced via synthetic pointer>)
    at ./include/layer_holder.h:38
#4  BuildOutput (cur_time=..., cur_event=cur_event@entry=0x463ec30, inputs=std::map with 1 elements = {...},
    layer_buf=std::vector of length 12498, capacity 12498 = {...}, is_last=<optimized out>) at src/main.cpp:275
#5  0x000000000040b17f in TestLoop (latest_embeddings=std::vector of length 12498, capacity 12498 = {...},
    lookup_entity_onehot=std::vector of length 12498, capacity 12498 = {...},
    lookup_rel_onehot=std::vector of length 261, capacity 261 = {...},
    lookup_entity_init=std::vector of length 12498, capacity 12498 = {...},
    lookup_rel_init=std::vector of length 261, capacity 261 = {...}) at src/main.cpp:509
#6  0x000000000040cdac in MainLoop () at src/main.cpp:642
#7  0x0000000000405d04 in main (argc=<optimized out>, argv=<optimized out>) at src/main.cpp:771
(gdb)