{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install torchio","metadata":{"execution":{"iopub.status.busy":"2022-07-31T08:58:49.456379Z","iopub.execute_input":"2022-07-31T08:58:49.458559Z","iopub.status.idle":"2022-07-31T08:59:04.472604Z","shell.execute_reply.started":"2022-07-31T08:58:49.457039Z","shell.execute_reply":"2022-07-31T08:59:04.471112Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport torchio as tio\nimport SimpleITK as sitk\nimport os\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pydicom\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom tensorflow.keras import Sequential\nfrom tensorflow.keras.layers import Flatten, Dense, Conv3D, MaxPool3D, BatchNormalization, Dropout, GlobalAveragePooling3D","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-07-31T08:59:06.443837Z","iopub.execute_input":"2022-07-31T08:59:06.444214Z","iopub.status.idle":"2022-07-31T08:59:16.110248Z","shell.execute_reply.started":"2022-07-31T08:59:06.444178Z","shell.execute_reply":"2022-07-31T08:59:16.109253Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datay = np.array([0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0,\n       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1,\n       1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0,\n       1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,\n       1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1,\n       1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,\n       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n       1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,\n       0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0,\n       1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1,\n       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,\n       1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n       1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0,\n       1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,\n       0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n       0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0,\n       0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n       0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,\n       1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n       0, 0, 0, 0, 0, 0, 0, 0, 0])","metadata":{"execution":{"iopub.status.busy":"2022-06-05T00:59:45.777099Z","iopub.execute_input":"2022-06-05T00:59:45.777433Z","iopub.status.idle":"2022-06-05T00:59:45.818841Z","shell.execute_reply.started":"2022-06-05T00:59:45.7774Z","shell.execute_reply":"2022-06-05T00:59:45.817656Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datay.shape","metadata":{"execution":{"iopub.status.busy":"2022-06-05T00:59:45.820839Z","iopub.execute_input":"2022-06-05T00:59:45.821373Z","iopub.status.idle":"2022-06-05T00:59:45.842073Z","shell.execute_reply.started":"2022-06-05T00:59:45.821337Z","shell.execute_reply":"2022-06-05T00:59:45.840728Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datax = np.array(['6897fa9de148', '013358b540bb', '0cee26703028', 'c28f3d01b14f',\n       'c8fbf1e08ac5', '57f735b10b3c', 'd766f804c9fd', '52350901f414',\n       '6cc79b883538', '3c5fd9c92057', 'f774840ca454', '72130256f0cf',\n       'b012165f24e6', '66b048cd99ac', '9ca682ad16e3', 'c04645a2c8b3',\n       '6e2e0499db90', '9fdeabd62337', '7d2a62349c3c', 'd25e9842c1b3',\n       '045a692f7143', '7cd26a554409', '3845443d4ddb', '400b59786654',\n       'f433698c412a', '12d28ed2f4d6', 'c12436f6d2df', '8e562155acb2',\n       '7b7d8152fb36', 'e01688367856', '342bb8369d0d', '9af41a711058',\n       '7d45093fbedb', 'dcf730d0849e', 'ccfa625b668c', '1ab0bf3198c4',\n       'ffbf563099a4', '9820a5517bd4', '7340914d2faf', '09f1aa86eaea',\n       '1ae6a23952ff', '98c93d32f030', 'd9db1fa210c2', '1d0ca5708b86',\n       '42e9593302ae', '73864f06e96e', '794df34c0349', 'f99e07546aca',\n       '8643c645db96', 'bd8808bafb12', 'c495e0a22ed8', 'f5168d79e27f',\n       'e9cf250caaef', '5ded77d0b813', '46e614d66734', 'fb6446cf3514',\n       '1ced052a8b36', 'ae79248558ca', '0358701cd26a', 'fb4550ff5a1b',\n       'a84c2373adef', '933bd1af7354', 'd1a28b54e201', '48a408c167d5',\n       '846a02873152', 'af234b50ae62', '4294a49e032c', '1582f93da0bb',\n       '4ef74c5e5ce3', 'f19d3cc29bf2', '1ff2a4f15d8b', 'afc57053fb3f',\n       '437caed08598', 'a0bf6ddd0217', 'cb30ca0454f1', 'a11da991ed47',\n       '4d35758ca00d', '4ef06bb42043', 'ab9e21e0bac4', 'eb65207fcdee',\n       '541e6c1ab1b3', '583fb125addc', 'a6c375d2b769', '43b651dbc5e1',\n       '626a5f7ca695', 'd75ac9908b12', '7f1e8ab8777d', 'c4d00dfcb3b8',\n       '4b2bca37dd8d', 'ca5181c58402', '81ef662614f5', '16e616e9da6f',\n       '5bcdc3b4de29', '3e31fb348568', 'a8021ffacd1e', '1bc89370c743',\n       'e45ca3e81a0d', '3f381ebd13a2', 'e19e70a7674b', '9af6ecd6a949',\n       'ac549e4ea07c', '8ed86f44355b', 'b0eb255cc9eb', 'c8216be82491',\n       'c852052cd6da', '518aba7d5e02', 'f740e12c86c3', 'c2cb6ed0a477',\n       '7ebf1562b08d', 'e1c0ea5e7a1c', '5207ea64bfae', '59b5c5a73344',\n       '2486734f52b8', '28be582e394b', 'abf1fec4cc8e', '93e2fd0dbca1',\n       '34a18161b4e0', 'e3b256467eca', 'c281eca04485', '0b7bf037d9b0',\n       '9a33aea77cd0', '565d68be0f68', '3790228068d8', 'fa96d7d1765e',\n       '3345f2442e34', '0e86a0d09110', '5afd899fc76b', '5364d189c001',\n       '2bb4fdce19d1', '9fceddad0c22', 'cec0e2a5869f', '75f424e9b6c2',\n       '3324a7eb9bb2', '0a970be732a9', '3c7140f326d9', 'd6aeb045d7a9',\n       'e90d0d00e47d', 'aa4e8b79cf10', '09fbf0152a4e', '70a22345e278',\n       '4d28a759b032', '6b18f159d733', '61d86c1dea3b', '764580b01f2a',\n       '1c242c230cfb', 'f3b5f9a59ad6', 'a7aaed73c99d', 'de584b2d152b',\n       '1a028f53d74c', '5b72d0fbe787', '81499f5ef875', '556c0a1b8538',\n       'ce6d2f4a295f', '0829404b8f68', '83051a51ccc6', 'cbf6d8a005e2',\n       'f304a939bbc7', 'd3546f345ae9', '0dc057976e8d', '776eae6e0dfb',\n       'cbca5b538203', 'eda737b8a3e3', '30ea21531a5b', '7ded78f4bc94',\n       '6c87580fe973', '287e39883628', '29b4e7186780', 'dc645bb5b5e7',\n       'db0f236e79ab', '973eb9fa53f5', '8d4fb34ca852', '4d31460929fb',\n       '43cf44be6c83', '1d4d04b55f63', '0bc98b68c154', 'a1618e3a28cb',\n       'f2bf486b8fec', '58e9e7e51f10', '17a8295fc508', '31d45aef2660',\n       'ec1eb23dda48', '19629f6063b5', '5aafe7bb1775', 'ef89dacb6477',\n       '89cbdb791b95', '6866d7046e21', '79c2cce72c7c', '88f4aa938e40',\n       '08f99ee20545', 'ae311f2c222e', '82e22a3f5ea8', 'c57756e162c4',\n       'ce2c0d1b935f', '89a4f1f8a520', '137939b0ef61', '61fd1c364b06',\n       'e38b906e0af0', '3a6ec311a6bd', '5d5ca775a78a', '16bdfb58e8bc',\n       '4897554d9ec9', 'da7c47d260ef', 'c304a7b5ba11', 'afb7251797b0',\n       '29387e715bd9', 'caf1c8f0a418', 'bc7c02b951ff', '3578ec39ac8a',\n       '28686db13062', '01796cd8f2cd', 'a02cc4f62c2d', '940eff4f2014',\n       'ccf0aeecc66c', '79304df6a87f', '421fbe8a7638', '87481e8f16dc',\n       '71b4a006fd36', 'edc0263dd097', '018b5097a129', '73a7f4d6e2eb',\n       '9508f9155962', 'c6d2f99db032', 'bed6309efd9c', '6e57156ed100',\n       'bc90ab51d306', '8ff02de17b0b', '5877c12ebef2', 'cb554d55aeb8',\n       '2a2a21e785cf', '3a684e0b0cea', '66fdaaf58411', '310d73189d2a',\n       'cd233817335f', 'b02a386ba67c', 'eeff4d22e55c', '0e0c5f266136',\n       '67d18f4d8540', 'a04f318e9972', '2e0bd039b5b7', 'eac9014cea52',\n       '07bd8cc56850', '3ff2e0fac430', 'f8b02ccb4215', '47013dc545d7',\n       'e9068db4d0c6', 'fdc012de652b', '2c55ab4208e7', '2380c789036b',\n       'a54d5d8cadeb', 'f6e08ba59365', 'b11069ee2edc', 'a92d79b90283',\n       'bf0609baed7b', '61bc016e2612', '2a1b1cc2ac90', 'ad03b7ff0c56',\n       'a68f02603ae4', '1cdfc1f4a361', '75b62fa72a7d', '02aca64c04a9',\n       '063783136bdd', '69e05fae3a51', '9f9211468311', '2e86c38fcae4',\n       'e4ce75c053a2', 'ab258d6f29fa', '0a32a2694464', '5060115c64b9',\n       '5b8909935d8b', '84eefa80e595', '9eb3957fea06', 'cce23c4e4dfd',\n       'ffa79a545c36', 'af75f0c70d47', '742d0cc0fdc0', 'e88a9aade24a',\n       'f4e34af71f0d', '4b1de3eb252d', '3d3ed4298acc', '213e09559039',\n       'e88187620dfe', '6b4abf58e332', '551069b408e3', 'f92acf453322',\n       'b01adfdacb92', '39ed3664c363', '4f62482300e7', '9e98d88b4be4',\n       'fbf07b871839', '3d87b898b381', 'bf4d43348622', '66dc6bf4fb34',\n       '379d359c3cc3', '8db8c571c33a', '4c07ac3fdc57', 'e4b7070d584a',\n       'aeb3e52fb669', '0c52610c202c', '234e30a9b491', '8e5b0925b0b0',\n       '9c428e7b4d3f', '259707585fda', '610f15a869cc', '2f35a7d9afae',\n       '1010a719f9f9', '3d2a538d6ae1', '8a215a226d93', 'dad33e23e08c',\n       '94860f3361f7', '5aa878b4e6ce', '634714ab352d', '00511e94edec',\n       'bba1f13fd9ab', '1df1a5843bb0', '860c2ffdc859', 'c18bfa87ce50',\n       '5a83a90b867b', '7c8cd92e95a1', '6b62ea3c6434', 'b5fb8c062614',\n       '4f82cfeb3bd8', 'cfc38a0bc42d', '89b3c87726d4', 'ff7f281d42ea',\n       '3ac389cdf95d', '40577c28deb3', '0045f113e031', 'de9e82cbd095',\n       '45f10f5a9f4b', 'd95c014c7deb', '8c33d0cfbe48', 'f050d39aa1c1',\n       'f359418e021b', '6fee69a7f520', '064153f367c0', 'da66efa79559',\n       '0112fd91fdd0', '8f03763c075d', 'e6b7dcf7ba6a', '5c7bc26a57b4',\n       '11d79469b0a7', '5d35fe271a66', '7101c10aab51', 'b22384c97698',\n       '08593ebb71c0', 'ae1f3dbcaee7', '45115e176f98', 'aab7ebc2768e',\n       'dbef470cfe2a', 'b82680f6d54e', '217be86a6d6d', '2e918ce182eb',\n       'e0b993e40cdd', 'b6e8bc34b552', '3a2f384fe9c1', '3be263e2a866',\n       '824e9768e000', '35edbc3dd723', 'de82aee6c9f2', '11e613fb00cd',\n       '60bc0d5537da', '12e2e6140a19', '3a781e6342c6', '68467eb971ed',\n       '597cbf90271b', '7bd7b1a8b280', '0cc5974bc2e7', '72570ed4f11b',\n       '06755d30ab5e', '0e6d4ce846f0', '33b0f3ff771b', '8e66cd3442bd',\n       '61cd3b788047', 'cd6b1507c1d3', '3a9f089c7d99', 'fbc8ea6cd700',\n       '866833783b95', 'ddef3e0290f3', 'c5643a67028b', 'cf26902c572b',\n       'c3444ab3fd95', '6a5e2bb1f6ab', '732d0e542b06', '43e2cd7fcfc7',\n       '256859025458', 'ef69e7578a05', 'ae4f84f6fafb', '703d3ceafa0d',\n       '21c3340d7be2', '751f1a9c8e9e', '19109bc6e0af', '641b92741d91',\n       'b07ed1dbeb2f', 'd51356e84d04', '60e4d814c23c', '80fa9469f822',\n       'e5cfee25a657', '70a9d4697544', '6168286cea0d', 'b36d9324daec',\n       '1211504fccd9', '3e04185eb509', '3c28965c6a77', 'e6fc04eceaad',\n       '613ca76fb42e', '8eb9436eb1d3', 'c14860407fb7', '25e491291085',\n       '864f3b012500', '9e5e9d2fed9a', '31b773df8ecf', '1010deb093d6',\n       '26ab7ced3205', '75a57e7be998', 'b909f22a87d9', '9b0c36ac7031',\n       '5cc491bfaac3', '4fcfaf23aa56', '77b5169c4ee8', '470aac935647',\n       '46974b527505', 'b4ed2db75bea', 'bf183bd4b85f', 'd63062d7b008',\n       '4c8af310b191', '35917ca607fe', '26f82c3c8072', '57678befed0a',\n       'e8db3b3f5c79', '2b4a1c8c4573', '72d60764f406', '45a2a3b6ea64',\n       '004f9a1605e7', '2f22ecdf45b7', '5fee772cc7bf', 'ca67517ba13b',\n       '96aba2c0ff5d', '7a0d49c3a2e8', 'ee795818d9e7', 'bebf55e2b748',\n       'ff98e871bdea', 'af0391955070', 'dc60785eed17', 'b996eb1d4372',\n       '1ec60c3167ac', '3bc92a9daeb9', '4c5397c29ca0', 'a5dceecd7765',\n       'a9c9227e5f8d', 'c0b875baa99c', 'd8bcc4d87b2b', 'f3206cfc86c8',\n       '556095279017', '9660421aec83', '594f3a4c0035', '8b2c98158fd1',\n       '52f3590d3114', 'e44301c6c4a9', 'a8614bc66895', 'cafaf4349e00',\n       'c02ccbf7b023', '0a339f24d18b', 'e6f225faab95', '4ecf58adbb89',\n       '4fae84368598', 'd9d710a0cce4', '97aa549228cf', 'b6c0777ce6a7',\n       '9771a63fcf63', 'f90d25ca8c89', '67074ae2ef97', '59331ab0d7cd',\n       '4a68cb8ce5f2', '00c07cd8129d', '3b570d2a5969', 'ef9f204b9d29',\n       '7826ae6f1218', '15c6ee7f3188', 'fc15f24c6ffb', 'e7b3987937e6',\n       'd1a0226668e4', 'ef3834dc2f85', 'b63a373f18b8', '265abcdc7c46',\n       'bcf6bb23b143', '61462f3676cc', '197b20aaeecc', '8de1ecba8ecc',\n       'ebb0a7a7cc68', '9fb267edb9df', '14c57dc12f12', '364e9bd00df2',\n       '81fa679d79d5', 'da417b3cbc86', '6ad821b36eda', 'ba13358533ad',\n       'dd90fd727d7b', 'f3d7db1ccba2', '96c9cb503537', 'e30fdd259609',\n       '47fed58478ca', '5f2f3874ef5b', 'd0c0961de87b', '304c8048085b',\n       '7c82e5e8c68f', '164147766170', '6e861de7e84d', '9f0fb6cb0ecd',\n       '8a9098d091f9', '922c06ef4c18', '6158a10eeb26', 'c7d59b326354',\n       '84264625ee42', 'e2337d2a867e', '88e82a9326b2', 'ae463fa7ac85',\n       'bf379170b389', '440d4445b719', '328d384aee6a', '3e7ee3b00f83',\n       '1c2a86c81907', '517db929f10d', '983c2c029c42', '27ccaa051ada',\n       'b5e892be48c6', 'de6cf946cacb', '6a20d63ff83e', '31f86eea3f0e',\n       '8fedafb2dfcc', '86765ed0739f', 'd8ce16316e12', 'ba6e5d157ef5',\n       '33cf357b5cf7', 'fcd1e35edd89', 'f7dc547cb4b2', 'd22406e83609',\n       'ad246a097fa6', 'a54746e65833', 'ec2a1b707111', '77cad15dee59',\n       '782b1561904a', 'fbd638a2e126', 'b31bd4d54e91', 'ce6bcbc307fc',\n       '71ed3ae17437', 'f1ccf4128e9d', '78316ab0762c', '60c1e671a529',\n       '86fe260f2d92', 'fa55c2d12e10', '430d54882647', 'db3d47962890',\n       '128b5e6f11d8', '84b137d5a696', 'bbf1b9300b45', '04b914c3a778',\n       'df5ea63f89ed', 'ab336b035f00', '7aba014984b7', 'afe186f1593b',\n       '1a9c762ffcc6', 'ad03e07c55fc', 'aa3b1ca705b0', '233cbc840568',\n       'd810150f65b1', '0b34e2f538e3', 'c5b898b874cd', 'a55662221227',\n       '15a9c76ffeb3', '8b0a579beb45', '683ddc468822', '5aba34e03cef',\n       'da8cb8c2dbb9', '75c572159734', '8d8217ad17ef', '6828d79b1dce',\n       'e5d290033e3c', 'a222d1937991', 'b4c171019cf5', '364ec5aaf05e',\n       '53df0b9f17de', 'e1caf9350133', '10357b081140', '455522df85a7',\n       '9f1f853da397', '859a705239d4', '9f03e1e55791', '4d0395e609bd',\n       '820d64aab9bf', '68f15f83d129', '515ec65f2434', 'b11a626b05e3',\n       '30de4bede1dd', '9eddb0f77589', 'fb86440bd85f', 'ce169e8b23ef',\n       'cb57ea5f137a', '17a122585738', '357698fbbe38', 'd0d3425c11f3',\n       '439da7632b69', '02d0d2ea8ad2', '31ed2d31301d', 'cdc4ce03759e',\n       'abe3e25c27a6', '0adb20e44536', 'eb51866151eb', '589d45cdeb78',\n       '92f2fcbf5e4b', 'd2d6bc9ecade', '55d755906d91', '1c731d559fd9',\n       '56fad6b53448', 'b2649f29fd6d', '666b9ad4f63b', '71352f62a046',\n       '2e131c731d8f', '64eb7fbc0126', '82cb3be70776', '9ac35ede8178',\n       '032f245a99ad', 'ae5703200346', '453b5c80357e', 'd5d5247d293b',\n       '2ae02df04421', '4a14cc5857fe', '5030c87aae09', '4ff23914e6f8',\n       '99d67fcc0a3a', 'd80a9c9160ea', 'a77ea22d62b3', '7511d2b4ad3d',\n       '63535e02efef', '5e698a8957cf', '7f1495a71b02', '1bf15379c16b',\n       'f309bc5c8683', 'e86aa83320c1', '0e036c4508bb', 'ec3e283ad950',\n       '1afd48eafac2', '7ba9cf7341a4', '6fdc209b50b1', 'fa0a963179ca',\n       '2765fd16f009', 'dd8c6bdf21a9', '57953a9d8e89', 'bcd48aa10710',\n       '4c3cd3a16e91', '49815063749c', '1e9cbb820b18', 'cd3a45ab948a',\n       '88d0b6ea6489', 'bad69344aea7', '37644ecbca48', 'd5805fff6b11',\n       '8454d513ad35', '1e093cc4f6b3', '456b87e559df', '62af99a30b77',\n       'cd5aa4f6db95', '40086b51a222', '58689e9d220d', '0954c99930f6',\n       '771d29dc244c', '2155000d84d5', '4629aae5b5e8', '2edd21213a2a',\n       '3ff097ad6e31', '2be6c2f00c4c', '050656e839da', 'e4a5e780409e',\n       '0d548bca2844', '2c34a9bb7eeb', '2e6a9161bb0a', 'c2e8e9be1778',\n       '067e27be1505', '95de2f0ee3c0', '4544fe4c79ce', '4a75cb7b3c89',\n       'da96d3d72022', 'e1e12858fa9e', 'd119b9df7300', 'c731bd8ce061',\n       'e1feabbd1690', 'e133a6904073', '85e242021d82', '1417f4655ee3',\n       'de3f7e313dfd', '2572dddd88ce', 'c855d3b30b4d', '0c58f0edd804',\n       '2ae2d5687734', 'c0a3759f93e4', 'c6a09695b02b', 'e66e4b3c4bc5',\n       '5dfd8a5e8064', '8c87d014fa6f', '16de13407579', '9481cac65f72',\n       'b28cfc6db06b', '3140e4976204', '9728d68f807c', '1c597fc148ae',\n       '8257c43f4b9c', '2008f14c56d7', 'c974d937019f', '128c1edbef54',\n       '67745b6d43eb', '04aaa7327d86', 'd45f695f4621', '305c70eda910',\n       '45423e396a0e', '3c3571dee457', 'a32fea2e8b32', 'ae0a88a205f3',\n       'f01c03ea5855', 'fb79bf509484', '6e120bcb7f6d', 'b0fb4c92e8e6',\n       '5444b66bf3c5', '6648651ae98b', 'd7dfb4ba2318', '6b68eb125518',\n       '1f977508d57a', '1f527838137b', '31da87371c26', 'e27d37090422',\n       'fa0068e91d45', '0e56b97f0bf8', 'fcfaeb2ab6f6', 'f131d4ba5cb7',\n       '50151f508482', '33ae3f9e57fd', '1a91153a3792', 'd4bfd1034657',\n       '77f7c1a7b693', '50611cbdade4', '8b1e0be12d8e', 'f6c668b20bdc',\n       '9233a407550f', '8b10e8af1ba6', 'be1ad463b6bc', 'ac16092ad220',\n       '37dc2b16c9d6', 'fdbeebdb0d97', '3e20115e4f0b', 'ef88b5836ec6',\n       '7e209fbfc30a', 'dad6c93ee90d', 'a2b03dd554d8', 'a11e57918884',\n       'f751cd1dd4cb', '8e0a8819c826', '03e660e025b3', '54e1fd491fef',\n       '53a0ebc8cdd7', '1b4be4bef3bc', 'f4b30d6e69ee', '6f53aa6a4830',\n       'd9bcfa96c339', '40cb7610b298', '16e955364f1c', '5fab033df67e',\n       'b6689933db7e', '0dbb199062b7', '18f2ec1a1069', 'a919ea9558f7',\n       '943bc52d2a56', '5a5c8b0113f7', '2352e610538e', '05446a4a3a9c',\n       'b49503c7ae16', '0d282fe7068c', '134ae93396d5', '3e436db6f4cd',\n       'e857f4ccb670', '9f96688b6650', '0277b45e89cc', '50ee5648653e',\n       'eaea1aeaf5be', '7be4cd52b1e1', '1481013caabc', 'f3715a412c28',\n       'a43a36cc8792', '4641b8ce51b8', 'bfd428ecfa56', '2e42719153f3',\n       'c3387c5a0000', 'bb2bbcbc7187', 'bde81b2222f2', '1fdb05d74351',\n       '42d1d614bde4', '2151dd8b5893', 'e0f3e1710502', '15422ea8ba8f',\n       'afa2bf8b7dc6', 'f0eefdd3595b', '093e2300daa5', '4c0ae3ecb7e0',\n       'da748c6ea410'])","metadata":{"execution":{"iopub.status.busy":"2022-07-31T09:01:45.559288Z","iopub.execute_input":"2022-07-31T09:01:45.560049Z","iopub.status.idle":"2022-07-31T09:01:45.609631Z","shell.execute_reply.started":"2022-07-31T09:01:45.560013Z","shell.execute_reply":"2022-07-31T09:01:45.608401Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df = pd.read_csv('../input/rsna-str-pulmonary-embolism-detection/train.csv')","metadata":{"execution":{"iopub.status.busy":"2022-07-31T09:03:17.578553Z","iopub.execute_input":"2022-07-31T09:03:17.578948Z","iopub.status.idle":"2022-07-31T09:03:22.230155Z","shell.execute_reply.started":"2022-07-31T09:03:17.578920Z","shell.execute_reply":"2022-07-31T09:03:22.229048Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def getlabel(name : str) -> int:\n    \n    label = df[df.StudyInstanceUID == name].negative_exam_for_pe.values\n    \n    return label[0]","metadata":{"execution":{"iopub.status.busy":"2022-07-31T11:17:51.089288Z","iopub.execute_input":"2022-07-31T11:17:51.090889Z","iopub.status.idle":"2022-07-31T11:17:51.098326Z","shell.execute_reply.started":"2022-07-31T11:17:51.090821Z","shell.execute_reply":"2022-07-31T11:17:51.097391Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def resize(vol):\n    sit = vol.as_sitk()\n    depth = sit.GetDepth()\n    res = tio.Resize((128, 128, depth))\n    read = res(vol)\n    return read","metadata":{"execution":{"iopub.status.busy":"2022-07-31T10:50:43.421119Z","iopub.execute_input":"2022-07-31T10:50:43.421491Z","iopub.status.idle":"2022-07-31T10:50:43.426636Z","shell.execute_reply.started":"2022-07-31T10:50:43.421461Z","shell.execute_reply":"2022-07-31T10:50:43.425647Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\ndef load_data(ind = 0,limit = 10):\n    transform = tio.ZNormalization()\n    HOUNSFIELD_AIR, HOUNSFIELD_BONE = -1000, 1000\n    clamp = tio.Clamp(out_min=HOUNSFIELD_AIR, out_max=HOUNSFIELD_BONE)\n    resample = tio.Resample((1, 1, 1))\n    data = []\n    baddirs = []\n    counter = 1\n    datay = []\n    for i in datax[ind:]:\n        try:\n            if counter == limit:\n                break\n            print(i)\n            \n            path = f'../input/rsna-str-pulmonary-embolism-detection/train/{i}'\n            imageList = os.listdir(path)\n            path += '/' + imageList[0]\n            vol = tio.ScalarImage(path)\n            s = vol.as_sitk()\n            depth = s.GetDepth()\n            if depth > 290:\n                continue\n            \n            clamped = clamp(vol)\n            normal = transform(clamped)\n            ready = resample(normal)\n            ready = resize(ready)\n           \n            s = ready.as_sitk()\n            depth = s.GetDepth()\n            iarray = sitk.GetArrayFromImage(s)\n            if depth < 290:\n                for i in range(290 - depth):   \n                    \n                    im = np.zeros((128, 128))\n                    \n                    iarray = np.append(iarray, [im], axis=0)\n                    \n            elif depth > 290:\n                continue\n\n            iarray = iarray.reshape(128, 128, 290)\n            iarray = np.expand_dims(iarray, axis=3)\n            \n            print(counter , '/' , 801)\n            \n            \n            datay.append(getlabel(i))\n            data.append(iarray)\n            counter += 1\n        except Exception as e:\n            print('ERROR at', str(e))\n            \n    return data,datay\n","metadata":{"execution":{"iopub.status.busy":"2022-07-31T11:53:14.578250Z","iopub.execute_input":"2022-07-31T11:53:14.578780Z","iopub.status.idle":"2022-07-31T11:53:14.594437Z","shell.execute_reply.started":"2022-07-31T11:53:14.578740Z","shell.execute_reply":"2022-07-31T11:53:14.593621Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datay = []\ndata = load_data(0, 4)\ndatay = np.array(datay)","metadata":{"execution":{"iopub.status.busy":"2022-07-31T11:49:42.223662Z","iopub.execute_input":"2022-07-31T11:49:42.224087Z","iopub.status.idle":"2022-07-31T11:49:44.859335Z","shell.execute_reply.started":"2022-07-31T11:49:42.224034Z","shell.execute_reply":"2022-07-31T11:49:44.857654Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datay","metadata":{"execution":{"iopub.status.busy":"2022-07-31T11:23:15.207755Z","iopub.execute_input":"2022-07-31T11:23:15.208296Z","iopub.status.idle":"2022-07-31T11:23:15.216094Z","shell.execute_reply.started":"2022-07-31T11:23:15.208256Z","shell.execute_reply":"2022-07-31T11:23:15.215171Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datay = datay.reshape(10, -1)\ndatay","metadata":{"execution":{"iopub.status.busy":"2022-06-05T01:16:21.438863Z","iopub.execute_input":"2022-06-05T01:16:21.439338Z","iopub.status.idle":"2022-06-05T01:16:21.448189Z","shell.execute_reply.started":"2022-06-05T01:16:21.439303Z","shell.execute_reply":"2022-06-05T01:16:21.446701Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_loader = tf.data.Dataset.from_tensor_slices((data, datay))\n\nbatch_size = 2\n\ntrain_dataset = (train_loader.shuffle(len(data)).batch(batch_size).prefetch(2))\n","metadata":{"execution":{"iopub.status.busy":"2022-06-05T01:16:33.801472Z","iopub.execute_input":"2022-06-05T01:16:33.801896Z","iopub.status.idle":"2022-06-05T01:16:34.1175Z","shell.execute_reply.started":"2022-06-05T01:16:33.801863Z","shell.execute_reply":"2022-06-05T01:16:34.116416Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\nmodel = Sequential()\n\nmodel.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu', input_shape = (128, 128, 290, 1) ))\nmodel.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu'))\nmodel.add(MaxPool3D(pool_size=2))\nmodel.add(BatchNormalization())\n\nmodel.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(MaxPool3D(pool_size=2))\nmodel.add(BatchNormalization())\n\nmodel.add(Conv3D(filters=128, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(Conv3D(filters=128, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(MaxPool3D(pool_size=2))\nmodel.add(BatchNormalization())\n\nmodel.add(Conv3D(filters=256, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(Conv3D(filters=256, kernel_size=(3, 3, 3), activation='relu' ))\nmodel.add(MaxPool3D(pool_size=2))\nmodel.add(BatchNormalization())\n\nmodel.add(GlobalAveragePooling3D())\n\nmodel.add(Dense(units=512, activation='relu'))\n\nmodel.add(Dense(units=256, activation='relu'))\n\nmodel.add(Dropout(0.5))\n\nmodel.add(Dense(units=1, activation='sigmoid'))\n\n","metadata":{"execution":{"iopub.status.busy":"2022-06-05T01:16:41.086619Z","iopub.execute_input":"2022-06-05T01:16:41.087255Z","iopub.status.idle":"2022-06-05T01:16:41.411594Z","shell.execute_reply.started":"2022-06-05T01:16:41.087203Z","shell.execute_reply":"2022-06-05T01:16:41.410243Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from tensorflow import keras\n\ninitial_learning_rate = 0.0001\nlr_schedule = keras.optimizers.schedules.ExponentialDecay(\n    initial_learning_rate, decay_steps=100000, decay_rate=0.96, staircase=True\n)\nmodel.compile(\n    loss=\"binary_crossentropy\",\n    optimizer=keras.optimizers.Adam(learning_rate=lr_schedule),\n    metrics=[\"acc\"],\n)\n\n# Define callbacks.\ncheckpoint_cb = keras.callbacks.ModelCheckpoint(\n    \"3d_image_classification.h5\", save_best_only=True\n)\nearly_stopping_cb = keras.callbacks.EarlyStopping(monitor=\"val_acc\", patience=15)\n\n# Train the model, doing validation at the end of each epoch\nepochs = 5\nmodel.fit(\n    train_dataset,\n    epochs=epochs,\n    shuffle=True,\n    verbose=2,\n    callbacks=[checkpoint_cb, early_stopping_cb],\n)\n","metadata":{"execution":{"iopub.status.busy":"2022-06-05T01:16:44.119335Z","iopub.execute_input":"2022-06-05T01:16:44.119826Z","iopub.status.idle":"2022-06-05T02:07:26.767266Z","shell.execute_reply.started":"2022-06-05T01:16:44.119789Z","shell.execute_reply":"2022-06-05T02:07:26.766103Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def run():\n    model = Sequential()\n    epochs = 10\n    batch_size = 4\n    count = 31\n    initial_learning_rate = 0.0001\n    \n    validationx, validationy = load_data(0, 31)\n    validationy = np.array(validationy)\n    validationy = validationy.reshape(30, -1)\n    \n    validation_loader = tf.data.Dataset.from_tensor_slices((validationx, validationy))\n    validation_dataset = (validation_loader.shuffle(len(validationx)).batch(batch_size).prefetch(2))\n    \n            \n    model.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu', input_shape = (128, 128, 290, 1) ))\n    model.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu'))\n\n    model.add(MaxPool3D(pool_size=2))\n    model.add(BatchNormalization())\n\n    model.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu' ))\n    model.add(Conv3D(filters=64, kernel_size=(3, 3, 3), activation='relu' ))\n\n    model.add(MaxPool3D(pool_size=2))\n    model.add(BatchNormalization())\n\n    model.add(Conv3D(filters=128, kernel_size=(3, 3, 3), activation='relu' ))\n    model.add(Conv3D(filters=128, kernel_size=(3, 3, 3), activation='relu' ))\n\n    model.add(MaxPool3D(pool_size=2))\n    model.add(BatchNormalization())\n\n    model.add(Conv3D(filters=256, kernel_size=(3, 3, 3), activation='relu' ))\n    model.add(Conv3D(filters=256, kernel_size=(3, 3, 3), activation='relu' ))\n\n    model.add(MaxPool3D(pool_size=2))\n    model.add(BatchNormalization())\n    model.add(GlobalAveragePooling3D())\n\n    model.add(Dense(units=512, activation='relu'))\n    model.add(Dense(units=256, activation='relu'))\n    model.add(Dropout(0.3))\n    model.add(Dense(units=1, activation='sigmoid'))\n\n    \n    lr_schedule = keras.optimizers.schedules.ExponentialDecay(initial_learning_rate, \n                                                              decay_steps=100000, \n                                                              decay_rate=0.96, \n                                                              staircase=True)\n    model.compile(loss=\"binary_crossentropy\", optimizer=keras.optimizers.Adam(learning_rate=lr_schedule), metrics=[\"acc\"])\n\n    checkpoint_cb = keras.callbacks.ModelCheckpoint(\"3d_image_classification.h5\", save_best_only=True)\n    early_stopping_cb = keras.callbacks.EarlyStopping(monitor=\"val_acc\", patience=15)\n    \n\n    for i in range (10):\n        datax, datay = load_data(count, 11)\n        train_loader = tf.data.Dataset.from_tensor_slices((data, datay))\n        train_dataset = (train_loader.shuffle(len(data)).batch(batch_size).prefetch(2))\n        \n        model.fit(\n            train_dataset,\n            validation_dataset,\n            epochs=epochs,\n            shuffle=True,\n            verbose=2,\n            callbacks=[checkpoint_cb, early_stopping_cb],\n        )\n    model.save('model', save_format='h5')","metadata":{},"execution_count":null,"outputs":[]}]}