agentsclimarketplace

Circuit graph node feature extraction

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/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.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill circuit_graph_node_feature_extraction

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.6 KB, 806 tokens by cl100k_base, as published. Nobody here has run it

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

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.