2.用这个model去猜测 dev 数据,获得loss 和 prediction print 'Training loss: {}'.format(train_loss) print 'Training acc: {}'.format(train_acc) print 'Validation loss: {}'.format(val_loss) if val_loss < best_val_loss: # 用 val 数据的loss去找最小的loss best_val_loss = val_loss best_val_epoch = epoch if not os.path.exists("./weights"): os.makedirs("./weights") saver.save(session, './weights/ner.weights') # 把最小的 loss 对应的 weights 保存起来 if epoch - best_val_epoch > config.early_stopping: break ### confusion = calculate_confusion(config, predictions, model.y_dev) # 3.把 dev 的lable数据放进去,计算prediction的confusion print_confusion(confusion, model.num_to_tag) print 'Total time: {}'.format(time.time() - start) saver.restore(session, './weights/ner.weights') # 再次加载保存过的 weights,用 test 数据做猜测,获得猜测结不雅 print 'Test' print '=-=-=' print 'Writing predictions to q2_test.predicted' _, predictions = model.predict(session, model.X_test, model.y_test) save_predictions(predictions, "q2_test.predicted") # 把猜测结不雅保存起来 if __name__ == "__main__": test_NER() 4.模型是怎么练习的呢?
起首导入数据 training,validation,test:
- # Load the training set
- docs = du.load_dataset('data/ner/train')
-
- # Load the dev set (for tuning hyperparameters)
- docs = du.load_dataset('data/ner/dev')
-
- # Load the test set (dummy labels only)
- docs = du.load_dataset('data/ner/test.masked')
把单词转化成>
def add_embedding(self): with tf.device('/cpu:0'): embedding = tf.get_variable('Embedding', [len(
推荐阅读
你真的了解混合云吗?钻入云端看几个让人混淆的云计算概念
【51CTO.com原创稿件】云计算慢慢进入深水区,传统的公有云和私有云都已经裸露出必定的局限性,是以混淆云似乎>>>详细阅读
本文标题:用深度神经网络处理NER命名实体识别问题
地址:http://www.17bianji.com/lsqh/35497.html
1/2 1