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".
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)
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".
I checked the core dump file and loaded it using GDB. Here is the information provided by core file.