数据完全存于内存的数据集类
如何利用容量大于内存的数据集训练神经网络
在训练神经网络的时候,我们常常会遇到训练集大于RAM的情况。
如果直接暴力读取会出现MemoryError,那这个时候我们应该怎么办呢?
Dataset类在__init__()中把你的数据集全都遍历一遍,然后生成一个惰性迭代器。之后在你需要数据的时候,输入数据的index他就只会加载你需要的数据,而不是一下子全部加载到RAM中。那有人会问,你这不是还要遍历一遍完整的数据集吗,遍历的时候不是还是需要加载到RAM中吗?对没错,确实需要,但是遍历的时候只是让Dataset获取数据的keys.也就是为了得到数据集中每个sample的索引而遍历的,方便之后在__getitem__()中利用index找到你所需要的数据
数据完全存于内存可以加快速度
单一GPU每秒可执行万亿次浮点运算(TFLOPS),意味着其运算执行速度可达到普通CPU的10到1000倍。为了让GPU正常执行这些运算,数据必须存放在GPU内存当中。将数据加载至GPU内存中的速度越快,运算执行速度也就越快。其中的挑战在于如何优化I/O或网络操作,保证GPU在计算当中不必反复等待数据的传入。
节点预测与边预测任务实践
实际应用中SIGN表现出色
高效性和简便性,SIGN可作为基线图学习方法应用于不同大规模图数据。更重要的是,这种简单模型的成功引起我们的思考:是否真的需要深度图神经网络?发现在社交网络和“小世界”图学习的许多问题中,应该使用更丰富的本地结构,而不是野蛮的堆积深度架构。不过值得注意的是&#