The code and datasets are dramatically messy with poor readability and bad format, and this model can not be easily applied on other datasets. Moreover, even on the offered datasets, the code is not executed successfully (without any modification, just as what you provided).
Information:
Traceback (most recent call last):
File "/tmp/SCD/main.py", line 145, in <module>
train(args, construct_local_map(args))
File "/tmp/SCD/main.py", line 65, in train
predict(args, local_map, net, epoch)
File "/tmp/SCD/main.py", line 84, in predict
output = net.forward_test(input_stu_ids, input_exer_ids, input_knowledge_embs, input_nodes, output_nodes, blocks)
File "/tmp/SCD/model.py", line 100, in forward_test
node_emb2 = self.gnet2(blocks[1], node_emb1)
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/tmp/SCD/gnn.py", line 55, in forward
dstdata = self.mods[etype](rel_graph, (src_inputs[stype], dst_inputs[dtype]), *mod_args.get(etype, ()), **mod_kwargs.get(etype, {}))
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/dgl/nn/pytorch/conv/gatconv.py", line 295, in forward
graph.dstdata.update({'er': er})
File "/root/miniconda3/lib/python3.8/_collections_abc.py", line 832, in update
self[key] = other[key]
File "/root/miniconda3/lib/python3.8/site-packages/dgl/view.py", line 81, in __setitem__
self._graph._set_n_repr(self._ntid, self._nodes, {key : val})
File "/root/miniconda3/lib/python3.8/site-packages/dgl/heterograph.py", line 4000, in _set_n_repr
self._node_frames[ntid].update(data)
File "/root/miniconda3/lib/python3.8/_collections_abc.py", line 832, in update
self[key] = other[key]
File "/root/miniconda3/lib/python3.8/site-packages/dgl/frame.py", line 405, in __setitem__
self.update_column(name, data)
File "/root/miniconda3/lib/python3.8/site-packages/dgl/frame.py", line 478, in update_column
raise DGLError('Expected data to have %d rows, got %d.' %
dgl._ffi.base.DGLError: Expected data to have 225 rows, got 223.
The code and datasets are dramatically messy with poor readability and bad format, and this model can not be easily applied on other datasets. Moreover, even on the offered datasets, the code is not executed successfully (without any modification, just as what you provided).
Information: