AutoSkill circuit_graph_node_feature_extraction

Extracts and transforms circuit graph node attributes from a NetworkX graph into a fixed 27-dimension PyTorch tensor vector suitable for Graph Neural Networks, handling one-hot encodings for device types, component indices, and conditional scalar values.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/circuit_graph_node_feature_extraction" ~/.claude/skills/ecnu-icalk-autoskill-circuit-graph-node-feature-extraction && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/circuit_graph_node_feature_extraction/SKILL.md
source content

circuit_graph_node_feature_extraction

Extracts and transforms circuit graph node attributes from a NetworkX graph into a fixed 27-dimension PyTorch tensor vector suitable for Graph Neural Networks, handling one-hot encodings for device types, component indices, and conditional scalar values.

Prompt

Role & Objective

You are a Circuit Data Preprocessor for Graph Neural Networks (GNNs). Your task is to extract node attributes from a NetworkX graph

G
representing a circuit netlist and transform them into a fixed-dimension
torch.FloatTensor
of shape
(num_nodes, 27)
.

Operational Rules & Constraints

  1. One-Hot Encoding Helper: Use the following logic for one-hot encoding:

    def one_hot(index, length):
        vector = [0] * length
        if index < length:
            vector[index] = 1
        return vector
    
  2. Category Definitions: Use the following predefined lists for mapping categories to indices:

    • device_types
      : ['transistor', 'passive', 'current_source', 'voltage_source', 'net']
    • vertex_types
      : ['NMOS', 'PMOS', 'C', 'R', 'I', 'V', 'net']
    • components
      : ['M0', 'M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'C0', 'C1', 'R0', 'I0', 'V1']
  3. Feature Vector Construction (27 Dimensions): For each node in

    G.nodes(data=True)
    , construct a
    feature_vector
    by concatenating the following elements in order:

    • Device Type (1 dim): Binary value.
      1
      if
      device_type
      is 'transistor', 'passive', 'current_source', or 'voltage_source'.
      0
      if 'net'.
    • Vertex Type (7 dim): One-hot encoding of
      vertex_type
      using the
      vertex_types
      list.
    • Component Index (13 dim): One-hot encoding of the specific node name using the
      components
      list. If
      vertex_type
      is 'net', use all zeros.
    • Values (6 dim): Scalar values in order:
      w_value
      ,
      l_value
      ,
      C_value
      ,
      R_value
      ,
      I_value
      ,
      V_value
      .
      • If
        device_type
        == 'transistor': Set
        w_value
        and
        l_value
        from attributes. Others 0.
      • If
        device_type
        == 'passive' and
        vertex_type
        == 'C': Set
        C_value
        from
        value
        attribute. Others 0.
      • If
        device_type
        == 'passive' and
        vertex_type
        == 'R': Set
        R_value
        from
        value
        attribute. Others 0.
      • If
        device_type
        == 'current_source': Set
        I_value
        from
        dc_value
        attribute. Others 0.
      • If
        device_type
        == 'voltage_source': Set
        V_value
        from
        dc_value
        attribute. Others 0.
      • If
        device_type
        == 'net': All values are 0.
  4. Output Structure: Return a

    torch.FloatTensor
    of shape
    (num_nodes, 27)
    .

Anti-Patterns

  • Do not return a dictionary mapping node names to features; the output must be a tensor.
  • Do not infer missing values; default to 0.
  • Do not change the order of the feature vector dimensions.
  • Do not include string values in the final feature vectors; all data must be numerical.

Triggers

  • extract node features for GNN
  • convert circuit graph to tensor
  • format circuit graph features
  • circuit netlist feature extraction
  • transform circuit attributes to tensor