报错
TypeError: unsupported operand type(s) for /: 'map' and 'int'
只需要把程序中的对应的map处改成如下,前面加一个list就可以啦!
AttributeError: module 'tensorflow' has no attribute 'placeholder'
说明在tf2下使用了tf1的API。卸载当前tensorflow并安装tensorflow==1.15.0。
代码理解
数据预处理
data_process.format_data(seqs, batch_size, num_skills)
函数中,
x = pad_sequences(np.array([[(j[0] + num_skills * j[1]) for j in i[:-1]] for i in seqs_in]), maxlen=max_len, padding='post', value=-1)
padding='post'
在结尾补位,value=-1
补位值为-1
- 对该batch中的每一个学生的表现序列,取序列的前len(序列)-1个表现二维数组,做运算
j[0] + num_skills * j[1]
,后面使用-1
补齐 j[0] + num_skills * j[1]
使用j[1]
(0或1)乘以知识点数目的目的是:如果不乘的话,使用j[0]
知识点序号加一个小于知识点数目的值,无法区分该数是知识点序号,还是知识点序号+答对记录