8.2.3 高度なハイパーパラメータ・カスタマイズ
豊富なハイパーパラメータ・カスタマイズを使用してGraphWiseモデルを作成できます。
これは、次の2つのサブ構成クラスによって行われます。
GraphWiseConvLayerConfig
GraphWisePredictionLayerConfig
次のコードは、GraphWiseモデルで前述のクラスを使用した構成の実装を説明しています。
ノート:
Graph Server and Clientリリース21.2以降、次のいずれかのオプションを使用してモデルを作成できます。
- 頂点プロパティのみ
- エッジ・プロパティのみ
- 頂点とエッジの両方のプロパティ
opg4j> var weightProperty = analyst.pagerank(trainGraph).getName();
opg4j> var convLayerConfig = analyst.graphWiseConvLayerConfigBuilder().
setNumSampledNeighbors(25).
setActivationFunction(ActivationFunction.TANH).
setWeightInitScheme(WeightInitScheme.XAVIER).
setWeightedAggregationProperty(weightProperty).
build()
opg4j> var predictionLayerConfig = analyst.graphWisePredictionLayerConfigBuilder().
setHiddenDimension(32).
setActivationFunction(ActivationFunction.RELU).
setWeightInitScheme(WeightInitScheme.HE).
build()
opg4j> var model = analyst.supervisedGraphWiseModelBuilder().
setVertexInputPropertyNames("features").
setVertexTargetPropertyName("labels").
setEdgeInputPropertyNames("cost").
setConvLayerConfigs(convLayerConfig).
setPredictionLayerConfigs(predictionLayerConfig).
build()
String weightProperty = analyst.pagerank(trainGraph).getName()
GraphWiseConvLayerConfig convLayerConfig = analyst.graphWiseConvLayerConfigBuilder()
.setNumSampledNeighbors(25)
.setActivationFunction(ActivationFunction.TANH)
.setWeightInitScheme(WeightInitScheme.XAVIER)
.setWeightedAggregationProperty(weightProperty)
.build();
GraphWisePredictionLayerConfig predictionLayerConfig = analyst.graphWisePredictionLayerConfigBuilder()
.setHiddenDimension(32)
.setActivationFunction(ActivationFunction.RELU)
.setWeightInitScheme(WeightInitScheme.HE)
.build();
SupervisedGraphWiseModel model = analyst.supervisedGraphWiseModelBuilder()
.setVertexInputPropertyNames("features")
.setVertexTargetPropertyName("labels")
.setEdgeInputPropertyNames("cost")
.setConvLayerConfigs(convLayerConfig)
.setPredictionLayerConfigs(predictionLayerConfig)
.build();
weightProperty = analyst.pagerank(train_graph).name
conv_layer_config = dict(num_sampled_neighbors=25,
activation_fn='tanh',
weight_init_scheme='xavier',
neighbor_weight_property_name=weightProperty)
conv_layer = analyst.graphwise_conv_layer_config(**conv_layer_config)
pred_layer_config = dict(hidden_dim=32,
activation_fn='relu',
weight_init_scheme='he')
pred_layer = analyst.graphwise_pred_layer_config(**pred_layer_config)
params = dict(vertex_target_property_name="labels",
conv_layer_config=[conv_layer],
pred_layer_config=[pred_layer],
edge_input_property_names=["cost"],
vertex_input_property_names=["features"],
seed=17)
model = analyst.supervised_graphwise_builder(**params)
使用可能なすべてのハイパーパラメータとそのデフォルト値の詳細は、JavadocのSupervisedGraphWiseModelBuilder、GraphWiseConvLayerConfigBuilderおよびGraphWisePredictionLayerConfigBuilderを参照してください。