|
9 | 9 | },
|
10 | 10 | {
|
11 | 11 | "cell_type": "code",
|
12 |
| - "execution_count": 5, |
| 12 | + "execution_count": null, |
13 | 13 | "metadata": {},
|
14 |
| - "outputs": [ |
15 |
| - { |
16 |
| - "name": "stdout", |
17 |
| - "output_type": "stream", |
18 |
| - "text": [ |
19 |
| - "The autoreload extension is already loaded. To reload it, use:\n", |
20 |
| - " %reload_ext autoreload\n" |
21 |
| - ] |
22 |
| - } |
23 |
| - ], |
| 14 | + "outputs": [], |
24 | 15 | "source": [
|
25 | 16 | "import sys\n",
|
26 | 17 | "\n",
|
|
45 | 36 | },
|
46 | 37 | {
|
47 | 38 | "cell_type": "code",
|
48 |
| - "execution_count": 10, |
| 39 | + "execution_count": null, |
49 | 40 | "metadata": {},
|
50 |
| - "outputs": [ |
51 |
| - { |
52 |
| - "name": "stdout", |
53 |
| - "output_type": "stream", |
54 |
| - "text": [ |
55 |
| - "\n", |
56 |
| - "Dataset configuration for Ethereum:\n", |
57 |
| - "\n", |
58 |
| - "{'data_domain': 'graph',\n", |
59 |
| - " 'data_type': 'Transactions',\n", |
60 |
| - " 'data_name': 'EthereumTokenNetwork',\n", |
61 |
| - " 'data_dir': 'datasets/Transactions/EthereumTokenNetwork',\n", |
62 |
| - " 'num_features': 1,\n", |
63 |
| - " 'num_classes': 5,\n", |
64 |
| - " 'task': 'classification',\n", |
65 |
| - " 'loss_type': 'cross_entropy',\n", |
66 |
| - " 'task_level': 'graph',\n", |
67 |
| - " 'percentile': 0.9}\n" |
68 |
| - ] |
69 |
| - } |
70 |
| - ], |
| 41 | + "outputs": [], |
71 | 42 | "source": [
|
72 | 43 | "dataset_name = \"Ethereum\"\n",
|
73 | 44 | "dataset_config = load_dataset_config(dataset_name)\n",
|
74 |
| - "print(dataset_config)\n", |
75 | 45 | "loader = GraphLoader(dataset_config)"
|
76 | 46 | ]
|
77 | 47 | },
|
78 | 48 | {
|
79 | 49 | "cell_type": "code",
|
80 |
| - "execution_count": 7, |
| 50 | + "execution_count": null, |
81 | 51 | "metadata": {},
|
82 |
| - "outputs": [ |
83 |
| - { |
84 |
| - "name": "stdout", |
85 |
| - "output_type": "stream", |
86 |
| - "text": [ |
87 |
| - "\n", |
88 |
| - "Dataset only contains 1 sample:\n", |
89 |
| - " - Graph with 47052 vertices and 79722 edges.\n", |
90 |
| - " - Features dimensions: [1, 0]\n", |
91 |
| - " - There are 32686 isolated nodes.\n", |
92 |
| - "\n", |
93 |
| - "Data(x=[79722], edge_index=[2, 79722], features=[47052], num_nodes=47052, num_edges=79722)\n" |
94 |
| - ] |
95 |
| - } |
96 |
| - ], |
| 52 | + "outputs": [], |
97 | 53 | "source": [
|
98 | 54 | "dataset = loader.load()\n",
|
99 | 55 | "describe_data(dataset, 1)"
|
|
108 | 64 | },
|
109 | 65 | {
|
110 | 66 | "cell_type": "code",
|
111 |
| - "execution_count": 8, |
| 67 | + "execution_count": null, |
112 | 68 | "metadata": {},
|
113 |
| - "outputs": [ |
114 |
| - { |
115 |
| - "name": "stdout", |
116 |
| - "output_type": "stream", |
117 |
| - "text": [ |
118 |
| - "\n", |
119 |
| - "Transform configuration for digraph2simplicial/weighted_clique_lifting:\n", |
120 |
| - "\n", |
121 |
| - "{'transform_type': 'lifting',\n", |
122 |
| - " 'transform_name': 'WeightedSimplicialCliqueLifting',\n", |
123 |
| - " 'complex_dim': 3,\n", |
124 |
| - " 'preserve_edge_attr': True,\n", |
125 |
| - " 'signed': True,\n", |
126 |
| - " 'feature_lifting': 'ProjectionSum'}\n" |
127 |
| - ] |
128 |
| - } |
129 |
| - ], |
| 69 | + "outputs": [], |
130 | 70 | "source": [
|
131 | 71 | "# Define transformation type and id\n",
|
132 | 72 | "transform_type = \"liftings\"\n",
|
|
139 | 79 | },
|
140 | 80 | {
|
141 | 81 | "cell_type": "code",
|
142 |
| - "execution_count": 9, |
| 82 | + "execution_count": 5, |
143 | 83 | "metadata": {},
|
144 |
| - "outputs": [ |
145 |
| - { |
146 |
| - "ename": "NameError", |
147 |
| - "evalue": "name 'percentile' is not defined", |
148 |
| - "output_type": "error", |
149 |
| - "traceback": [ |
150 |
| - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
151 |
| - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", |
152 |
| - "Cell \u001b[0;32mIn[9], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m lifted_dataset \u001b[38;5;241m=\u001b[39m \u001b[43mPreProcessor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtransform_config\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloader\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata_dir\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m describe_data(lifted_dataset)\n", |
153 |
| - "File \u001b[0;32m/mnt/c/Users/ronan/Downloads/GitHub/challenge-icml-2024/modules/data/preprocess/preprocessor.py:31\u001b[0m, in \u001b[0;36mPreProcessor.__init__\u001b[0;34m(self, data_list, transforms_config, data_dir, **kwargs)\u001b[0m\n\u001b[1;32m 29\u001b[0m data_list \u001b[38;5;241m=\u001b[39m [data_list]\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_list \u001b[38;5;241m=\u001b[39m data_list\n\u001b[0;32m---> 31\u001b[0m pre_transform \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minstantiate_pre_transform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata_dir\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtransforms_config\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 32\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprocessed_data_dir, \u001b[38;5;28;01mNone\u001b[39;00m, pre_transform, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msave_transform_parameters()\n", |
154 |
| - "File \u001b[0;32m/mnt/c/Users/ronan/Downloads/GitHub/challenge-icml-2024/modules/data/preprocess/preprocessor.py:75\u001b[0m, in \u001b[0;36mPreProcessor.instantiate_pre_transform\u001b[0;34m(self, data_dir, transforms_config)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minstantiate_pre_transform\u001b[39m(\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28mself\u001b[39m, data_dir, transforms_config\n\u001b[1;32m 60\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch_geometric\u001b[38;5;241m.\u001b[39mtransforms\u001b[38;5;241m.\u001b[39mCompose:\n\u001b[1;32m 61\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Instantiate the pre-transforms.\u001b[39;00m\n\u001b[1;32m 62\u001b[0m \n\u001b[1;32m 63\u001b[0m \u001b[38;5;124;03m Parameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[38;5;124;03m Pre-transform object.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 75\u001b[0m pre_transforms_dict \u001b[38;5;241m=\u001b[39m \u001b[43m{\u001b[49m\n\u001b[1;32m 76\u001b[0m \u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mDataTransform\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mtransforms_config\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 77\u001b[0m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\n\u001b[1;32m 78\u001b[0m pre_transforms \u001b[38;5;241m=\u001b[39m torch_geometric\u001b[38;5;241m.\u001b[39mtransforms\u001b[38;5;241m.\u001b[39mCompose(\n\u001b[1;32m 79\u001b[0m \u001b[38;5;28mlist\u001b[39m(pre_transforms_dict\u001b[38;5;241m.\u001b[39mvalues())\n\u001b[1;32m 80\u001b[0m )\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_processed_data_dir(pre_transforms_dict, data_dir, transforms_config)\n", |
155 |
| - "File \u001b[0;32m/mnt/c/Users/ronan/Downloads/GitHub/challenge-icml-2024/modules/data/preprocess/preprocessor.py:76\u001b[0m, in \u001b[0;36m<dictcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minstantiate_pre_transform\u001b[39m(\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28mself\u001b[39m, data_dir, transforms_config\n\u001b[1;32m 60\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch_geometric\u001b[38;5;241m.\u001b[39mtransforms\u001b[38;5;241m.\u001b[39mCompose:\n\u001b[1;32m 61\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Instantiate the pre-transforms.\u001b[39;00m\n\u001b[1;32m 62\u001b[0m \n\u001b[1;32m 63\u001b[0m \u001b[38;5;124;03m Parameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[38;5;124;03m Pre-transform object.\u001b[39;00m\n\u001b[1;32m 74\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 75\u001b[0m pre_transforms_dict \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m---> 76\u001b[0m key: \u001b[43mDataTransform\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m key, value \u001b[38;5;129;01min\u001b[39;00m transforms_config\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 77\u001b[0m }\n\u001b[1;32m 78\u001b[0m pre_transforms \u001b[38;5;241m=\u001b[39m torch_geometric\u001b[38;5;241m.\u001b[39mtransforms\u001b[38;5;241m.\u001b[39mCompose(\n\u001b[1;32m 79\u001b[0m \u001b[38;5;28mlist\u001b[39m(pre_transforms_dict\u001b[38;5;241m.\u001b[39mvalues())\n\u001b[1;32m 80\u001b[0m )\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_processed_data_dir(pre_transforms_dict, data_dir, transforms_config)\n", |
156 |
| - "File \u001b[0;32m/mnt/c/Users/ronan/Downloads/GitHub/challenge-icml-2024/modules/transforms/data_transform.py:60\u001b[0m, in \u001b[0;36mDataTransform.__init__\u001b[0;34m(self, transform_name, **kwargs)\u001b[0m\n\u001b[1;32m 56\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtransform_name\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m transform_name\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparameters \u001b[38;5;241m=\u001b[39m kwargs\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtransform \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m---> 60\u001b[0m \u001b[43mTRANSFORMS\u001b[49m\u001b[43m[\u001b[49m\u001b[43mtransform_name\u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mif\u001b[39;00m transform_name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 61\u001b[0m )\n", |
157 |
| - "File \u001b[0;32m/mnt/c/Users/ronan/Downloads/GitHub/challenge-icml-2024/modules/transforms/liftings/digraph2simplicial/weighted_clique_lifting.py:15\u001b[0m, in \u001b[0;36mWeightedCliqueLifting.__init__\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 14\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpercentile \u001b[38;5;241m=\u001b[39m \u001b[43mpercentile\u001b[49m\n", |
158 |
| - "\u001b[0;31mNameError\u001b[0m: name 'percentile' is not defined" |
159 |
| - ] |
160 |
| - } |
161 |
| - ], |
| 84 | + "outputs": [], |
162 | 85 | "source": [
|
163 | 86 | "lifted_dataset = PreProcessor(dataset, transform_config, loader.data_dir)\n",
|
164 | 87 | "describe_data(lifted_dataset)"
|
|
0 commit comments