Spaces:
Paused
Paused
alessandro trinca tornidor
commited on
Commit
·
2d83d09
1
Parent(s):
acbbf71
[test] fix test.ipynb, add example1_mask_0_broken.png
Browse files- notebooks/test.ipynb +71 -91
- tests/imgs/example1_mask_0_broken.png +3 -0
notebooks/test.ipynb
CHANGED
@@ -28,15 +28,15 @@
|
|
28 |
},
|
29 |
{
|
30 |
"cell_type": "code",
|
31 |
-
"execution_count":
|
32 |
"id": "162314f6-158f-4433-a451-ceb309fb2c1d",
|
33 |
"metadata": {
|
34 |
"execution": {
|
35 |
-
"iopub.execute_input": "2024-03-
|
36 |
-
"iopub.status.busy": "2024-03-
|
37 |
-
"iopub.status.idle": "2024-03-
|
38 |
-
"shell.execute_reply": "2024-03-
|
39 |
-
"shell.execute_reply.started": "2024-03-
|
40 |
}
|
41 |
},
|
42 |
"outputs": [
|
@@ -51,9 +51,9 @@
|
|
51 |
"name": "stderr",
|
52 |
"output_type": "stream",
|
53 |
"text": [
|
54 |
-
"/home/jovyan/workspace/lisa-on-gpu/
|
55 |
" bkms = self.shell.db.get('bookmarks', {})\n",
|
56 |
-
"/home/jovyan/workspace/lisa-on-gpu/
|
57 |
" self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n"
|
58 |
]
|
59 |
},
|
@@ -110,7 +110,7 @@
|
|
110 |
"httpx 0.27.0\n",
|
111 |
"huggingface-hub 0.21.4\n",
|
112 |
"idna 3.6\n",
|
113 |
-
"importlib_resources 6.1.
|
114 |
"iniconfig 2.0.0\n",
|
115 |
"ipykernel 6.29.3\n",
|
116 |
"ipython 8.22.2\n",
|
@@ -263,23 +263,15 @@
|
|
263 |
"id": "998e2d14-11f9-49d9-8cd0-320adc9f7e00",
|
264 |
"metadata": {
|
265 |
"execution": {
|
266 |
-
"iopub.execute_input": "2024-03-
|
267 |
-
"iopub.status.busy": "2024-03-
|
268 |
-
"iopub.status.idle": "2024-03-
|
269 |
-
"shell.execute_reply": "2024-03-
|
270 |
-
"shell.execute_reply.started": "2024-03-
|
271 |
},
|
272 |
"tags": []
|
273 |
},
|
274 |
"outputs": [
|
275 |
-
{
|
276 |
-
"name": "stderr",
|
277 |
-
"output_type": "stream",
|
278 |
-
"text": [
|
279 |
-
"INFO:root:try to empty cuda mem cache...\n",
|
280 |
-
"INFO:root:emptied cuda mem cache!\n"
|
281 |
-
]
|
282 |
-
},
|
283 |
{
|
284 |
"name": "stdout",
|
285 |
"output_type": "stream",
|
@@ -307,11 +299,11 @@
|
|
307 |
"id": "26c068e8-596a-4f15-9747-69d316751318",
|
308 |
"metadata": {
|
309 |
"execution": {
|
310 |
-
"iopub.execute_input": "2024-03-
|
311 |
-
"iopub.status.busy": "2024-03-
|
312 |
-
"iopub.status.idle": "2024-03-
|
313 |
-
"shell.execute_reply": "2024-03-
|
314 |
-
"shell.execute_reply.started": "2024-03-
|
315 |
},
|
316 |
"tags": []
|
317 |
},
|
@@ -348,11 +340,11 @@
|
|
348 |
"id": "f5537111-d300-4df6-83eb-6b4b99093922",
|
349 |
"metadata": {
|
350 |
"execution": {
|
351 |
-
"iopub.execute_input": "2024-03-
|
352 |
-
"iopub.status.busy": "2024-03-
|
353 |
-
"iopub.status.idle": "2024-03-
|
354 |
-
"shell.execute_reply": "2024-03-
|
355 |
-
"shell.execute_reply.started": "2024-03-
|
356 |
}
|
357 |
},
|
358 |
"outputs": [
|
@@ -385,11 +377,11 @@
|
|
385 |
"id": "e9f53f3a-1d59-47e2-a0cb-a1a4455c87e1",
|
386 |
"metadata": {
|
387 |
"execution": {
|
388 |
-
"iopub.execute_input": "2024-03-
|
389 |
-
"iopub.status.busy": "2024-03-
|
390 |
-
"iopub.status.idle": "2024-03-
|
391 |
-
"shell.execute_reply": "2024-03-
|
392 |
-
"shell.execute_reply.started": "2024-03-
|
393 |
}
|
394 |
},
|
395 |
"outputs": [
|
@@ -424,11 +416,11 @@
|
|
424 |
"id": "f801e9dd-a21f-474c-9832-28bb83fe2a6e",
|
425 |
"metadata": {
|
426 |
"execution": {
|
427 |
-
"iopub.execute_input": "2024-03-
|
428 |
-
"iopub.status.busy": "2024-03-
|
429 |
-
"iopub.status.idle": "2024-03-
|
430 |
-
"shell.execute_reply": "2024-03-
|
431 |
-
"shell.execute_reply.started": "2024-03-
|
432 |
}
|
433 |
},
|
434 |
"outputs": [
|
@@ -444,7 +436,7 @@
|
|
444 |
"name": "stdout",
|
445 |
"output_type": "stream",
|
446 |
"text": [
|
447 |
-
"start the creation of the inference function, now is 2024-03-
|
448 |
]
|
449 |
},
|
450 |
{
|
@@ -457,7 +449,7 @@
|
|
457 |
{
|
458 |
"data": {
|
459 |
"application/vnd.jupyter.widget-view+json": {
|
460 |
-
"model_id": "
|
461 |
"version_major": 2,
|
462 |
"version_minor": 0
|
463 |
},
|
@@ -500,11 +492,11 @@
|
|
500 |
"id": "f823bb28-ded6-4a0b-820e-b7ad609de55c",
|
501 |
"metadata": {
|
502 |
"execution": {
|
503 |
-
"iopub.execute_input": "2024-03-
|
504 |
-
"iopub.status.busy": "2024-03-
|
505 |
-
"iopub.status.idle": "2024-03-
|
506 |
-
"shell.execute_reply": "2024-03-
|
507 |
-
"shell.execute_reply.started": "2024-03-
|
508 |
}
|
509 |
},
|
510 |
"outputs": [
|
@@ -520,7 +512,7 @@
|
|
520 |
"INFO:root:preprocess started\n",
|
521 |
"INFO:root:preprocess ended\n",
|
522 |
"INFO:root:image_clip type: <class 'torch.Tensor'>.\n",
|
523 |
-
"/home/jovyan/workspace/lisa-on-gpu/
|
524 |
" warnings.warn(\n"
|
525 |
]
|
526 |
},
|
@@ -528,7 +520,7 @@
|
|
528 |
"name": "stdout",
|
529 |
"output_type": "stream",
|
530 |
"text": [
|
531 |
-
"start inference using inference_fn, now is 2024-03-
|
532 |
"input_prompt:Where can the driver see the car speed in this image? Please output segmentation mask..\n"
|
533 |
]
|
534 |
},
|
@@ -586,11 +578,11 @@
|
|
586 |
"id": "0ecbbe4e-bb3d-4703-9512-3d9c85fb8ba9",
|
587 |
"metadata": {
|
588 |
"execution": {
|
589 |
-
"iopub.execute_input": "2024-03-
|
590 |
-
"iopub.status.busy": "2024-03-
|
591 |
-
"iopub.status.idle": "2024-03-
|
592 |
-
"shell.execute_reply": "2024-03-
|
593 |
-
"shell.execute_reply.started": "2024-03-
|
594 |
}
|
595 |
},
|
596 |
"outputs": [
|
@@ -620,15 +612,15 @@
|
|
620 |
},
|
621 |
{
|
622 |
"cell_type": "code",
|
623 |
-
"execution_count":
|
624 |
"id": "3aa1f30e-42bb-4ca1-beca-e79b6c635d54",
|
625 |
"metadata": {
|
626 |
"execution": {
|
627 |
-
"iopub.execute_input": "2024-03-08T00:
|
628 |
-
"iopub.status.busy": "2024-03-08T00:
|
629 |
-
"iopub.status.idle": "2024-03-08T00:
|
630 |
-
"shell.execute_reply": "2024-03-08T00:
|
631 |
-
"shell.execute_reply.started": "2024-03-08T00:
|
632 |
}
|
633 |
},
|
634 |
"outputs": [
|
@@ -642,16 +634,16 @@
|
|
642 |
{
|
643 |
"data": {
|
644 |
"text/plain": [
|
645 |
-
"<matplotlib.image.AxesImage at
|
646 |
]
|
647 |
},
|
648 |
-
"execution_count":
|
649 |
"metadata": {},
|
650 |
"output_type": "execute_result"
|
651 |
},
|
652 |
{
|
653 |
"data": {
|
654 |
-
"image/png": "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73BL2r/HLViwQH369FHv3r1POTaU9++pPoMC9b6ckZHht43jY87oc/vszmkOXa+++qqJiooyCxcuNJ999pkZN26cSUhI8DuT2iruuece43A4zKpVq/wu46upqTHGGLN7927zu9/9zmzcuNHs2bPHvPnmm+biiy82/fv3923j+GVxAwcONEVFRWb58uXmggsuCKnLd4+bPHmyWbVqldmzZ49Zs2aNyczMNO3atTPl5eXGmGOXAHbs2NGsXLnSbNy40WRkZJiMjAzf+laa63Eej8d07NjRTJ061a+9pezbI0eOmE8++cR88sknRpJ58sknzSeffOK7emfmzJkmISHBvPnmm2bz5s1m2LBhjV6afdVVV5mCggLz8ccfm0svvdTv0t3KykqTnJxsRo0aZbZu3WpeffVVExsbG5RLWU823/r6enPLLbeYDh06mKKiIr9/08ev6li7dq156qmnTFFRkfn888/NSy+9ZC644AJz5513Wm6+R44cMQ888IDJz883e/bsMR988IG5+uqrzaWXXmpqa2t922gp+/c4p9NpYmNjzbx5805Y32r791SfQcYE5n35+KXZU6ZMMdu3bzdz587l0mxjjHnmmWdMx44dTWRkpOnXr59Zt25dsEs6K5IaXV588UVjjDElJSWmf//+JjEx0URFRZlLLrnETJkyxe9eJMYY8+WXX5rBgwebmJgY065dOzN58mTjdruDMKOTu+2220z79u1NZGSkufDCC81tt91mdu/e7es/evSo+fWvf23atGljYmNjzU9+8hNz4MABv21YZa7Hvffee0aSKS4u9mtvKfv2ww8/bPR3ePTo0caYY5dnP/zwwyY5OdlERUWZAQMGnPB3cejQIXP77bebVq1amfj4ePOLX/zCHDlyxG/Mp59+am644QYTFRVlLrzwQjNz5szmmqKfk813z5493/tv+vi9hQoLC016erpxOBwmOjradOvWzTzxxBN+H/7GWGO+NTU1ZuDAgeaCCy4wERERplOnTmbs2LEn/Meypezf455//nkTExNjKisrT1jfavv3VJ9BxgTuffnDDz80V155pYmMjDQXX3yx32ucDtv/FQwAAGBJLeqcGQAAcP4hzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEv7/z5IrG/Xfac+AAAAAElFTkSuQmCC",
|
655 |
"text/plain": [
|
656 |
"<Figure size 640x480 with 1 Axes>"
|
657 |
]
|
@@ -676,21 +668,21 @@
|
|
676 |
"example1_path = str(expected_images_path / f\"example{idx_example+1}_mask_0.png\")\n",
|
677 |
"mod_path = str(expected_images_path / \"mod.png\")\n",
|
678 |
"expected_mask = cv2.imread(mod_path, cv2.IMREAD_GRAYSCALE)\n",
|
679 |
-
"print(f\"img check type:{type(
|
680 |
-
"plt.imshow(
|
681 |
]
|
682 |
},
|
683 |
{
|
684 |
"cell_type": "code",
|
685 |
-
"execution_count":
|
686 |
"id": "362260d2-38e5-4cc8-83f1-5a785450e674",
|
687 |
"metadata": {
|
688 |
"execution": {
|
689 |
-
"iopub.execute_input": "2024-03-08T00:
|
690 |
-
"iopub.status.busy": "2024-03-08T00:
|
691 |
-
"iopub.status.idle": "2024-03-08T00:
|
692 |
-
"shell.execute_reply": "2024-03-08T00:
|
693 |
-
"shell.execute_reply.started": "2024-03-08T00:
|
694 |
}
|
695 |
},
|
696 |
"outputs": [
|
@@ -698,27 +690,15 @@
|
|
698 |
"name": "stderr",
|
699 |
"output_type": "stream",
|
700 |
"text": [
|
701 |
-
"INFO:root:
|
702 |
-
"
|
703 |
-
"INFO:root:assert now that perc diff between ndarrays is minor than 0.02.\n",
|
704 |
-
"ERROR:root:failed all assertions, writing debug files...\n",
|
705 |
-
"INFO:root:Written files with prefix 'broken_test_example1_20240308002204' in /home/jovyan/workspace/lisa-on-gpu/tests/imgs folder.\n"
|
706 |
]
|
707 |
},
|
708 |
{
|
709 |
-
"
|
710 |
-
"
|
711 |
-
"
|
712 |
-
|
713 |
-
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
714 |
-
"\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
|
715 |
-
"Cell \u001b[0;32mIn[24], line 10\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 10\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m np\u001b[38;5;241m.\u001b[39marray_equal(output_mask, expected_mask)\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m:\n",
|
716 |
-
"\u001b[0;31mAssertionError\u001b[0m: ",
|
717 |
-
"\nDuring handling of the above exception, another exception occurred:\n",
|
718 |
-
"\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
|
719 |
-
"Cell \u001b[0;32mIn[24], line 33\u001b[0m\n\u001b[1;32m 31\u001b[0m dst\u001b[38;5;241m.\u001b[39mwrite(output_str)\n\u001b[1;32m 32\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWritten files with prefix \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mprefix\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00moutput_folder\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m folder.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 33\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ae\n\u001b[1;32m 34\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mend\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mend\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
|
720 |
-
"Cell \u001b[0;32mIn[24], line 15\u001b[0m\n\u001b[1;32m 13\u001b[0m logging\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfailed equality assertion!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 14\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124massert now that perc diff between ndarrays is minor than \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmax_diff\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m perc \u001b[38;5;241m<\u001b[39m max_diff\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m ae:\n\u001b[1;32m 17\u001b[0m logging\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfailed all assertions, writing debug files...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
|
721 |
-
"\u001b[0;31mAssertionError\u001b[0m: "
|
722 |
]
|
723 |
}
|
724 |
],
|
|
|
28 |
},
|
29 |
{
|
30 |
"cell_type": "code",
|
31 |
+
"execution_count": 1,
|
32 |
"id": "162314f6-158f-4433-a451-ceb309fb2c1d",
|
33 |
"metadata": {
|
34 |
"execution": {
|
35 |
+
"iopub.execute_input": "2024-03-08T00:46:04.470028Z",
|
36 |
+
"iopub.status.busy": "2024-03-08T00:46:04.469654Z",
|
37 |
+
"iopub.status.idle": "2024-03-08T00:46:05.404512Z",
|
38 |
+
"shell.execute_reply": "2024-03-08T00:46:05.403696Z",
|
39 |
+
"shell.execute_reply.started": "2024-03-08T00:46:04.470001Z"
|
40 |
}
|
41 |
},
|
42 |
"outputs": [
|
|
|
51 |
"name": "stderr",
|
52 |
"output_type": "stream",
|
53 |
"text": [
|
54 |
+
"/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:393: UserWarning: This is now an optional IPython functionality, using bookmarks requires you to install the `pickleshare` library.\n",
|
55 |
" bkms = self.shell.db.get('bookmarks', {})\n",
|
56 |
+
"/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.\n",
|
57 |
" self.shell.db['dhist'] = compress_dhist(dhist)[-100:]\n"
|
58 |
]
|
59 |
},
|
|
|
110 |
"httpx 0.27.0\n",
|
111 |
"huggingface-hub 0.21.4\n",
|
112 |
"idna 3.6\n",
|
113 |
+
"importlib_resources 6.1.3\n",
|
114 |
"iniconfig 2.0.0\n",
|
115 |
"ipykernel 6.29.3\n",
|
116 |
"ipython 8.22.2\n",
|
|
|
263 |
"id": "998e2d14-11f9-49d9-8cd0-320adc9f7e00",
|
264 |
"metadata": {
|
265 |
"execution": {
|
266 |
+
"iopub.execute_input": "2024-03-08T00:46:14.402177Z",
|
267 |
+
"iopub.status.busy": "2024-03-08T00:46:14.401792Z",
|
268 |
+
"iopub.status.idle": "2024-03-08T00:46:14.406566Z",
|
269 |
+
"shell.execute_reply": "2024-03-08T00:46:14.405847Z",
|
270 |
+
"shell.execute_reply.started": "2024-03-08T00:46:14.402150Z"
|
271 |
},
|
272 |
"tags": []
|
273 |
},
|
274 |
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
{
|
276 |
"name": "stdout",
|
277 |
"output_type": "stream",
|
|
|
299 |
"id": "26c068e8-596a-4f15-9747-69d316751318",
|
300 |
"metadata": {
|
301 |
"execution": {
|
302 |
+
"iopub.execute_input": "2024-03-08T00:46:14.603885Z",
|
303 |
+
"iopub.status.busy": "2024-03-08T00:46:14.603548Z",
|
304 |
+
"iopub.status.idle": "2024-03-08T00:46:16.279258Z",
|
305 |
+
"shell.execute_reply": "2024-03-08T00:46:16.278546Z",
|
306 |
+
"shell.execute_reply.started": "2024-03-08T00:46:14.603860Z"
|
307 |
},
|
308 |
"tags": []
|
309 |
},
|
|
|
340 |
"id": "f5537111-d300-4df6-83eb-6b4b99093922",
|
341 |
"metadata": {
|
342 |
"execution": {
|
343 |
+
"iopub.execute_input": "2024-03-08T00:46:16.280871Z",
|
344 |
+
"iopub.status.busy": "2024-03-08T00:46:16.280514Z",
|
345 |
+
"iopub.status.idle": "2024-03-08T00:46:20.989980Z",
|
346 |
+
"shell.execute_reply": "2024-03-08T00:46:20.989198Z",
|
347 |
+
"shell.execute_reply.started": "2024-03-08T00:46:16.280835Z"
|
348 |
}
|
349 |
},
|
350 |
"outputs": [
|
|
|
377 |
"id": "e9f53f3a-1d59-47e2-a0cb-a1a4455c87e1",
|
378 |
"metadata": {
|
379 |
"execution": {
|
380 |
+
"iopub.execute_input": "2024-03-08T00:46:20.991956Z",
|
381 |
+
"iopub.status.busy": "2024-03-08T00:46:20.990944Z",
|
382 |
+
"iopub.status.idle": "2024-03-08T00:46:21.804419Z",
|
383 |
+
"shell.execute_reply": "2024-03-08T00:46:21.803753Z",
|
384 |
+
"shell.execute_reply.started": "2024-03-08T00:46:20.991889Z"
|
385 |
}
|
386 |
},
|
387 |
"outputs": [
|
|
|
416 |
"id": "f801e9dd-a21f-474c-9832-28bb83fe2a6e",
|
417 |
"metadata": {
|
418 |
"execution": {
|
419 |
+
"iopub.execute_input": "2024-03-08T00:46:21.806098Z",
|
420 |
+
"iopub.status.busy": "2024-03-08T00:46:21.805805Z",
|
421 |
+
"iopub.status.idle": "2024-03-08T00:50:27.785058Z",
|
422 |
+
"shell.execute_reply": "2024-03-08T00:50:27.784256Z",
|
423 |
+
"shell.execute_reply.started": "2024-03-08T00:46:21.806073Z"
|
424 |
}
|
425 |
},
|
426 |
"outputs": [
|
|
|
436 |
"name": "stdout",
|
437 |
"output_type": "stream",
|
438 |
"text": [
|
439 |
+
"start the creation of the inference function, now is 2024-03-08 00:46:21.807791.\n"
|
440 |
]
|
441 |
},
|
442 |
{
|
|
|
449 |
{
|
450 |
"data": {
|
451 |
"application/vnd.jupyter.widget-view+json": {
|
452 |
+
"model_id": "fde79a9d3d054e788830e33095be9d9a",
|
453 |
"version_major": 2,
|
454 |
"version_minor": 0
|
455 |
},
|
|
|
492 |
"id": "f823bb28-ded6-4a0b-820e-b7ad609de55c",
|
493 |
"metadata": {
|
494 |
"execution": {
|
495 |
+
"iopub.execute_input": "2024-03-08T00:50:27.786869Z",
|
496 |
+
"iopub.status.busy": "2024-03-08T00:50:27.786194Z",
|
497 |
+
"iopub.status.idle": "2024-03-08T00:50:34.626772Z",
|
498 |
+
"shell.execute_reply": "2024-03-08T00:50:34.625943Z",
|
499 |
+
"shell.execute_reply.started": "2024-03-08T00:50:27.786844Z"
|
500 |
}
|
501 |
},
|
502 |
"outputs": [
|
|
|
512 |
"INFO:root:preprocess started\n",
|
513 |
"INFO:root:preprocess ended\n",
|
514 |
"INFO:root:image_clip type: <class 'torch.Tensor'>.\n",
|
515 |
+
"/home/jovyan/workspace/lisa-on-gpu/venv/lib/python3.10/site-packages/transformers/generation/utils.py:1270: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation )\n",
|
516 |
" warnings.warn(\n"
|
517 |
]
|
518 |
},
|
|
|
520 |
"name": "stdout",
|
521 |
"output_type": "stream",
|
522 |
"text": [
|
523 |
+
"start inference using inference_fn, now is 2024-03-08 00:50:27.788806.\n",
|
524 |
"input_prompt:Where can the driver see the car speed in this image? Please output segmentation mask..\n"
|
525 |
]
|
526 |
},
|
|
|
578 |
"id": "0ecbbe4e-bb3d-4703-9512-3d9c85fb8ba9",
|
579 |
"metadata": {
|
580 |
"execution": {
|
581 |
+
"iopub.execute_input": "2024-03-08T00:50:34.627977Z",
|
582 |
+
"iopub.status.busy": "2024-03-08T00:50:34.627663Z",
|
583 |
+
"iopub.status.idle": "2024-03-08T00:50:35.357599Z",
|
584 |
+
"shell.execute_reply": "2024-03-08T00:50:35.356650Z",
|
585 |
+
"shell.execute_reply.started": "2024-03-08T00:50:34.627953Z"
|
586 |
}
|
587 |
},
|
588 |
"outputs": [
|
|
|
612 |
},
|
613 |
{
|
614 |
"cell_type": "code",
|
615 |
+
"execution_count": 12,
|
616 |
"id": "3aa1f30e-42bb-4ca1-beca-e79b6c635d54",
|
617 |
"metadata": {
|
618 |
"execution": {
|
619 |
+
"iopub.execute_input": "2024-03-08T00:52:41.894276Z",
|
620 |
+
"iopub.status.busy": "2024-03-08T00:52:41.893893Z",
|
621 |
+
"iopub.status.idle": "2024-03-08T00:52:42.355869Z",
|
622 |
+
"shell.execute_reply": "2024-03-08T00:52:42.354956Z",
|
623 |
+
"shell.execute_reply.started": "2024-03-08T00:52:41.894250Z"
|
624 |
}
|
625 |
},
|
626 |
"outputs": [
|
|
|
634 |
{
|
635 |
"data": {
|
636 |
"text/plain": [
|
637 |
+
"<matplotlib.image.AxesImage at 0x7effc54a4f40>"
|
638 |
]
|
639 |
},
|
640 |
+
"execution_count": 12,
|
641 |
"metadata": {},
|
642 |
"output_type": "execute_result"
|
643 |
},
|
644 |
{
|
645 |
"data": {
|
646 |
+
"image/png": "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I8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLq3OYWbFiha6//nolJSXJZrNp4cKFx+175513ymaz6bnnnvOZX1JSooyMDEVHRysmJkYjR45UWVmZT58NGzbommuuUXh4uJKTkzV9+vS6lgoAAM4CdQ4zhw4dUvfu3TVz5swT9luwYIFWr16tpKSkY9oyMjK0efNmZWVladGiRVqxYoVGjx7tbXe5XOrbt6/atm2r3NxcPfXUU3rkkUc0e/bsupYLAACauOC6LtC/f3/179//hH2+//57jRs3Th9//LEGDhzo07ZlyxYtXrxYa9euVc+ePSVJL7zwggYMGKCnn35aSUlJmj9/vqqqqvTqq68qNDRUXbt2VV5enp555hmf0AMAAOD3a2Y8Ho+GDRumiRMnqmvXrse0Z2dnKyYmxhtkJCktLU12u105OTnePr1791ZoaKi3T3p6uvLz83XgwIFat1tZWSmXy+UzAQCAps/vYebJJ59UcHCw7rrrrlrbCwsLFR8f7zMvODhYsbGxKiws9PZJSEjw6XP056N9fmnq1KlyOBzeKTk5+UyHAgAALMCvYSY3N1fPP/+85s6dK5vN5s9Vn9TkyZPldDq90+7duxt0+wAAIDD8GmY+//xzFRcXq02bNgoODlZwcLB27dqle++9V+edd54kKTExUcXFxT7L1dTUqKSkRImJid4+RUVFPn2O/ny0zy+FhYUpOjraZwIAAE2fX8PMsGHDtGHDBuXl5XmnpKQkTZw4UR9//LEkKTU1VaWlpcrNzfUut3TpUnk8HqWkpHj7rFixQtXV1d4+WVlZ6tixo1q0aOHPkgEAgMXV+W6msrIy7dixw/vzzp07lZeXp9jYWLVp00ZxcXE+/UNCQpSYmKiOHTtKkjp37qx+/fpp1KhReumll1RdXa2xY8dq6NCh3tu4b7/9dj366KMaOXKkJk2apE2bNun555/Xs88+eyZjBQAATVCdw8y6dev061//2vvzhAkTJEkjRozQ3LlzT2kd8+fP19ixY9WnTx/Z7XYNGTJEM2bM8LY7HA598sknyszMVI8ePdSyZUtNmTKF27IBAMAxbMYYE+gi6oPL5ZLD4dC1GqRgW0igywEAAMdRY6q1TO/J6XSe1jWvvJsJAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYWnCgC6gvxhhJUo2qJRPgYgAAwHHVqFrST9/dddVkw8z+/fslSV/owwBXAgAATsXBgwflcDjqvFyTDTOxsbGSpIKCgtP6i7Eal8ul5ORk7d69W9HR0YEup94x3qbvbBsz423aGO+JGWN08OBBJSUlndb2mmyYsduPXA7kcDjOil+co6KjoxlvE3a2jVc6+8bMeJs2xnt8Z3LggQuAAQCApRFmAACApTXZMBMWFqaHH35YYWFhgS6lQTDepu1sG6909o2Z8TZtjLd+2czp3gcFAADQCDTZIzMAAODsQJgBAACWRpgBAACWRpgBAACWRpgBAACW1iTDzMyZM3XeeecpPDxcKSkpWrNmTaBLOi1Tp07V5ZdfrubNmys+Pl6DBw9Wfn6+T59rr71WNpvNZ7rzzjt9+hQUFGjgwIGKjIxUfHy8Jk6cqJqamoYcyil55JFHjhlLp06dvO0VFRXKzMxUXFycmjVrpiFDhqioqMhnHVYZqySdd955x4zXZrMpMzNTUtPYtytWrND111+vpKQk2Ww2LVy40KfdGKMpU6aoVatWioiIUFpamrZv3+7Tp6SkRBkZGYqOjlZMTIxGjhypsrIynz4bNmzQNddco/DwcCUnJ2v69On1PbRanWi81dXVmjRpkrp166aoqCglJSVp+PDh+uGHH3zWUdvvxbRp03z6WGG8knTHHXccM5Z+/fr59Gkq+1dSrf+ebTabnnrqKW8fK+3fU/kO8tfn8rJly3TZZZcpLCxMHTp00Ny5c+tWrGli3nrrLRMaGmpeffVVs3nzZjNq1CgTExNjioqKAl1anaWnp5vXXnvNbNq0yeTl5ZkBAwaYNm3amLKyMm+fX/3qV2bUqFFm79693snpdHrba2pqzEUXXWTS0tLMl19+aT788EPTsmVLM3ny5EAM6YQefvhh07VrV5+x7Nu3z9t+5513muTkZLNkyRKzbt06c8UVV5grr7zS226lsRpjTHFxsc9Ys7KyjCTz2WefGWOaxr798MMPzQMPPGDeffddI8ksWLDAp33atGnG4XCYhQsXmq+++srccMMNpl27dubw4cPePv369TPdu3c3q1evNp9//rnp0KGDue2227ztTqfTJCQkmIyMDLNp0ybz5ptvmoiICPPyyy831DC9TjTe0tJSk5aWZt5++22zdetWk52dbXr16mV69Ojhs462bduav/zlLz77/ef/5q0yXmOMGTFihOnXr5/PWEpKSnz6NJX9a4zxGefevXvNq6++amw2m/nmm2+8fay0f0/lO8gfn8vffvutiYyMNBMmTDBff/21eeGFF0xQUJBZvHjxKdfa5MJMr169TGZmpvdnt9ttkpKSzNSpUwNYlX8UFxcbSWb58uXeeb/61a/M3XfffdxlPvzwQ2O3201hYaF33qxZs0x0dLSprKysz3Lr7OGHHzbdu3evta20tNSEhISYf/7zn955W7ZsMZJMdna2McZaY63N3Xffbdq3b288Ho8xpmntW2PMMR/+Ho/HJCYmmqeeeso7r7S01ISFhZk333zTGGPM119/bSSZtWvXevt89NFHxmazme+//94YY8yLL75oWrRo4TPmSZMmmY4dO9bziE6sti+7X1qzZo2RZHbt2uWd17ZtW/Pss88edxkrjXfEiBFm0KBBx12mqe/fQYMGmeuuu85nnlX3rzHHfgf563P5vvvuM127dvXZ1q233mrS09NPubYmdZqpqqpKubm5SktL886z2+1KS0tTdnZ2ACvzD6fTKemnN4IfNX/+fLVs2VIXXXSRJk+erPLycm9bdna2unXrpoSEBO+89PR0uVwubd68uWEKr4Pt27crKSlJ559/vjIyMlRQUCBJys3NVXV1tc++7dSpk9q0aePdt1Yb689VVVXp9ddf1x/+8AfZbDbv/Ka0b39p586dKiws9NmnDodDKSkpPvs0JiZGPXv29PZJS0uT3W5XTk6Ot0/v3r0VGhrq7ZOenq78/HwdOHCggUZzepxOp2w2m2JiYnzmT5s2TXFxcbr00kv11FNP+RySt9p4ly1bpvj4eHXs2FFjxozR/v37vW1Nef8WFRXpP//5j0aOHHlMm1X37y+/g/z1uZydne2zjqN9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",
|
647 |
"text/plain": [
|
648 |
"<Figure size 640x480 with 1 Axes>"
|
649 |
]
|
|
|
668 |
"example1_path = str(expected_images_path / f\"example{idx_example+1}_mask_0.png\")\n",
|
669 |
"mod_path = str(expected_images_path / \"mod.png\")\n",
|
670 |
"expected_mask = cv2.imread(mod_path, cv2.IMREAD_GRAYSCALE)\n",
|
671 |
+
"print(f\"img check type:{type(expected_mask)}, {expected_mask.shape}. {expected_mask.dtype}.\")\n",
|
672 |
+
"plt.imshow(expected_mask)"
|
673 |
]
|
674 |
},
|
675 |
{
|
676 |
"cell_type": "code",
|
677 |
+
"execution_count": 13,
|
678 |
"id": "362260d2-38e5-4cc8-83f1-5a785450e674",
|
679 |
"metadata": {
|
680 |
"execution": {
|
681 |
+
"iopub.execute_input": "2024-03-08T00:52:42.357791Z",
|
682 |
+
"iopub.status.busy": "2024-03-08T00:52:42.357362Z",
|
683 |
+
"iopub.status.idle": "2024-03-08T00:52:42.368583Z",
|
684 |
+
"shell.execute_reply": "2024-03-08T00:52:42.367956Z",
|
685 |
+
"shell.execute_reply.started": "2024-03-08T00:52:42.357754Z"
|
686 |
}
|
687 |
},
|
688 |
"outputs": [
|
|
|
690 |
"name": "stderr",
|
691 |
"output_type": "stream",
|
692 |
"text": [
|
693 |
+
"INFO:root:perc of different pixels between output_mask and expected_mask: 0.00!\n",
|
694 |
+
"INFO:root:end\n"
|
|
|
|
|
|
|
695 |
]
|
696 |
},
|
697 |
{
|
698 |
+
"name": "stdout",
|
699 |
+
"output_type": "stream",
|
700 |
+
"text": [
|
701 |
+
"end\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
]
|
703 |
}
|
704 |
],
|
tests/imgs/example1_mask_0_broken.png
ADDED
![]() |
Git LFS Details
|