2019 年 9 月 3 日 — 作者:Sujith Ravi(高级研究员)和 Juan Da-Cheng(高级软件工程师)
我们很高兴地宣布推出 TensorFlow 中的神经结构化学习,这是一个易于使用的框架,无论是新手还是高级开发者都可以使用它来训练具有结构化信号的神经网络。神经结构化学习 (NSL) 可以应用于构建准确且稳健的模型,用于视觉、语言理解和一般的预测。
python pack_nbrs.py --max_nbrs=5 \
labeled_data.tfr \
unlabeled_data.tfr \
graph.tsv \
merged_examples.tfr
import neural_structured_learning as nsl
# Create a custom model — sequential, functional, or subclass.
base_model = tf.keras.Sequential(…)
# Wrap the custom model with graph regularization.
graph_config = nsl.configs.GraphRegConfig(neighbor_config=nsl.configs.GraphNeighborConfig(max_neighbors=1))
graph_model = nsl.keras.GraphRegularization(base_model, graph_config)
# Compile, train, and evaluate.
graph_model.compile(optimizer=’adam’, loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=[‘accuracy’])
graph_model.fit(train_dataset, epochs=5)
graph_model.evaluate(test_dataset)
用不到 5 行代码(包括注释!),我们就得到了一个在训练期间利用图信号的神经模型。根据经验,使用图结构允许模型能够使用更少的标记数据进行训练,而不会损失太多精度(例如,原始监督的 10% 甚至 1%)。
import neural_structured_learning as nsl
# Create a base model — sequential, functional, or subclass.
model = tf.keras.Sequential(…)
# Wrap the model with adversarial regularization.
adv_config = nsl.configs.make_adv_reg_config(multiplier=0.2, adv_step_size=0.05)
adv_model = nsl.keras.AdversarialRegularization(model, adv_config=adv_config)
# Compile, train, and evaluate.
adv_model.compile(optimizer=’adam’, loss=’sparse_categorical_crossentropy’, metrics=[‘accuracy’])
adv_model.fit({‘feature’: x_train, ‘label’: y_train}, epochs=5)
adv_model.evaluate({‘feature’: x_test, ‘label’: y_test})
2019 年 9 月 3 日 — 作者:Juan Da-Cheng(高级软件工程师)和 Sujith Ravi (高级研究员)
我们很高兴推出 TensorFlow 中的神经结构化学习,这是一个易于使用的框架,初级和高级开发人员都可以使用它来训练具有结构化信号的神经网络。神经结构化学习 (NSL) 可用于构建用于视觉、l… 的准确而鲁棒的模型。