我使用numpy memmap在文件上有一个numpy数组,我可以像这样加载此training.dat(28兆字节):
#retrieve training array from disk in read mode
training = np.memmap('training.dat', dtype=np.ndarray, mode='r', shape=(1800018, 2))
print(len(training)) # output = 1,800,018
训练数组中有180万个元素。训练数组的每个元素都是一个包含2个元素的数组,这两个元素也都是数组。第一个元素是int []长度= 1,784,458,第二个元素是string []长度= 1,800,018。
接下来,将这2个数组元素分配给Tensorflow的x,y:
#trainX contains the Bag of words and train_y contains the label/ category
train_x = training[:,0]
train_y = training[:,1]
这是内核死亡的地方:
# reset underlying graph data
tf.reset_default_graph()
# Build neural network
net = tflearn.input_data(shape=[None, len(train_x[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(train_y[0]), activation='softmax')
net = tflearn.regression(net)
# Define model and setup tensorboard
model = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
# Start training (apply gradient descent algorithm)
model.fit(train_x, train_y, n_epoch=35, batch_size=8, show_metric=True)
model.save('model.tflearn')
我的Linux 64位计算机具有8GB RAM和8核Intel®Xeon®CPU E5-2680 @ 2.70GHz。
使用top
监视资源,在内核死之前我并没有看到处理器或ram受到很大的影响。
我正在使用Jupyter笔记本执行我的Python代码,当附加到终端中的Jupyter exe时,没有看到任何输出错误。
不确定这里发生了什么,并希望获得一些指导。