Rumah  >  Artikel  >  Peranti teknologi  >  Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

WBOY
WBOYke hadapan
2023-04-11 17:31:031189semak imbas

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

​Untuk mengetahui lebih lanjut tentang sumber terbuka, sila lawati: ​

​Komuniti Perisian Asas Sumber Terbuka 51CTO​

​https://ost.51cto.com​

Ringkasan Projek

Di negara kita, saluran gastrousus Insiden penyakit adalah tinggi, dan ada pepatah mengatakan "sembilan daripada sepuluh orang mempunyai masalah perut". Berbanding dengan jenis kanser lain, rawatan tepat kanser gastrik dan kanser kolorektal di negara saya ketinggalan, yang tidak dapat dipisahkan daripada ketepatan kaedah pengesanan. Di samping itu, kaedah diagnostik biasa juga mempunyai risiko yang berkaitan: CT mempunyai bahaya radiasi yang kuat kepada badan pesakit B-ultrasound mempunyai ketepatan yang lemah dalam mendiagnosis penyakit gastrik boleh menyebabkan kemudaratan tertentu kepada pesakit, dan terdapat risiko seperti kerosakan mukosa dan pendarahan; , perforasi gastrousus, dan kerosakan pita suara. kadar saringan awal kanser semasa negara saya adalah rendah, dan terdapat ruang yang besar untuk meningkatkan kadar penembusan diagnosis endoskopik. Dijejaskan oleh tahap sains dan teknologi, promosi dan mempopularkan teknologi pembedahan invasif minimum di seluruh dunia dalam beberapa tahun kebelakangan ini telah menggalakkan pembangunan peranti perubatan invasif minimum Endoskop adalah yang paling mewakili peranti perubatan invasif minimum, dan endoskop boleh dimasukkan juga boleh Melaksanakan fungsi biopsi dan rawatan. Walau bagaimanapun, endoskop boleh dimasukkan juga mempunyai kelemahan tertentu dalam operasi perubatan Pembedahan bukan sahaja menyebabkan kesakitan kepada pesakit, tetapi juga membawa banyak komplikasi Terdapat juga titik buta pengesanan tertentu dalam bidang pandangan lensa. Oleh itu, robot mikro-bionik menyediakan pilihan yang cekap dan mudah untuk diagnosis invasif minimum dan pemeriksaan penyakit usus, dan telah menjadi tempat tumpuan penyelidikan terkini dalam bidang teknologi endoskopik.

Penyelesaian kami ialah menggunakan kaedah pergerakan spiral sperma untuk menyuntik robot mikro ke dalam dubur pesakit dan mengawal pemacu mikro robot dari jauh untuk menggerakkannya di dalam usus bagi mencapai diagnosis titik tetap. Semasa pergerakan, gegelung SMA digunakan sebagai unit pemacu untuk mengawal mikrorobot untuk bergerak ke hadapan dan ke belakang, mencapai gaya berjalan berterusan dengan meniru mekanisme pergerakan otot cacing inci. Dari segi kawalan, kawalan servo dengan isyarat maklum balas yang sesuai digunakan untuk melaraskan arus masuk mengikut data komprehensif semasa dan suhu yang dipantau Suhu gegelung SMA dilaraskan tepat pada masanya dan rintangan berubah apabila masa terputus-putus semasa berlaku direkodkan. Sistem penghantaran tenaga tanpa wayar termasuk pemancar di kawasan perut badan manusia yang boleh merangsang medan magnet berselang-seli dan penerima bersepadu di dalam mikrorobot, yang mendorong medan magnet berselang-seli dan memberikan voltan kendalian DC kepada robot. Lampu pengesanan mini direka pada kedua-dua hujungnya untuk menerangi keadaan usus Pada masa yang sama, ia dilengkapi dengan kamera kecil yang dikawal secara wayarles untuk menangkap imej masa nyata usus , dan data dihantar ke platform penggunaan untuk ramalan menggunakan model pembelajaran mendalam Pelayan program melakukan pembahagian imej selepas prapemprosesan data, berinteraksi dengan data dan model pembelajaran mendalam, dan mendapatkan keputusan ramalan untuk diagnosis oleh doktor profesional.

Kata kunci: pembelajaran mendalam, pengesanan usus, gegelung SMA, pengenalpastian lesi

1 Latar belakang projek

1. Gambaran keseluruhan latar belakang

Penyakit saluran gastrousus merujuk kepada penyakit gastrousus radang umum (gastritis akut dan kronik, apendisitis akut dan kronik, dsb.), ulser peptik, kanser gastrik, kanser esofagus, kanser kolorektal, dan sindrom usus, dsb.

Insiden penyakit gastrousus semakin meningkat dari tahun ke tahun Mengikut statistik WHO, kejadian penyakit gastrik adalah setinggi 80%. "Jurnal Perubatan Cina" (versi Bahasa Inggeris Jurnal Perubatan Cina) menegaskan bahawa lima jenis kanser utama yang didiagnosis di China pada tahun 2022 ialah kanser paru-paru, kanser kolorektal, kanser perut, kanser hati dan kanser payudara, dengan kanser kolorektal berada di kedudukan kedua. , terdapat 590,000 kes baharu. Laporan itu juga menunjukkan bahawa kanser kolorektal menduduki tempat kelima antara punca kematian akibat kanser di China.

negara saya mempunyai pangkalan populasi yang besar dengan penyakit gastrousus, dan pasaran untuk kanser gastrik dan kanser kolorektal adalah besar, dan pasaran penyakit gastrousus Cina akan terus berkembang pada masa hadapan. Berbanding dengan jenis kanser lain, rawatan tepat kanser gastrik dan kanser kolorektal di negara saya ketinggalan, yang tidak dapat dipisahkan daripada ketepatan kaedah pengesanan.

Peringkat kanser usus bergantung pada saiz lesi pesakit, tahap pencerobohan dan kehadiran metastasis nodus limfa dan metastasis organ jauh Secara umumnya, lesi dalam lingkungan 2 cm dianggap sebagai peringkat awal, dan lesi antara 2 cm dan 5 cm dianggap peringkat awal Ia tergolong dalam peringkat pertengahan, dan jika ia lebih besar daripada 5 cm, ia tergolong dalam peringkat akhir. Kanser kolon mempunyai kemungkinan berulang dan metastasis selepas pembedahan, jadi secara amnya, 4 hingga 6 kitaran kemoterapi diperlukan selepas pembedahan Pelan kemoterapi perlu dirumuskan berdasarkan patologi pasca operasi dan imunohistokimia pesakit.

Dalam peringkat klinikal kanser gastrik, piawaian peringkat antarabangsa TNM biasanya digunakan. Mengikut piawaian ini, kanser gastrik biasanya dibahagikan kepada empat peringkat: peringkat I, peringkat II, peringkat III, dan peringkat IV Setiap peringkat boleh dibahagikan kepada dua peringkat sub, A dan B, berdasarkan saiz dan penyusupan luka. Jika tumor menyerang lamina propria atau submucosa, tidak akan ada metastasis nodus limfa atau metastasis organ jauh. Ia tergolong dalam fasa A. Jika ia disertai oleh 1-6 metastasis nodus limfa serantau, ia tergolong dalam peringkat IB Jika tumor menyerang lamina propria mukosa atau subserosa, ia juga tergolong dalam kategori peringkat IB dan serosa, tetapi tidak menyerang organ bersebelahan, ia adalah tumor peringkat III Apabila ia disertai oleh metastasis organ jauh, ia adalah kanser gastrik peringkat IV.

Kebanyakan pesakit tidak memberi perhatian yang cukup kepada ketidakselesaan gastrousus dan simptom yang berkaitan. Mereka berfikir bahawa mengambil ubat akan mengurangkan simptom mereka berulang kali, dan perlu menunggu sehingga keadaan itu berulang atau komplikasi berlaku sebelum mereka perlu menjalani pemeriksaan gastrousus, kebanyakan pesakit kanser usus dan kanser gastrik sudah berada di peringkat pertengahan dan lewat apabila mereka ditemui. Untuk pemeriksaan gastrousus, CT, B-ultrasound, kolonoskopi dan gastroskopi biasanya digunakan Walau bagaimanapun, terdapat beberapa risiko dalam kaedah pemeriksaan biasa ini: CT mempunyai bahaya sinaran yang kuat kepada badan pesakit mempunyai ketepatan yang lemah dalam mendiagnosis penyakit gastrik; gastroenteroskopi akan Menyebabkan bahaya tertentu, dan terdapat risiko seperti kerosakan mukosa dan pendarahan, perforasi gastrousus, kerosakan pita suara, dsb. Oleh itu, peranti pengesanan tanpa risiko dan ketepatan tinggi adalah penyelesaian terbaik untuk mengesan penyakit gastrousus.

2. Permintaan pasaran

Menurut statistik daripada Pertubuhan Kesihatan Sedunia pada tahun 2020, terdapat 500 juta pesakit gastrik di dunia, di mana 120 juta daripadanya berada di China penyakit dalam populasi adalah setinggi 80%, dan Ia berkembang pada kadar tahunan 17.43%, dan bilangan pesakit penyakit gastrik di China dijangka mencecah 160 juta pada tahun 2022. Kadar kejadian kanser gastrik di negara saya pada masa ini menduduki tempat kedua di antara semua tumor malignan, dan kadar kematian berada di tempat ketiga. Pada tahun 2022, bilangan kes baharu kanser gastrik akan menjadi setinggi 480,000, dan jumlah kematian baharu akibat kanser gastrik akan menjadi setinggi 370,000 Dalam beberapa tahun kebelakangan ini, penyakit gastrik telah menunjukkan trend semakin muda, dan bilangan pesakit gastrik berumur 19-35 tahun meningkat dua kali ganda berbanding 30 tahun.

Insiden kanser usus adalah yang kedua selepas kanser perut dan esofagus. Kadar insiden kanser kolorektal telah meningkat dengan ketara dalam tempoh 30 tahun yang lalu, menjadi punca keempat kematian akibat tumor malignan, dan perkadaran kanser rektum pertengahan dan rendah adalah setinggi lebih daripada 50%. Pada masa ini, jumlah pesakit dengan enterostomi di negara saya akibat tumor atau trauma kolon dan rektum, kolitis ulseratif, penyakit Crohn dan sebab-sebab lain telah melebihi 1 juta, dan bilangan kes masih meningkat pada kadar 100,000 setahun. .

Di bawah keadaan negara yang mempercepatkan penuaan penduduk, pesakit yang lebih muda, dan peningkatan prevalensi penyakit kronik dari tahun ke tahun, negara saya mempunyai sejumlah besar orang yang memerlukan rawatan perubatan pemulihan, pasaran yang besar, dan masa depan yang tidak terhad potensi pasaran pemulihan. Dari 2014 hingga 2020, saiz pasaran ubat gastrousus OTC negara saya telah menunjukkan trend meningkat dari tahun ke tahun. Antaranya, saiz pasaran ubat gastrousus negara saya mencapai 22.522 bilion yuan pada 2019, peningkatan tahun ke tahun sebanyak 6.3%. Pada tahun 2020, saiz pasaran ubat gastrousus negara saya akan menjadi kira-kira 23.99 bilion yuan, peningkatan tahun ke tahun sebanyak 6.5%. Dianggarkan saiz pasaran ubat gastrousus negara saya akan mencapai 27.21 bilion yuan pada tahun 2022. Dari segi sokongan dasar, pada Mac 2016, Suruhanjaya Kesihatan dan Perancang Keluarga Negara telah bersama-sama mengeluarkan "Notis Penggabungan Beberapa Projek Pemulihan Perubatan Baharu ke dalam Skop Pembayaran Keselamatan Perubatan Asas" bersama-sama 5 jabatan berdasarkan 9 projek pemulihan perubatan yang asalnya termasuk dalam skop pembayaran, 20 item pemulihan baru seperti "Penilaian Pemulihan Komprehensif" akan dimasukkan ke dalam skop pembayaran insurans perubatan. Ini adalah satu-satunya polisi yang berkaitan dengan robot pemulihan Pada masa hadapan, insurans perubatan mungkin menyokong penggunaan robot pemulihan dengan penilaian pemulihan yang komprehensif.

3. Keperluan perubatan

Lebih daripada 10 juta pesakit mati akibat penyakit gastrousus di seluruh dunia setiap tahun Sehingga 1/5 penduduk China menghidap penyakit gastrousus, menduduki tempat pertama di dunia. Menurut kaji selidik itu, disebabkan oleh faktor seperti tekanan hidup warga bandar yang tinggi, tekanan kerja, kerja lebih masa yang kerap, tempoh duduk yang lama, pergaulan yang berlebihan, diet tidak saintifik, kerja tidak teratur dan rehat, dan lain-lain, tiga penyakit utama utama dalam bandar adalah penyakit gastrousus dan sistem penghadaman hati berlemak, hepatitis B dan penyakit hati lain, tulang belakang serviks, tulang belakang lumbar dan hiperplasia tulang. Penyakit gastrousus dan sistem penghadaman telah menjadi penyakit nombor satu yang paling biasa di Beijing, Shanghai, Guangzhou dan Shenzhen.

Kadar pemeriksaan awal kanser semasa negara saya adalah rendah, dan terdapat ruang yang besar untuk meningkatkan kadar penembusan diagnosis endoskopik Projek ini terutamanya menyelesaikan kesakitan pemeriksaan endoskopik untuk pesakit dan masalah kerosakan mukosa, pendarahan, perforasi gastrousus, dan anestesia yang disebabkan oleh endoskop yang boleh dimasukkan Ubat-ubatan boleh mengurangkan nada kolon dan risiko lain.

Semasa operasi endoskop pemasukan, operasi tolak, tarik dan pusing diperlukan untuk membolehkan endoskop melepasi kelengkungan usus atau mencapai pemerhatian menyeluruh terhadap lesi yang mencurigakan Ini bukan sahaja menyebabkan kesakitan kepada pesakit. tetapi juga membawa Banyak komplikasi, seperti melecet usus atau bahkan berlubang, kemalangan kardiopulmonari, dsb. Pemeriksaan endoskopik tradisional boleh menyebabkan kesakitan dan komplikasi kepada pesakit Sebagai tindak balas kepada permintaan ini, kami telah mereka bentuk robot mikro untuk memperbaiki proses pemeriksaan, yang boleh mencapai pemeriksaan tidak invasif dan tidak menyakitkan.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

2. Pengenalan Pasukan

1 Gambaran Keseluruhan Pasukan

Pasukan pemulihan FHC bergabung dengan Mecol Studio, Sekolah Kejuruteraan Mekanikal dan Elektrik, Zhengzhou University of Light Industry dan Zhengzhou Sally Technology Co ., Ltd. Pasukan pemulihan FHC berusaha untuk meletakkan pencapaian saintifik dan teknologi baharu ke dalam kegunaan praktikal untuk memudahkan kehidupan, menyelesaikan masalah sosial dan memberi manfaat kepada masyarakat. Kami terus melancarkan produk yang boleh dipercayai dan praktikal dan terus menambah baiknya semasa proses permohonan, supaya lebih ramai pesakit yang menghidap penyakit gastrousus boleh mendapatkan diagnosis yang lebih tepat tentang puncanya. Kami menggunakan teknologi, pengalaman dan perkhidmatan berkualiti tinggi kami untuk menyediakan pelanggan dengan produk yang memuaskan, memenuhi keperluan pelanggan secara berterusan, terus meningkatkan kualiti produk, dan mencipta nilai perniagaan dan sosial yang baik.

Pasukan pemulihan FHC diasaskan berdasarkan Studio Mekel dari Sekolah Kejuruteraan Mekanikal dan Elektrikal Universiti Industri Ringan Zhengzhou. Seluruh pasukan diuruskan secara langsung oleh kumpulan teras yang terdiri daripada seorang pengurus projek dan dua timbalan pengurus projek Ia juga mempunyai ketua jabatan seperti kakitangan, pemasaran, kewangan, teknologi, kawalan kualiti, dan peralatan bekerjasama dengan pasukan teras untuk menguruskan keseluruhan pasukan. Apabila saiz pasukan bertambah dan bilangan pelanggan bertambah, struktur organisasi jenis perusahaan akan dibentuk secara beransur-ansur. Ahli pasukan keusahawanan melaksanakan tugas masing-masing dan akan mengambil bahagian dalam semua aspek projek. Pada masa yang sama, kami juga mempunyai guru dan perunding perniagaan yang berpengalaman dalam bidang berkaitan (termasuk pemasaran, pengiklanan, dll.) untuk membimbing operasi pasukan.

2. Pengenalan ahli pasukan teras

(1) Pasukan penasihat mentor dan doktor

Pengajar:

Chen Lumin, PhD dalam Kejuruteraan dari Universiti Tsinghua . Beliau menerima ijazah sarjana muda dalam Kejuruteraan Mekanikal dari Universiti Sains dan Teknologi Chengdu dan ijazah sarjana dalam Mekanik Matematik dari Institut Aeronautik dan Astronautik Nanjing Beliau lulus dari Universiti Tsinghua pada tahun 2004 dan kini bekerja di Universiti Industri Ringan Zhengzhou sebagai profesor dan. pengarah Institut Kejuruteraan Mekanikal dan Elektrik. Dalam beberapa tahun kebelakangan ini, beliau telah menjalankan projek terutamanya: Penyelidikan Perubatan Kesihatan untuk Warga Emas dan Warga Kurang Upaya - Projek Pelan R&D Utama Negara - Sub-topik Penyelidikan mengenai Piawaian Penting untuk Perkhidmatan Kesihatan dan Pengesanan Kesihatan Jauh untuk Warga Emas dan Warga Kurang Upaya, Kuasa Gandingan Mekanisme Sesendal Panduan Rotary Adaptive bagi Sains dan penyelidikan kestabilan Alat Mesin Gelongsor, Projek Kerjasama Pembangunan Sains dan Teknologi Wilayah Henan, subsistem unjuran litografi mesin subsistem analisis dinamik statik dan platform simulasi parameter, sub-projek "863" nasional, orang kedua bertanggungjawab, dsb.

Li Yihao, Ph.D., profesor bersekutu, tulang belakang akademik kejuruteraan mekanikal, disiplin utama di Wilayah Henan, dan salah seorang daripada 10,000 mentor inovasi dan keusahawanan yang cemerlang di seluruh negara. Lulus dari Universiti Chongqing pada tahun 2001, dalam jurusan reka bentuk mekanikal dan automasi, dengan ijazah sarjana muda dalam bidang kejuruteraan lulus dari Universiti Chongqing pada tahun 2004, dalam jurusan reka bentuk mekanikal dan automasi, dengan ijazah sarjana dalam bidang kejuruteraan; pada tahun 2013, pengkhususan dalam kejuruteraan mekanikal dan elektronik, dengan ijazah sarjana muda dalam kejuruteraan Ph.D.

Perunding doktor:

Guo Lei, bekerja di Jabatan Pemulihan Hospital Pekerja Henan sebagai doktor yang merawat. Menyediakan panduan dan penghakiman kesan untuk ujian klinikal projek, dan menyediakan panduan tentang penunjuk masalah dan laporan pemulihan untuk sistem penilaian pemulihan.

Pada masa ini bekerja di Jabatan Pemulihan Hospital Pekerja Wilayah Henan sebagai doktor yang merawat, dan telah lama terlibat dalam kerja-kerja pemulihan barisan hadapan. Mempunyai pengalaman pemulihan klinikal bertahun-tahun.

Unit pembimbing:

Zhengzhou Sali Technology Co., Ltd.

Bekerjasama dengan syarikat sebenar dalam masyarakat boleh membolehkan pelajar kolej kami memulakan perniagaan mereka sendiri daripada menara gading dan ke peringkat sosial Kami benar-benar boleh menggabungkan idea dan produk teknologi kami dengan perusahaan dan masyarakat, membentuk situasi bantuan bersama di kalangan industri, akademik dan penyelidikan Akhirnya, ia akan menjadi praktikal dan memberi manfaat kepada manusia.

(2) Ahli teras pasukan

Pasukan kami pada masa ini mempunyai sepuluh ahli, yang datang dari jurusan yang berbeza Kami telah berkumpul kerana minat yang sama dan boleh mencapai kerjasama silang profesional dan pengetahuan Liputan luas dan prestasi akademik yang cemerlang dalam jurusan. Kami mempunyai sebab berikut untuk menyiapkan projek ini:

Ahli pasukan:

Hao Tian, ​​​​mengambil jurusan kejuruteraan pembuatan pintar, mahir dalam pengurusan pasukan, mengatur dan menyelaraskan kerja, bertanggungjawab untuk pengurusan pasukan , dan mencari pembangunan projek yang baik.

Fan Jiayi, pengkhususan dalam reka bentuk mekanikal, pembuatan dan automasi, bertanggungjawab ke atas hala tuju kemajuan setiap modul utama projek dan keseluruhan peruntukan dan pelarasan kakitangan projek, serta memeriksa dan menyelia kemajuan keseluruhan.

Xu Fuquan, pengkhususan dalam reka bentuk mekanikal, pembuatan dan automasi, bertanggungjawab untuk simulasi dan pengoptimuman mekanisme perisian projek dan mensimulasikan adegan gerakan mekanisme.

Zhang Jingwei, pengkhususan dalam kejuruteraan pembuatan pintar, bertanggungjawab untuk pembangunan litar bersepadu projek Dia telah lama terlibat dalam simulasi litar, pembangunan perkakasan litar, dll. untuk meningkatkan fungsi produk.

Chen Yi, pengkhususan dalam kejuruteraan perisian, bertanggungjawab untuk pembangunan platform perisian dalam sistem diagnosis lesi. Beliau telah lama terlibat dalam pengecaman imej, pembelajaran mendalam dan kerja lain pengalaman dan meningkatkan fungsi produk.

Wang Chen, pengkhususan dalam kejuruteraan kenderaan, bertanggungjawab untuk reka bentuk struktur dan pengoptimuman robot mikro dan mahir dalam pelbagai perisian reka bentuk tiga dimensi dan perisian simulasi elemen terhingga.

Zhao Haitao, pengkhususan dalam kejuruteraan perisian, bertanggungjawab untuk sistem kawalan komunikasi tanpa wayar dan mahir dalam teknologi interaksi manusia-komputer dan teknologi aplikasi sensor.

Niu Xuewei, pengkhususan dalam pengurusan logistik, bertanggungjawab untuk penyediaan perisian robot mikro dan eksperimen SMA, dan mahir dalam amalan pengetahuan teori.

Wang Shengfeng, pengkhususan dalam automasi, bertanggungjawab ke atas kawalan PID gelombang PWM robot mikro, dan mahir dalam reka bentuk litar dan simulasi.

Wang Yuesong, jurusan kejuruteraan perisian, reka bentuk bahagian hadapan untuk pengenalpastian lesi kompleks dan penilaian pemulihan, mahir dalam pembangunan antara muka Hongmeng.

3. Senario Aplikasi

Projek ini mengkaji sistem diagnostik mikro-robot pacuan gegelung SMA yang tidak invasif untuk pesakit gastroenterologi, yang boleh digunakan untuk pengesanan dan diagnosis pesakit gastroenterologi atau pemeriksaan berpotensi . Pelanggan sasaran termasuk kumpulan berikut:

  1. Setiap orang yang berumur lebih dari 45 tahun, tanpa mengira jantina, harus menjalani endoskopi gastrousus. Sekiranya terdapat penemuan positif (ulser, polip, dsb.), ia perlu dikaji secara berkala selepas rawatan.
  2. Orang yang mempunyai sejarah keluarga yang menghidap kanser esofagus, kanser gastrik dan kanser usus boleh memajukan usia pemeriksaan awal kepada 40 atau 35 tahun.
  3. Mempunyai tabiat hidup yang buruk, termasuk merokok, minum, makan tidak teratur, makan berlebihan, makan terlalu banyak ikan dan daging, suka makanan jeruk dan barbeku, tekanan kerja yang tinggi, dan sering berjaga malam, dsb.
  4. Orang yang mengalami ketidakselesaan saluran penghadaman, seperti ketidakselesaan perut, sakit perut atas, sakit perut bawah, refluks asid, sendawa, kenyang, dll.
  5. Ketidakselesaan usus boleh nyata sebagai sakit perut bawah, perubahan tabiat dan ciri-ciri usus, seperti membuang air besar sekali sehari dan bukannya membuang air besar berkali-kali, atau sembelit, najis longgar, najis berdarah, najis berdarah seperti lendir, dsb.

Semasa wabak, orang ramai hanya boleh tinggal diasingkan di rumah, dan sumber perubatan adalah terhad dan tenaga kerja yang mencukupi tidak dapat disediakan. Pesakit tidak boleh mendapatkan maklum balas tepat pada masanya mengenai keadaan gastrousus mereka, terutamanya pesakit di kawasan luar bandar, yang sukar menerima rawatan pemulihan yang berkesan Namun, projek ini menggunakan sistem pengesanan dan pengenalan gastrousus untuk membuat saringan dan diagnosis pada bila-bila masa dan di mana-mana sahaja memantau pemulihan pesakit dan memberikan nasihat perubatan dan pilihan pemulihan. Produk ini menggunakan robot mikro yang direka sendiri untuk ujian gastrousus Berbanding dengan endoskopi gastrousus tradisional, ia mempunyai ciri-ciri tidak menyakitkan, tiada komplikasi, operasi mudah dan ketepatan yang tinggi. Menggunakan produk yang dikaji dalam projek ini, pesakit boleh melakukan pemeriksaan diagnostik di rumah, mempercepatkan pengesanan awal dan rawatan penyakit gastrousus.

4. Fungsi produk

1. Pemacu SMA

Dalam proses mengawal lenturan fleksibel pemacu SMA. Aliran kawalan yang sesuai harus dipilih untuk mencapai tujuan mengawal ubah bentuk kuantitatif penggerak SMA. Voltan kawalan yang sesuai boleh mencapai kawalan tepat lenturan wayar SMA dan membantu memanjangkan hayat perkhidmatan struktur pemacu SMA. Voltan yang lebih tinggi memberi manfaat kepada tindak balas pantas pemandu, tetapi akan menyebabkan suhu wayar aloi memori meningkat terlalu cepat, menjejaskan ketepatan kawalan dan mungkin menyebabkan kerosakan struktur kepada pemandu. Pasukan kami menjalankan 116 eksperimen voltan pemanduan, menggunakan bekalan kuasa pelajar untuk memanaskan wayar SMA dengan diameter 0.7mm dan diameter 10cm Eksperimen menunjukkan bahawa apabila voltan pemanduan ialah 3.2~3.4V, kelajuan tindak balas adalah yang paling cepat apabila. kehilangan hayat wayar SMA adalah yang paling cepat, kesan ubah bentuk adalah yang paling jelas.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Dari segi mendapatkan data titik kritikal suhu perubahan fasa, kami menggunakan termometer inframerah untuk pengukuran Apabila voltan mencapai 3.2V, suhu yang diukur bagi gegelung SMA mencapai 76.6 ℃, ia boleh disahkan bahawa suhu ini mencapai keadaan perubahan fasa. Kadar pengecutan diukur menggunakan kaedah pengecaman imej Plat akrilik lutsinar digunakan untuk meletakkan gegelung SMA secara mendatar pada satah latar belakang putih digunakan untuk menangkap secara mendatar pada ketinggian 30cm skala kelabu dan panjang piksel diukur Ralat boleh dikawal dalam tahap mikron.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Gegelung SMA digunakan sebagai unit pemacu untuk mengawal pergerakan ke hadapan dan ke belakang robot, mencapai gaya berjalan berterusan dengan meniru susunan dan mekanisme pergerakan serabut otot inchworm .

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

2. Sistem pengenalpastian Lesi berdasarkan pembelajaran mendalam

Sistem ini menggunakan teknologi pembahagian imej untuk membahagikan imej polip usus, menghantar data dan menggunakannya ke Menggunakan pelayan program ramalan model pembelajaran mendalam, data dipraproses pada pelayan, dan kemudian imej dibahagikan, data berinteraksi dengan model pembelajaran mendalam, dan keputusan ramalan diperoleh untuk diagnosis oleh doktor profesional.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Data imej yang ditangkap oleh kamera pada kepala robot boleh dihantar ke telefon mudah alih komputer hos dalam masa nyata melalui hotspot WIFI sendiri. Di samping itu, kami mempunyai APP mudah alih untuk menggunakan model, yang boleh digunakan untuk mendapatkan hasil yang optimum dengan membandingkan tahap keyakinan Bahagian kanan ialah ketepatan dan nilai kerugian yang dijana semasa proses latihan sebenar kami ketepatan telah mencapai setinggi 87.2%, dan kerugian telah menurun kepada Sangat rendah.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

3. Antara muka interaksi manusia-komputer berdasarkan HarmonyOS

Sistem HarmonyOS ialah sistem pengendalian senario penuh untuk Internet of Everything Kami meletakkan proses pengenalan sistem pengecaman lesi ke dalam halaman interaksi manusia-komputer yang direka berdasarkan HarmonyOS, menangkap imej masa nyata usus, menggunakan teknologi pembahagian imej untuk membahagikan imej polip usus dan memindahkan data. ke platform penggunaan untuk ramalan menggunakan model pembelajaran mendalam Pelayan program melakukan pembahagian imej selepas prapemprosesan data, berinteraksi dengan data dan model pembelajaran mendalam, dan memperoleh keputusan ramalan untuk diagnosis oleh doktor profesional.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

4. Pelaksanaan sistem Internet of Things

(Bab ini terutamanya menerangkan seni bina teknologi Internet of Things yang digunakan untuk melaksanakan fungsi tersebut. Termasuk teknologi lapisan persepsi, teknologi lapisan penghantaran, teknologi lapisan kawalan, teknologi pembangunan perisian, aplikasi awan, perlombongan data dan aplikasi visualisasi, dll.)

(1) Lapisan persepsi

Dalam lapisan persepsi, kita. Dengan menyambungkan litar pemacu motor ke port I/O MCU, kawalan mula dan henti motor boleh dicapai dengan menyambungkan litar pemacu kamera ke port I/O MCU, kamera mula dan kawalan berhenti boleh dicapai. Arus kerja motor mencerminkan status gerakan motor Modul pengesanan semasa direka untuk mengesan arus motor dalam masa nyata Data pengesanan dibaca dari port AD MCU untuk menentukan status kerja motor dan mencapai kawalan berkesan mekanisme pemacu motor. Untuk memantau status operasi robot dalam masa nyata, adalah perlu untuk menghantar data pengesanan ke paparan antara muka manusia-mesin komputer hos.

(2) Lapisan penghantaran

Doktor menghantar arahan kawalan melalui antara muka mesin manusia komputer hos Selepas arahan kawalan dijana oleh komputer hos, kod dihantar ke pemancar arahan/data melalui bas bersiri RS232. MCU bagi perintah/transceiver data disambungkan kepada litar port bersiri melalui antara muka komunikasi port bersiri RX/TX untuk menerima kod arahan yang dihantar oleh komputer hos MCU bagi perintah/transceiver data juga disambungkan ke litar komunikasi melalui antara muka komunikasi SPI untuk menghantar kod arahan ke litar komunikasi untuk penghantaran tanpa wayar.

Litar komunikasi yang disepadukan dalam papan kawalan komunikasi secara wayarles menerima kod arahan dan menghantar kod arahan ke MCU papan kawalan komunikasi melalui antara muka komunikasi SPI. Jika kandungan arahan termasuk perintah mula kamera, MCU kamera mula mengkonfigurasi status kerja dan parameter imej penderia imej dalam modul pemerolehan imej melalui bas kawalan SCCB selepas konfigurasi betul, modul pemerolehan imej mula berfungsi secara bebas dan terus mengeluarkan isyarat imej analog kepada Litar pemancar melakukan penghantaran tanpa wayar. Selepas penerima imej in vitro menerima isyarat imej, ia menghantar imej ke kad pemerolehan imej komputer hos melalui talian video Kad pemerolehan imej menukar dan memampatkan format imej, kemudian menyimpannya dalam komputer hos dan memaparkannya. pada antara muka manusia-mesin.

(3) Lapisan kawalan

Papan kawalan komunikasi terdiri daripada lima litar penstabil voltan, litar kawalan utama MCU, litar komunikasi, litar pemacu (pemacu motor + pemacu kamera) dan litar pengesanan arus Komposisi modul.

Litar kawalan utama MCU menggunakan PIC16F690 (Microchip), yang mempunyai antara muka komunikasi bersiri USART dan antara muka persisian bersiri SPI. Litar komunikasi dilaksanakan berdasarkan cip Si4455 (Silicon Labs) dan beberapa komponen induktif dan kapasitif persisian dan pengayun kristal pasif 30MHz. Litar komunikasi yang terletak pada papan kawalan komunikasi perlu menerima kod arahan yang dihantar daripada pemancar perintah/data, dan juga perlu menghantar data operasi robot yang dikesan ke pemancar arahan/data. Litar pemacu menggunakan dua keping H-bridge AT5550 untuk memacu motor dan kamera mekanisme gerakan, memulakan dan menghentikan kamera, dan mencapai matlamat menjimatkan penggunaan kuasa. Litar pengesanan semasa dilaksanakan berdasarkan cip MAX4173 (Maxim) dan digunakan untuk mengesan arus motor dalam masa nyata untuk menentukan status kerja motor dan melaksanakan kawalan yang berkesan.

(4) Persekitaran perisian dan pembangunan

Antara muka interaksi manusia-komputer komputer hos ditulis dalam PyQt5. Lapisan penderiaan, lapisan penghantaran dan program lapisan kawalan ditulis menggunakan rangka kerja Arduino.

Kami menggunakan Arduino MEGA untuk melaksanakan undang-undang kawalan (pengawal PID, dsb.) untuk melaraskan kitaran tugas gelombang PWM, dengan itu melaraskan arus pemacu litar untuk mengawal proses "pemanasan-penyejukan-pemanasan" bagi SMA dan merealisasikan gegelung SMA Gerakan salingan dinamik "diastole-systole-diastole". Kemudian penggerak SMA mikro dikawal untuk bergerak, memacu robot untuk mencapai pergerakan berirama.

(5) Aplikasi Awan

Kami membangunkan antara muka berdasarkan PyQt5 pada komputer hos, yang digunakan untuk memaparkan imej usus dan nilai operasi arus motor yang dikumpul oleh kamera dalam masa nyata . Ia juga boleh digunakan untuk Klik butang kawalan dan masukkan parameter operasi untuk mengawal pergerakan robot dengan berkesan.

Selain itu, kami sedang bersedia untuk membangunkan antara muka interaksi manusia-komputer berdasarkan HarmonyOS, yang akan membolehkan doktor mengawal robot usus dan melihat imej usus pada telefon mudah alih mereka

Set latihan kod adalah seperti berikut :

<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optim</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">as</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optim</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">as</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">parallel</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">utils</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">utils</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">distributed</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torchvision</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">as</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">from</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">SeedlingData</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">from</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">autograd</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Variable</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">import</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">pretrainedmodels</span>`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 设置全局参数`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellr</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1e-4</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">BATCH_SIZE</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">16</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">EPOCHS</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">20</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DEVICE</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'cuda'</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">if</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">cuda</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">is_available</span>() <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">else</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'cpu'</span>)`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 数据预处理`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transform</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Compose</span>([`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Resize</span>((<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">224</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">224</span>)),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">ToTensor</span>(),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Normalize</span>([<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>], [<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>])`<br>`])`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transform_test</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Compose</span>([`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Resize</span>((<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">224</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">224</span>)),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">ToTensor</span>(),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Normalize</span>([<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>], [<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>])`<br>`])`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 读取数据`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset_train</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">SeedlingData</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'data/train'</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transform</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">True</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset_test</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">SeedlingData</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"data/train"</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transforms</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">transform_test</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">False</span>)`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 导入数据`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">utils</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DataLoader</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset_train</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_size</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">BATCH_SIZE</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">shuffle</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">True</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">utils</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DataLoader</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset_test</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_size</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">BATCH_SIZE</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">shuffle</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">False</span>)`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 实例化模型并且移动到GPU`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">criterion</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">CrossEntropyLoss</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">pretrainedmodels</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">__dict__</span>[<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'se_resnet50'</span>](<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">num_classes</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1000</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">pretrained</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'imagenet'</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">fc</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">classifier</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Sequential</span>(`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Linear</span>(<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">2048</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">512</span>),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">LeakyReLU</span>(<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">True</span>),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Dropout</span>(<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.5</span>),`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">nn</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Linear</span>(<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">512</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">12</span>),`<br>`)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">to</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DEVICE</span>)`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 选择简单暴力的Adam优化器,学习率调低`</span><br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optim</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">AdamW</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">parameters</span>(), <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">lr</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellr</span>)`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">def</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">adjust_learning_rate</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>):`<br>`<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"""Sets the learning rate to the initial LR decayed by 10 every 30 epochs"""</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellrnew</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellr</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span> (<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0.1</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span> (<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">50</span>))`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"lr:"</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellrnew</span>)`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">for</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param_group</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">in</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param_groups</span>:`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">param_group</span>[<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'lr'</span>] <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">modellrnew</span>`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 定义训练过程`</span><br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">def</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>):`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sum_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">total_num</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span>)`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">total_num</span>, <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>))`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">for</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_idx</span>, (<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>) <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">in</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">enumerate</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>):`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Variable</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>).<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">to</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>), <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Variable</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>).<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">to</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">output</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">criterion</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">output</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">zero_grad</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">backward</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">step</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">item</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sum_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print_loss</span>`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">if</span> (<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_idx</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>) <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">%</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">10</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">==</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0</span>:`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">format</span>(`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>, (<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_idx</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>) <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>), <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span>),`<br>`<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">100</span>. <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span> (<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">batch_idx</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>) <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>), <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">item</span>()))`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">ave_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sum_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>)`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'epoch:{},loss:{}'</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">format</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">ave_loss</span>))`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 验证过程`</span><br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">def</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">val</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>):`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">eval</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">0</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">total_num</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span>)`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">total_num</span>, <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>))`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">with</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">no_grad</span>():`<br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">for</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">in</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>:`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Variable</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>).<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">to</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>), <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">Variable</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>).<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">to</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">device</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">output</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">criterion</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">output</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">_</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">pred</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">max</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">output</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>, <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sum</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">pred</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">==</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">target</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">loss</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">item</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print_loss</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">data</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">item</span>()`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">acc</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">total_num</span>`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">avgloss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loss</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>)`<br>`<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">print</span>(<span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'\nVal set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">format</span>(`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">avgloss</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">correct</span>, <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">len</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">dataset</span>), <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">100</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">*</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">acc</span>))`<br>`<span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 训练`</span><br>`<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">for</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">in</span> <span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">range</span>(<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">EPOCHS</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">+</span> <span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">1</span>):`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">adjust_learning_rate</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DEVICE</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">train_loader</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">optimizer</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">epoch</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">val</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">DEVICE</span>, <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">test_loader</span>)`<br>`<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">torch</span>.<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">save</span>(<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">model_ft</span>, <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">'model.pth'</span>)

5. Mata Inovasi Projek

1. Inovasi Kerja

Projek ini menyepadukan sistem pemeriksaan hierarki gastrousus, sistem diagnostik berdasarkan lesi pengenalpastian dan kedudukan, dan Tiga modul robot mikro seperti cacing inch digunakan untuk menjalankan pemeriksaan awal dan diagnosis kanser atau tumor bagi pesakit yang menghidap penyakit gastrousus, dan untuk menyediakan program pemulihan untuk penyakit gastrousus.

Pemandu gegelung SMA kecil

Projek ini menggunakan bahan SMA (aloi ingatan bentuk) sebagai teras pemacu pemacu kecil. Pemacu terutamanya terdiri daripada tiga bahagian: konfigurasi stereotaip gegelung SMA, papan polivinil klorida (papan PVC) dan lapisan pembungkus silikon (PDMS).

Dalam proses mengawal lenturan fleksibel penggerak SMA. Pasukan kami menjalankan 116 eksperimen voltan pemanduan dan membuktikan bahawa: apabila voltan pemanduan ialah 3.2~3.4V, kelajuan tindak balas adalah yang paling pantas dan kesan ubah bentuk adalah yang paling jelas apabila kehilangan hayat wayar SMA adalah yang paling rendah.

Reka bentuk simulasi gaya berjalan cacing bionik

Untuk reka bentuk keseluruhan robot, gerakan merangkak dua jangkar cacing inci disimulasikan, yang ditetapkan oleh kereta api roda sauh pada kedua-dua hujung robot dan digerakkan oleh gegelung SMA . Dengan mensimulasikan gerakan merangkak cacing inch, analisis gaitnya telah ditubuhkan pada perisian simulasi dinamik Recurdyn untuk pergerakan batangnya apabila merangkak ke hadapan.

Sistem diagnosis gastrousus berdasarkan pengenalan lesi dan teknologi penentududukan

Pasukan menggunakan teknologi pembahagian imej untuk membahagikan imej polip usus dan menghantar data ke pelayan yang menggunakan program ramalan model pembelajaran mendalam , praproses data pada pelayan, kemudian lakukan pembahagian imej, interaksi data dengan model pembelajaran mendalam, dan dapatkan keputusan ramalan untuk diagnosis oleh doktor profesional. Ketepatan pengelasan tahap piksel adalah setinggi 87.25%. Pada masa yang sama, halaman interaksi manusia-komputer telah dicipta, yang membolehkan doktor memantau gejala pesakit dalam masa nyata dan melihat kawasan gastrousus yang tidak normal.

2. Titik inovasi

(1) Pemacu gegelung SMA yang dikecilkan

Projek ini telah komited untuk mengecilkan, peralatan pemeriksaan tidak invasif dan boleh dikawal dari awal untuk meminimumkan saiz robot, kami menggunakan bahan SMA (aloi ingatan bentuk) sebagai teras pemacu penggerak kecil.

SMA (Shape Memory Alloy), sebagai bahan pintar yang menyepadukan penderiaan dan pemanduan, mempunyai bentuk dan saiz yang berbeza di bawah suhu dan tegasan yang berbeza Ia mempunyai diameter kecil, ketumpatan tenaga tinggi, daya keluaran yang besar, dan tiada Ia memerlukan transmisi, pemacu terus, struktur ringkas dan padat serta kelebihan lain.

Secara makroskopik, SMA mempunyai dua ciri iaitu kesan ingatan bentuk dan keanjalan super. Kesan memori bentuk bermakna bahawa selepas SMA dibentuk pada suhu tinggi, ia disejukkan kepada suhu rendah dan dimuatkan dan dipunggah bentuk pada suhu tinggi. Kesan superelastik bermakna bahawa dengan memuatkan SMA dalam keadaan austenit, SMA mengalami ubah bentuk tidak anjal selepas ubah bentuk anjal, dan kemudian dipunggah, dan SMA secara spontan boleh kembali ke bentuk sebelum dimuatkan. Prinsip pemanduan produk ini ialah undang-undang kawalan (pengawal PID, dsb.) melaraskan kitaran tugas gelombang PWM, dengan itu melaraskan arus pemacu litar untuk mengawal proses "pemanasan-pemanasan-pemanasan" SMA kepada mencapai "kelonggaran-kelonggaran" gegelung SMA Pergerakan salingan dinamik "kelonggaran-penguncupan".

Pemacu gegelung SMA kecil yang kami reka bentuk terutamanya terdiri daripada tiga bahagian: konfigurasi stereotaip gegelung SMA, papan polivinil klorida (papan PVC) dan lapisan pembalut silikon (PDMS). Papan PVC mempunyai tahap keanjalan tertentu, yang membolehkan pemandu kembali ke keadaan asalnya semasa proses penyejukan SMA. PDMS membalut gegelung SMA dan papan PVC untuk bertindak sebagai struktur Memandangkan PDMS bukan sahaja lembut tetapi juga kalis air, robot lembut yang diperbuat daripada pemandu ini boleh berinteraksi dengan selamat dengan orang ramai dan melakukan tugas dalam persekitaran cecair. Berbanding dengan kaedah ujian gastrousus seperti gastroskopi dan B-ultrasound, mikrorobot yang direka dengan pemacu ini tidak akan menyebabkan kemudaratan kepada pesakit, dan tubuh manusia tidak akan menolaknya.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

(2) Reka bentuk simulasi gaya berjalan cacing inch bionik

Dengan mengkaji paparan keratan rentas cacing inch, kami mendapati badannya terdiri daripada tisu badan, tiub coelom dan gentian otot membujur. Antaranya, inchworm mempunyai beberapa gentian otot membujur yang disusun dalam susunan bulat. Apabila cacing inch meneroka arah berbilang sudut yang kompleks, beberapa gentian otot membujurnya memberikan daya tarikan yang berbeza. Oleh itu, untuk reka bentuk keseluruhan robot, kami menggunakan filamen SMA untuk bertindak sebagai gentian otot membujur untuk memberikan daya tarikan.

Dengan menganalisis pergerakan merangkak cacing inci, pergerakan batangnya ketika merangkak ke hadapan telah diwujudkan pada perisian analisis simulasi didapati apabila ia merangkak ke hadapan, ulat inci sering bergerak Badan mengecut menjadi ". bentuk Ω", dan kaki di kedua-dua hujung badannya dilekatkan kuat pada tanah. Ia bergerak ke hadapan atau mengubah posturnya melalui pengecutan dan pemanjangan pinggang dan perutnya.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Prinsip cacing inci boleh bergerak ke hadapan ialah anisotropi geseran antara kaki dan tanah. Dengan mengambil kira persekitaran fizikal dalaman usus dan perut, usus boleh dipermudahkan menjadi tiub silinder Gerakan merangkak dua jangkar cacing inci boleh dijelmakan oleh kereta api gear berlabuh di kedua-dua hujung robot dan gegelung SMA untuk dipacu. penguncupan. Dari segi kawalan, kami menggunakan papan kawalan Arduino MEGA 2560 untuk mengawal gelombang PWM dengan menyambung tiub MOS medan kesan DC untuk mengawal saiz arus. Oleh kerana rintangan tinggi wayar SMA, menggunakan arus tertentu boleh mencapai perubahan fasa dan dengan itu mengecutkan wayar SMA. Dengan mengawal kitaran tugas PWM untuk mengawal pengecutan dan kelonggaran SMA, dan dengan penetapan unit penambat, gerakan cacing inci boleh disimulasikan untuk memandu. Dengan menambahkan kabin pengumpulan koloni bakteria, lampu carian mikro dan kamera pada kedua-dua hujung robot, produk itu dibuat lebih pelbagai fungsi.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

Dari segi analisis gait, perisian dinamik berbilang badan recurdyn digunakan untuk menganalisis kinematik dan dinamik pemandu, mensimulasikan kelajuan pergerakan dan gaya berjalan mikro-robot, iaitu konsisten dengan gabungan eksperimen fizikal.

Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA

(3) Sistem diagnosis gastrousus berdasarkan pengenalan lesi dan teknologi penentududukan

Segmen berasingan bahagian dengan makna istimewa dalam imej perubatan. Dalam bidang perubatan, doktor bergantung terutamanya pada imej filem perubatan dan pertimbangan subjektif untuk mendiagnosis penyakit Pembahagian imej perubatan adalah langkah utama dalam pembinaan semula tiga dimensi perubatan dan analisis kuantitatif. Ia juga merupakan prasyarat teknikal yang penting untuk kuantifikasi kawasan lesi, pemilihan kaedah rawatan dan radioterapi Ketepatan keputusan segmentasi secara langsung mempengaruhi kesan rawatan seterusnya. Pasukan kami menggunakan teknologi pembahagian imej untuk membahagikan imej polip usus, menghantar data ke pelayan yang menggunakan program ramalan model pembelajaran mendalam, pramemproses data pada pelayan, kemudian melakukan pembahagian imej dan membandingkan data dengan model pembelajaran mendalam. Berinteraksi dan dapatkan keputusan ramalan untuk diagnosis oleh doktor profesional.

Kami menggunakan rangka kerja rangkaian konvolusi sepenuhnya yang dicadangkan oleh Long et al untuk melatih bidang pembahagian imej, menggantikan lapisan bersambung sepenuhnya dalam model CNN klasik dengan lapisan konvolusi keseluruhan dan lapisan penyatuan. Bahagian pengekodan ialah proses mengekstrak ciri berdimensi tinggi Bahagian penyahkodan menggunakan penyahkonvolusian untuk upsampling, supaya saiz imej hasil segmentasi adalah sama dengan saiz imej input, mencapai pengelasan tahap piksel dengan ketepatan sebanyak. sehingga 87.25%.

​Untuk mengetahui lebih lanjut tentang sumber terbuka, sila lawati: ​

​Komuniti Perisian Asas Sumber Terbuka 51CTO​

​https://ost.51cto.com​​.

Atas ialah kandungan terperinci Robot diagnosis gastrousus cacing inci didorong oleh gegelung SMA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam