|
111 | 111 | "name": "stdout", |
112 | 112 | "output_type": "stream", |
113 | 113 | "text": [ |
114 | | - "Model accuracy (on the test dataset): 1.0\n" |
| 114 | + "Model accuracy (on the test dataset): 0.9666666666666667\n" |
115 | 115 | ] |
116 | 116 | } |
117 | 117 | ], |
|
156 | 156 | "cell_type": "code", |
157 | 157 | "execution_count": 6, |
158 | 158 | "metadata": {}, |
159 | | - "outputs": [ |
160 | | - { |
161 | | - "ename": "ImportError", |
162 | | - "evalue": "cannot import name 'DatabaseReconstruction'", |
163 | | - "output_type": "error", |
164 | | - "traceback": [ |
165 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
166 | | - "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", |
167 | | - "\u001b[0;32m<ipython-input-6-2dd2e9a7664c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mart\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mattacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minference\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDatabaseReconstruction\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdbrecon\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDatabaseReconstruction\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnon_private_art\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdbrecon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreconstruct\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_public\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_public\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
168 | | - "\u001b[0;31mImportError\u001b[0m: cannot import name 'DatabaseReconstruction'" |
169 | | - ] |
170 | | - } |
171 | | - ], |
| 159 | + "outputs": [], |
172 | 160 | "source": [ |
173 | | - "from art.attacks.inference import DatabaseReconstruction\n", |
| 161 | + "from art.attacks.inference.reconstruction import DatabaseReconstruction\n", |
174 | 162 | "\n", |
175 | 163 | "dbrecon = DatabaseReconstruction(non_private_art)\n", |
176 | 164 | "\n", |
|
186 | 174 | }, |
187 | 175 | { |
188 | 176 | "cell_type": "code", |
189 | | - "execution_count": null, |
| 177 | + "execution_count": 7, |
190 | 178 | "metadata": {}, |
191 | | - "outputs": [], |
| 179 | + "outputs": [ |
| 180 | + { |
| 181 | + "name": "stdout", |
| 182 | + "output_type": "stream", |
| 183 | + "text": [ |
| 184 | + "Inference RMSE: 5.789723287688911e-08\n" |
| 185 | + ] |
| 186 | + } |
| 187 | + ], |
192 | 188 | "source": [ |
193 | 189 | "print(\"Inference RMSE: {}\".format(\n", |
194 | 190 | " np.sqrt(((x_train[target_row] - x) ** 2).sum() / x_train.shape[1])))" |
|
203 | 199 | }, |
204 | 200 | { |
205 | 201 | "cell_type": "code", |
206 | | - "execution_count": null, |
| 202 | + "execution_count": 8, |
207 | 203 | "metadata": {}, |
208 | | - "outputs": [], |
| 204 | + "outputs": [ |
| 205 | + { |
| 206 | + "data": { |
| 207 | + "text/plain": [ |
| 208 | + "True" |
| 209 | + ] |
| 210 | + }, |
| 211 | + "execution_count": 8, |
| 212 | + "metadata": {}, |
| 213 | + "output_type": "execute_result" |
| 214 | + } |
| 215 | + ], |
209 | 216 | "source": [ |
210 | 217 | "np.argmax(y) == y_train[target_row]" |
211 | 218 | ] |
|
233 | 240 | }, |
234 | 241 | { |
235 | 242 | "cell_type": "code", |
236 | | - "execution_count": null, |
| 243 | + "execution_count": 9, |
237 | 244 | "metadata": {}, |
238 | | - "outputs": [], |
| 245 | + "outputs": [ |
| 246 | + { |
| 247 | + "data": { |
| 248 | + "text/plain": [ |
| 249 | + "0.7" |
| 250 | + ] |
| 251 | + }, |
| 252 | + "execution_count": 9, |
| 253 | + "metadata": {}, |
| 254 | + "output_type": "execute_result" |
| 255 | + } |
| 256 | + ], |
239 | 257 | "source": [ |
240 | 258 | "from diffprivlib import models\n", |
241 | 259 | "\n", |
|
261 | 279 | }, |
262 | 280 | { |
263 | 281 | "cell_type": "code", |
264 | | - "execution_count": null, |
| 282 | + "execution_count": 10, |
265 | 283 | "metadata": {}, |
266 | 284 | "outputs": [], |
267 | 285 | "source": [ |
|
279 | 297 | }, |
280 | 298 | { |
281 | 299 | "cell_type": "code", |
282 | | - "execution_count": null, |
| 300 | + "execution_count": 11, |
283 | 301 | "metadata": {}, |
284 | | - "outputs": [], |
| 302 | + "outputs": [ |
| 303 | + { |
| 304 | + "name": "stdout", |
| 305 | + "output_type": "stream", |
| 306 | + "text": [ |
| 307 | + "Inference RMSE (with differential privacy): 2.2594246979517965\n" |
| 308 | + ] |
| 309 | + } |
| 310 | + ], |
285 | 311 | "source": [ |
286 | 312 | "print(\"Inference RMSE (with differential privacy): {}\".format(\n", |
287 | 313 | " np.sqrt(((x_train[target_row] - x_dp) ** 2).sum() / x_train.shape[1])))" |
|
296 | 322 | }, |
297 | 323 | { |
298 | 324 | "cell_type": "code", |
299 | | - "execution_count": null, |
| 325 | + "execution_count": 12, |
300 | 326 | "metadata": { |
301 | 327 | "scrolled": false |
302 | 328 | }, |
303 | | - "outputs": [], |
| 329 | + "outputs": [ |
| 330 | + { |
| 331 | + "data": { |
| 332 | + "text/plain": [ |
| 333 | + "(array([[4.80000094, 3.00000298, 1.39999864, 0.30000296]]),\n", |
| 334 | + " array([6.4, 2.7, 5.3, 1.9]))" |
| 335 | + ] |
| 336 | + }, |
| 337 | + "execution_count": 12, |
| 338 | + "metadata": {}, |
| 339 | + "output_type": "execute_result" |
| 340 | + } |
| 341 | + ], |
304 | 342 | "source": [ |
305 | 343 | "x_dp, x_train[target_row]" |
306 | 344 | ] |
|
314 | 352 | }, |
315 | 353 | { |
316 | 354 | "cell_type": "code", |
317 | | - "execution_count": null, |
| 355 | + "execution_count": 13, |
318 | 356 | "metadata": {}, |
319 | | - "outputs": [], |
| 357 | + "outputs": [ |
| 358 | + { |
| 359 | + "data": { |
| 360 | + "text/plain": [ |
| 361 | + "(0, 2)" |
| 362 | + ] |
| 363 | + }, |
| 364 | + "execution_count": 13, |
| 365 | + "metadata": {}, |
| 366 | + "output_type": "execute_result" |
| 367 | + } |
| 368 | + ], |
320 | 369 | "source": [ |
321 | 370 | "np.argmax(y_dp), y_train[target_row]" |
322 | 371 | ] |
|
0 commit comments