Агуулгын хүснэгт:

Нарийвчилсан өгөгдөл бүртгэх туршилт (Python ашиглан): 11 алхам
Нарийвчилсан өгөгдөл бүртгэх туршилт (Python ашиглан): 11 алхам

Видео: Нарийвчилсан өгөгдөл бүртгэх туршилт (Python ашиглан): 11 алхам

Видео: Нарийвчилсан өгөгдөл бүртгэх туршилт (Python ашиглан): 11 алхам
Видео: How To Do Stable Diffusion XL (SDXL) DreamBooth Training For Free - Utilizing Kaggle - Easy Tutorial 2024, Долдугаар сарын
Anonim
Нарийвчилсан өгөгдөл бүртгэх туршилтууд (Python ашиглан)
Нарийвчилсан өгөгдөл бүртгэх туршилтууд (Python ашиглан)

Өгөгдөл бүртгэх зааварчилгаа маш их байдаг тул би өөрийн гараар мод бэлтгэх төслийг бүтээхийг хүсч байхдаа эргэн тойрноо харлаа. Зарим нь сайн байсан, зарим нь тийм ч сайн биш байсан тул би илүү сайн санаануудыг авч, өөрөө өргөдөл гаргахаар шийдсэн. Үүний үр дүнд миний төсөөлж байснаас илүү дэвшилтэт, илүү төвөгтэй төсөл гарч ирэв. Үүний нэг хэсэг нь мэдрэгчийн өгөгдлийг боловсруулах хэд хэдэн туршилт болсон юм. Энэхүү зааварчилгаа нь ижил эсвэл ижил төстэй туршилтуудыг туршиж үзэх боломжийг танд олгоно.

(Та бүх кодыг үзэж, татаж авах боломжтой: GitHub дээрх кодыг та өөр цонхноос 2 товшилтоор үзэх боломжтой)

Өгөгдөл бүртгэх нь ихэвчлэн дараахь зүйлийг агуулдаг.

  • Мэдээлэл цуглуулах: Мэдрэгчийн зарим өгөгдлийг уншина уу. Ихэнхдээ энэ нь Arduino гэх мэт төхөөрөмж дээр тоон хөрвүүлэгч (ADC) аналогийг унших явдал юм.
  • Өгөгдөл боловсруулах: ADC утгыг уншихад хөрвүүлэгчдийн гаралтыг ихэвчлэн зөв нэгж рүү масштабтай болгох шаардлагатай байдаг. Мэдрэгчийн алдааг засахын тулд утгыг тохируулахын тулд зарим тохируулга хийх шаардлагатай байж магадгүй юм.
  • Шүүлт хийх: Өгөгдөл нь ихэвчлэн зарим дуу чимээг агуулдаг тул үүнийг шүүж болох тул та дуу чимээ биш харин өгөгдөл дэх дохиог харж байна.
  • Өгөгдөл хадгалах: Өгөгдлийг текст файлд хадгалж магадгүй, үүлэнд хадгална. Цахилгаан тасарсан ч гэсэн өгөгдөл амьд үлдэх ёстой. Хэт их өгөгдөл хэмнэх нь амархан бөгөөд бидэнд өгөгдөл хадгалах зайг багасгахын тулд бага зэрэг заль мэх хэрэгтэй.
  • Өгөгдөл харуулах: Мэдээллийг бүртгэх биш харин өөрийн өгөгдлийг харах аргууд, гэхдээ хэрэв та өгөгдлийг харуулахгүй бол яагаад цуглуулах ёстой гэж?
  • Алсын зайнаас нэвтрэх: Шаардлагагүй боловч ашиглахад таатай байна.

Ихэнх зааварчилгаа нь дээр дурдсан бүгдийг багтаагүй, эсвэл маш энгийн байдлаар хийдэг. Энэхүү зааварчилгаа нь ихэвчлэн модуль бүртгэлийг орхигдуулдаг 2 асуудлыг шийдвэрлэх бөгөөд үүл үйлчилгээг ашиглахгүйгээр өгөгдлөө графикжуулах боломжийг танд олгоно. Та үүнийг бүхэлд нь ашиглах эсвэл жижиг хэсгүүдийг сугалж аваад өөрийн төсөл болгон өөрчилж болно.

Алхам 1: багаж хэрэгсэл, материал

Хэрэгсэл ба материал
Хэрэгсэл ба материал

Энэ жишээ нь Python -д байдаг тул Mac, PC, Linux, Raspberry Pi гэх мэт ямар ч үйлдлийн систем дээр ажиллах боломжтой бөгөөд бүрэлдэхүүн хэсгүүдийг ашиглах боломжтой.

Энэхүү зааварчилгааг ашиглахын тулд Python 3.6 ажиллаж байгаа орчин байхад л хангалттай бөгөөд хавсаргасан кодыг татаж аваарай. Миний тохируулсан кодыг ажиллуулсны дараа та үүнийг өөрийн туршилтанд зориулж өөрчилж болно. Python -д байдаг шиг бүх зүйлийг ажиллуулахын тулд зарим багц/модулийг нэмж оруулах шаардлагатай болж магадгүй юм. Миний Spyder орчин нь шаардлагатай бүх эд ангиудыг дагалддаг (үзнэ үү: Python дэлгэц хусах боломжтой график зааварчилгаа). Аливаа алдааны мессежийг үзэхийн тулд та эхлээд ажиллуулахдаа таны орчинд байхгүй байгаа хэсгүүдийн талаар танд мэдэгдэх болно.

Дараагийн хоёр алхам нь танд өөрийн туршилтыг хэрхэн бүтээх, ажиллуулахыг зааж өгөх болно, гэхдээ та өөрөө туршиж үзэхээсээ өмнө оруулсан туршилтаа хийх хүртэл хүлээх нь дээр байх.

Кодыг ойлгохын тулд объект хандалтат Python програмын талаар бага зэрэг туршлагатай байх шаардлагатай бөгөөд үүнийг зааварчилгааны хүрээнд багтаагүй гэдгийг тайлбарлах хэрэгтэй, гэхдээ Google танд хэрэгтэй бүх тусламжийг өгөх ёстой.

Кодыг анхаарна уу: (GitHub дээрх кодыг та өөр цонхноос 2 товшилтоор үзэх боломжтой) одоо Python 3.6 -д байгаа тул 3.6 байх нь хамгийн сайн арга юм. Кодын хуучин хувилбарыг доорх линкүүдээс харж болно.

Алхам 2: Туршилт хийх

Туршилт хийх
Туршилт хийх

Туршилт хийхэд програмчлалын гурван үе шат (ба шугамууд) байдаг. Туршилт бүр нь simulate_logging.py файл дахь LoggingSim объектын функц юм. Дараагийн алхамд хийх 1 -р туршилтыг (зөвхөн эхний график) авч үзье.

жишээ туршилтын_хичээл_хэмжээ (өөрөө):

хэвлэх "" "Дээжийн хурдыг туршиж үзэх Дельта Т -ийг өөр өөр түүврийн хэмжээг харах" "" self.start_plot (plot_title = "Sample Rays - 1/3 хэсэг: Delta T = 1.0") self.add_sensor_data (name = "dt = 1. ", далайц = 1., noise_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Туршилт бүр өөрийн гэсэн функцээр бичигдсэн байдаг тул бидэнд функцийг тодорхойлох мөр байна (туршилт….)

Дараагийн тайлбаргүй мөр, (start_plot (….) Нь туршилтын объектыг үүсгэж, түүнд нэр өгнө.

Дараагийн тайлбаргүй мөрийн мөр (add_sensor_data (…) нь хэд хэдэн мөрөнд хуваагддаг. Энэ нь дуу чимээ гарах магадлалтай, зарим боловсруулалттай дохиог хэмжих мэдрэгчийг дуурайдаг. Функцийн аргументууд дараах байдалтай байна.

  • нэр: өгөгдлийг тодорхойлохын тулд эцсийн график дээр тавьсан нэр
  • далайц: дохио хэр том вэ, бид энэ зааврын дагуу 1. далайцыг үргэлж ашиглах болно.
  • noise_amp: дуу чимээ хэр том вэ, 0. дуу чимээ байхгүй, бид эндээс эхлэх болно.
  • delta_t: хэмжилтийн хоорондох хугацаа, түүврийн хурдыг хянадаг.
  • max_t: өгөгдөл цуглуулах хамгийн дээд хугацаа, бид энэ зааварт үргэлж 10 -ийг ашиглах болно.
  • run_ave: ажиллаж буй дундажийг ашиглан боловсруулах, 0 нь боловсруулалт хийхгүй гэсэн үг юм.
  • trigger_value: триггер ашиглан боловсруулалт хийх, 0 нь боловсруулалт хийхгүй гэсэн үг юм

эцсийн, тайлбаргүй мөр, (self.show_plot ……) графикийг харуулна.

Аливаа зүйлийг арай төвөгтэй болгохын тулд та туршилтын явцад график дээр олон мөр эсвэл олон график байрлуулж болно, энэ нь дараа дараагийн туршилтуудаас тодорхой байх ёстой.

Алхам 3: Туршилт хийх

Энэ бол туршилт явуулах код юм. Python -д түгээмэл байдаг шиг үүнийг файлын төгсгөлд байрлуулна.

sim_logging = LoggingSim ()

sim_logging.experiment_with_sample_rates ()

Энэ бол ердөө 2 мөр юм.

  • Бүртгэлийн симулятор үүсгэх (LoggingSim ())
  • Үүнийг ажиллуулах (sim_logging.experiment_with_sample_rates ())

Татаж авсан код дээр надад хэдэн мөр, тайлбар байгаа тул үүнийг ойлгоход хялбар байх ёстой.

Алхам 4: Туршилт: Дээжийн хувь

Туршилт: Дээжийн хувь
Туршилт: Дээжийн хувь
Туршилт: Дээжийн хувь
Туршилт: Дээжийн хувь
Туршилт: Дээжийн хувь
Туршилт: Дээжийн хувь

Энд суурилуулсан симулятор нь үргэлж далайцтай сайн синус долгион гаргадаг. Энэхүү туршилтын хувьд бид дээжийн хоорондох цагийн зөрүүг delta_t -ээр тохируулсан түүврийн хурдыг алдагдуулах болно. Бидэнд ямар ч дуу чимээ болон бусад боловсруулалт байхгүй болно. Код нь 3 түүврийн хурдыг ашигладаг (delta_t = 1.0, 0.1 ба 0.01.) Графикууд хоорондоо унасан тул туршилтыг 3 өөр график гаргахаар тохируулсан болно. Үр дүнгийн графикууд нь энэ алхамын зураг юм.

жишээ туршилтын_хичээл_хэмжээгээр (өөрөө):

хэвлэх "" "Дээжийн хурдыг туршиж үзэх Дельта Т -ийг өөр өөр түүврийн хэмжээг харах" "" self.start_plot (plot_title = "Туршилтын дээжийн хурд 1/3: Delta T = 1.0") self.add_sensor_data (name = "dt = 1. ", далайц = 1., noise_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ------------- ----------------------------------- self.start_plot (plot_title = "Туршилтын дээжийн ханш 2/3: Дельта T = 0.1 ") self.add_sensor_data (name =" dt = 1. ", далайц = 1., noise_amp =.0, delta_t = 0.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ------------------------------------------------ өөрийгөө.start_plot (plot_title = "Туршилтын жишээний хурд 3/3: Delta T = 0.01") self.add_sensor_data (name = "dt = 1.", далайц = 1., noise_amp =.0, delta_t = 0.01, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Үүнийг ажиллуулахын тулд дараах мөрийг ашиглана уу: sim_logging.experiment_with_sample_rates ()

Боломжит дүгнэлтүүд:

  • Хэт бага түүвэрлэлтийн түвшин үнэхээр муу байна.
  • Өндөр хувь нь ихэвчлэн илүү сайн байдаг.

(Python 3.6 кодыг зааварчилгааны доорх GitHub линк дээр, 2.7)

Алхам 5: Туршилт: Дуу чимээг харуулах

Туршилт: Дуу чимээ гарч байна
Туршилт: Дуу чимээ гарч байна

Энэ туршилтанд бид ижил дохиог хадгалж, түүвэрлэлтийн дундаж хурдыг ашиглаж, өөр өөр дуу чимээтэй байна (noise_amp =.0,.1, 1.0.) Үүнийг ашиглан ажиллуулна уу: sim_logging.experiment_showing_noise (). Гаралт нь 3 мөр бүхий нэг график юм.

Боломжит дүгнэлт:

Дуу чимээ нь дохиог харахад хэцүү болгодог, хэрэв боломжтой бол үүнийг багасгаарай

Код:

# ------------------------------------------------

def deney_showing_noise (өөрөө): хэвлэх "" "Дуу чимээг харуулсан туршилт. Дуу чимээний далайцыг өөрчилснөөр янз бүрийн хэмжээний дуу чимээг харж болно." "" self.start_plot (plot_title = "Дуу чимээг харуулсан туршилт") self.add_sensor_data (name = "чимээ = 0.0 ", далайц = 1.. 1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name = "noise = 1.0", далайц = 1., noise_amp = 1., delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Алхам 6: Туршилт: Дуу чимээг хөдөлгөөнт дундажаар бууруул

Туршилт: Дуу чимээг хөдөлгөөнт дундажаар бууруул
Туршилт: Дуу чимээг хөдөлгөөнт дундажаар бууруул
Туршилт: Дуу чимээг хөдөлгөөнт дундажаар бууруул
Туршилт: Дуу чимээг хөдөлгөөнт дундажаар бууруул

Хөдөлж буй дундаж (жишээлбэл 8 урттай) нь сүүлийн 8 хэмжилтийг авч, дундажлуулдаг. Хэрэв чимээ шуугиан санамсаргүй байвал энэ нь ойролцоогоор 0 болно гэж найдаж байна. Туршилтыг sim_logging.experiment_showing_noise () ашиглан ажиллуулна уу. Нэг график гарга.

Боломжит дүгнэлт:

  • Хөдөлж буй дундаж нь дуу чимээг их хэмжээгээр арилгадаг
  • Хөдөлгөөний дундаж урт байх тусам дуу чимээ багасна
  • Урт хугацааны хөдөлгөөн нь дохиог бууруулж, гажуудуулж болзошгүй юм

Код:

# ------------------------------------------------

def deney_with_moving_average (өөрөө): хэвлэх "" "MovingAverage-ийн туршилт, өөр өөр MovingAverage-ийг уртыг нь өөрчилж харах. Бүгд ижил дуу чимээтэй байна." "" # ------------------ ------------------------------ self.start_plot (plot_title = "MovingAverage-Part 1/2: Moving Average байхгүй") өөрөө.add_sensor_data (name = "ave len = 0", далайц = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () self.start_plot (plot_title) = "MovingAverage-Part 2/2: Len 8 and 32") self.add_sensor_data (name = "ave len = 8", далайц = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 8, trigger_value = 0) self.add_sensor_data (name = "ave len = 32", далайц = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 32, trigger_value = 0) self.show_plot ()

Алхам 7: Туршилт: Дундаж ба дээжийн түвшинг шилжүүлэх

Туршилт: Хөдөлж буй дундаж ба түүврийн хувь
Туршилт: Хөдөлж буй дундаж ба түүврийн хувь

Энэхүү туршилтаар бид түүхий дохиог дуу чимээ, дуу чимээг бууруулах хоёр өөр хувилбартай харьцуулж үздэг.

  1. Дунд зэргийн түүвэрлэлтийн дундаж, дундаж гүйлтийн дундаж
  2. Өндөр түүврийн хурд, өндөр урттай дундаж

Үүнийг ажиллуулна уу: sim_logging …… Үр дүн нь нэг график юм. Дуу чимээг багасгахын тулд #2 илүү сайн ажилладаг нь ойлгомжтой гэж бид дүгнэж магадгүй юм.

Өндөр түүврийн хурд, өндөр урттай дундаж үзүүлэлт сайн байна

Гэхдээ зардал гарах ёстой гэдгийг санаж байх хэрэгтэй. #2 нь илүү их боловсруулалт шаарддаг бөгөөд илүү их өгөгдлийг хадгалах болно. Зардал нь үнэ цэнэтэй байж магадгүй юм. Дараагийн туршилтанд бид хадгалагдсан өгөгдлийн хэмжээг багасгах төхөөрөмж, гохыг нэмж оруулах болно.

Код:

def Experim_with_moving_average_and_sample_rate (өөрөө):

хэвлэх "" "Хөдлөх дундаж ба дээжийн ханшийн туршилт, dt, гүйлтийн дундаж нь янз бүр байна" "" # ---------------------------- -------------------- self.start_plot (plot_title = "Хөдөлж буй дундаж ба дээжийн хурд") self.add_sensor_data (name = "dt =.1 ra = 0 trig = 0 ", далайц = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name =" dt =.1 ra = 10 trig = 0 ", далайц = 1…, noise_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value = 0) self.show_plot ()

Алхам 8: Туршилт: Trigger ашиглан бүртгэл хийх

Туршилт: Trigger ашиглан мод бэлтгэх
Туршилт: Trigger ашиглан мод бэлтгэх

Энэ туршилтанд бид триггер нэмнэ. Нэгдүгээрт, би гох гэж юу гэсэн үг вэ? Триггер бол өгөгдөл цуглуулах боловч зарим хувьсагч ихээхэн хэмжээгээр өөрчлөгдсөний дараа л хадгалах арга юм. Эдгээр туршилтуудад би цаг (x тэнхлэг) хувьсагч дээр триггер тавьсан. Триггерийг ашигласнаар би маш хурдан түүвэрлэлтээс их хэмжээний өгөгдлийг авч, илүү боломжийн хэмжээнд хүртэл бууруулж чадна. Энэ нь түүвэрлэлтийн өндөр хувь, урт хугацааны дунджаар ашигтай байдаг.

Би сүүлийн туршилтаас авсан "2" дугаарыг авсан бөгөөд энэ нь "сайн" байсан бөгөөд өдөөгч болсон. Үүнийг ажиллуулна уу: sim_logging …… Үр дүн нь нэг график, х мөр байна.

Юу болсон бэ? Бид боломжийн хэмжээний өгөгдөлтэй "сайн" талбайг авдаг (№1 -тэй адил). Өндөр боловсруулалт хийхэд тодорхой хэмжээний зардал гарсан. Гэсэн хэдий ч ерөнхийдөө үр дүн нь шүүлтүүр багатай түүврийн хэмжээ 1 -тэй ойролцоо байна. Та дүгнэж болно:

  • Довтолгоог идэвхжүүлсэн урт хугацааны дундаж үзүүлэлт нь зохих хэмжээний өгөгдлөөр дуу чимээг сайн бууруулдаг.
  • Нэмэлт боловсруулалт нь тийм ч сайн үр дүн өгөхгүй бөгөөд өртөг дагалддаг.

Код:

# ------------------------------------------------

def Experience_with_trigger (өөрөө): хэвлэх "" "Triggering-ийн туршилт, dt, дундаж гүйлт, бүх зүйл өөр өөр байх" " # ----------------------- ------------------------- self.start_plot (plot_title = "Trigger 1/1-Triggering On") self.add_sensor_data (name = "dt =.1 ra = 10, trig = 0 ", далайц = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (name =" dt =.01 ra = 100, trig =.1 ", далайц = 1., noise_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =.1) self.show_plot ()

=

Алхам 9: Туршилт: Trigger ашиглан мод бэлтгэх - Илүү өндөр дуу чимээ

Туршилт: Trigger ашиглан мод бэлтгэх - Илүү өндөр дуу чимээ
Туршилт: Trigger ашиглан мод бэлтгэх - Илүү өндөр дуу чимээ

Сүүлийн алхамтай ижил туршилт хийж, дуу чимээг нэмэгдүүлье. Үүнийг ажиллуулна уу: sim_logging …… Үр дүн нь нэг график, 2 мөр юм.

Одоо нэмэлт боловсруулалт хийх нь илүү үнэ цэнэтэй харагдаж байна. Энд үндэслэлтэй дүгнэлт байж болно:

Дуу чимээг бууруулах боловсруулалтын хэмжээ, төрлийг сонгох нь таны дохио, дуу чимээнээс хамаарна

Код:

def trial_with_trigger_louder_noise (өөрөө):

хэвлэх "" "Өмнөх туршилтаас илүү өндөр дуу чимээ" "" self.start_plot (plot_title = "Trigger-Louder чимээ шуугиантай туршилт") self.add_sensor_data (name = "… dt =.1 ra = 10", далайц = 1., noise_amp =.5, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (name = "..dt =.01 ra = 100 tv =.1", далайц = 1., noise_amp =.5, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =.1) self.show_plot ()

Алхам 10: Өөрийнхөө туршилтыг хий

Өөрийнхөө туршилтыг хий
Өөрийнхөө туршилтыг хий

Энэ үед энэхүү зааварчилгааны техник нь өгөгдлийг бүртгэхэд тустай байж магадгүй, гэхдээ үүнийг бас бага зэрэг бодож ашиглах шаардлагатай байгааг та харж байна гэж найдаж байна. Тэдэнтэй туршилт хийх нь энэ үйл явцад тусалж чадна.

Туршилтууд болон зарим зүйлийг анхаарч үзэх хэрэгтэй.

  • Синус долгион нь цорын ганц сонирхолтой дохио биш, бусад долгион эсвэл налуу замыг туршиж үзээрэй.
  • Би чимээ шуугианы ердийн хуваарилалтыг ашигласан, маш олон төрлийн дуу чимээ байдаг; Та бусдыг анхаарч үзэх хэрэгтэй
  • Гүйлтийн дундаж нь дуу чимээг харах цорын ганц арга биш боловч энгийн зүйл юм

Тэмдэглэл: Википедиагаас зураг оруулах.

Алхам 11: Бүртгэлийн програм хангамжийн техникийг ашиглах

Бүртгэлийн програм хангамжийн техникийг ашиглах нь
Бүртгэлийн програм хангамжийн техникийг ашиглах нь

Миний код нь объектод чиглэсэн бөгөөд дундаж болон триггерийг ажиллуулах процессыг таны Python орчинд хуулж аваад дараа нь ашиглах боломжтой. Объектууд нь:

  • Data_trigger.py дахь DataTrigger
  • MovingAverage in move_average.py

Simulate_logging.py дахь миний гол объект LoggingSim үүнийг хэрхэн ашиглах талаар сайн жишээ өгөх ёстой. Хэрэв та өөр хэл ашиглаж байгаа бол миний кодыг уншиж, өөрийн хэл дээр хэрэгжүүлэх боломжтой.

Энэ код нь таны төсөлд өгөгдлийг илүү сайн бүртгэх боломжийг олгоно.

Дээрх график нь таны ажиллаж байгаа дундаж объектыг ашигладаг russ_hensel -ийн Graph Your Solar Power -аас авсан зураг юм.

Зөвлөмж болгож буй: