240131_Retejs_troubles.md

๋ฌธ์ œ ์ƒํ™ฉ1: Error: uncaught cancelled error

  1. ๋ฌธ์ œ์ :

    1. uncaught cancelled error๊ฐ€ ์ˆ˜์‹ญ๋งŒ๋ฒˆ ๋ฐœ์ƒ

    2. cancelled๋ž€?

      1. rete ์˜ dataflow engine์ด fetch์ค‘์— reset ๋˜์—ˆ์„ ๋•Œ

  • ์›์ธ:

    • process ํ•จ์ˆ˜: node์˜ connection์ด ๋ณ€๊ฒฝ๋ ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋จ

      • reset ํ•จ์ˆ˜: ๋…ธ๋“œ ์‹คํ–‰์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋“œ์˜ ๊ฒฐ๊ณผ๊ฐ’๋“ค์ด ์บ์‹œ๋˜๋ฏ€๋กœ ์ด ์บ์‹œ๋ฅผ ์ง€์›Œ์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ ๊ฒƒ์ž„

      • fetch ํ•จ์ˆ˜: fetch๋Š” ํƒ€๊ฒŸ ๋…ธ๋“œ (a-b ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฉด b๋…ธ๋“œ)์—์„œ๋ถ€ํ„ฐ ๋ชจ๋“  ์ž์† ๋…ธ๋“œ๋“ค์„ ๊ทธ๋ž˜ํ”„ ์ˆœํšŒํ•˜๋ฉฐ ๋…ธ๋“œ์˜ data() ๋ฅผ ์‹คํ–‰์‹œํ‚ด

      • data ํ•จ์ˆ˜: input ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์ธ์ž๋ฅผ ๋ฐ›์•„์˜ด output์„ return ํ•จ ๋‹ค์Œ์— ์—ฐ๊ฒฐ๋  ๋…ธ๋“œ์˜ input ์ธ์ž๋กœ ์ „๋‹ฌ๋จ

    • const process = () => {
        engine.reset()
        editor
        .getNodes()
        .forEach(node => {
          await engine.fetch(node.id);
        })
      };
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ:

    • addPipe ์‹คํ–‰ ์‹œ์  ๋ณ€๊ฒฝ

      • As-is: ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง ์™„๋ฃŒ๋œ ์‹œ์ 

      • To-be: ํŽ˜์ด์ง€ ๋ Œ๋”๋ง + ๋ชจ๋“  ๋…ธ๋“œ ์ƒ์„ฑ ์™„๋ฃŒ

    • addPipe:

      • connection์˜ ์ƒ์„ฑ๊ณผ ์‚ญ์ œ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ process()ํ•จ์ˆ˜๋ฅผ trigger

  • ๊ฒฐ๊ณผ: ์ตœ์ดˆ ๋กœ๋”ฉ ์†๋„๋ฅผ 1.6์ดˆ์—์„œ 1.0์ดˆ๋กœ ๊ฐ์†Œ ์‹œํ‚ด

๋ฌธ์ œ ์ƒํ™ฉ2: ๋…ธ๋“œ ์ƒ์„ฑ ์‹œ ์ค‘๋ณต ์ƒ์„ฑ๋จ

ํŠธ๋ฆฌ ํ˜•ํƒœ ๋ฐ์ดํ„ฐ๋กœ ๋ถ€ํ„ฐ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑ

vience-mlops ์˜ ๋…ธ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ •๋ณด๊ฐ€ input์ด๋ผ๋Š” ๊ฐ์ฒด ์•ˆ์— ์žฌ๊ท€์ ์œผ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋Š”๋ฐ์š”. ์ด๋ฅผ ํ†ตํ•ด์„œ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

node-connections

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์—ฐ๊ฒฐ๋œ ์„ธ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ,

์œ„์™€ ๊ฐ™์ด ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ ํ‚ค, ์˜ต์…˜ ๊ฐ’์ด ์ €์žฅ๋œ ๊ฐ์ฒด๊ฐ€ ๊ฐ’์ธ "node"๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ "input"์ด๋ผ๋Š” ํ‚ค์˜ ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด๋กœ ์ €์žฅ๋˜์–ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ „๋‹ฌํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ input์— "nodes"๋ฅผ ๋„ฃ์–ด ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์ 1: ์ค‘๋ณต๋˜๋Š” ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

overlap-node

๋ฌธ์ œ๋Š” input์ด ๋‘ ๊ฐœ์ธ ๋…ธ๋“œ(์ดˆ๋ก์ƒ‰ Cat ๋…ธ๋“œ)๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์šฐ์ธก์˜ cat ๋…ธ๋“œ์—์„œ ๋‚˜์˜จ ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ์—์„œ ๊ฐ๊ฐ convolution 2D ๋…ธ๋“œ๋ถ€ํ„ฐ Dataset ๋…ธ๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ๋ชจ์Šต์ด ๋ณด์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์›๋ž˜ ์˜๋„ํ•œ ๋ชจ์–‘์€ ์•„๋ž˜์˜ ๋ชจ์–‘์ด์—ˆ์Šต๋‹ˆ๋‹ค.

no-overlap-node

๋‘ ๊ฐœ์˜ input์œผ๋กœ ๋“ค์–ด์˜จ BatchNorm2D ๋…ธ๋“œ์™€ MaxPool 2D ๋…ธ๋“œ๊ฐ€ ๊ฐ๊ฐ์˜ input ๊ฐ’์œผ๋กœ ๊ฐ™์€ ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋Š” ๊ทธ ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋˜๋‹ค๋ฅธ ๋…ธ๋“œ์™€ ๋˜๋‹ค๋ฅธ ์ปค๋„ฅ์…˜์„ ์ƒ์„ฑํ–ˆ๋˜ ๊ฒƒ์ด์ฃ .

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด์„œ ์‹ฌ๊ฐ์„ฑ์„ ๋‚˜ํƒ€๋ƒˆ์Šต๋‹ˆ๋‹ค.

์ค‘๋ณต ํ™•์ธ ๊ณผ์ •

์œ„์—์„œ ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ์™€ ํ•œ ๊ฐœ์˜ ์ปค๋„ฅ์…˜์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ๋…ธ๋“œ๊ฐ€ ๋งŽ์€ ์ƒํ™ฉ์—์„œ๋Š” 39๊ฐœ์˜ ๋…ธ๋“œ์™€ 38๊ฐœ์˜ ์ปค๋„ฅ์…˜์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ƒ์„ฑ๋˜๋‹ˆ, connection์ด ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋˜๋Š” process ํ•จ์ˆ˜๋„ ๊ทธ๋งŒํผ ๋งŽ์ด ์‹คํ–‰๋˜๋ฉด์„œ ์‹คํ–‰ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ์‹ฌ์ง€์–ด๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ๊นŒ์ง€ ๋ฐœ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋Š” ๋‘ ๊ฐ€์ง€ ์˜€์Šต๋‹ˆ๋‹ค.

  1. ์ค‘๋ณต๋˜๋Š” ๋…ธ๋“œ ์ƒ์„ฑ ๋ง‰๊ธฐ

  2. ์ค‘๋ณต๋˜๋Š” ์ปค๋„ฅ์…˜ ์ƒ์„ฑ ๋ง‰๊ธฐ

ํ•ด๊ฒฐ์€ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋ถ„์—๊ฒŒ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋…ธ๋“œ ID๋ฅผ 16์ง„๋ฒ• 16์ž๋ฆฌ string์œผ๋กœ ์ถ”๊ฐ€ํ•ด์„œ ์ „๋‹ฌํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ณ , ์ƒ์„ฑ๋œ ๋…ธ๋“œ ID๋Š” generatedNodesId๋ผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ €์žฅ, ๋งค ์ƒ์„ฑ๋งˆ๋‹ค ๋ฐฐ์—ด์„ ํ™•์ธํ•˜์—ฌ ์ค‘๋ณต์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ„ ์—ฐ๊ฒฐํ•˜๋Š” ์ปค๋„ฅ์…˜๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ค‘๋ณต์„ ๊ฒ€์‚ฌํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ์ 2: ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ž์ฒด์˜ ๋ฌธ์ œ

์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‚˜์„œ๋„ ์—ฌ์ „ํžˆ ์ด์ƒํ•˜๊ฒŒ ๋ Œ๋”๋˜๋Š” ๋…ธ๋“œ๋“ค.

๋งŒ๋“ค์–ด์ง€๋Š” ๋…ธ๋“œ๋“ค
๋”ฅ๋Ÿฌ๋‹ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•œ ๋…ธ๋“œ๋“ค

์›๋ž˜ ์˜๋„ํ–ˆ๋˜ ๋…ธ๋“œ์˜ ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ์„ ๋ชจ๋ฅด๋‹ˆ ์ผ๋‹จ ๋”ฅ๋Ÿฌ๋‹ ๊ฐœ๋ฐœ์ž ๋ถ„์ด ๋งŒ๋“ค์–ด์ฃผ์‹  ๋…ธ๋“œ์™€ ์™„์„ฑ๋œ ๋ชจ๋ธ์˜ ๋ชจ์Šต์„ ๊ทธ๋ ค๋‹ฌ๋ผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋ Œ๋”๋˜๋Š” ๋…ธ๋“œ์™€ ๋น„๊ตํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์—์„œ๋Š” 18๋ฒˆ์งธ๋กœ ConvTranspose 2D ๋…ธ๋“œ๊ฐ€ ์ „๋‹ฌ๋˜๋Š”๋ฐ, PPT์— ๋”ฐ๋ฅด๋ฉด ๊ทธ ์ „์— cat ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ๋ฐฐ์น˜๋˜์—ˆ์–ด์•ผ ํ–ˆ์ฃ .

๊ณผ ๊ฐ™์ด ๋”ฅ๋Ÿฌ๋‹ ๊ฐœ๋ฐœ์ž ๋ถ„๊ป˜ ์ „๋‹ฌํ•˜์˜€๊ณ , ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์˜ ๋กœ์ง์„ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์™„์ „ํžˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ๋ฐฐ์šด ์ 

์ฒ˜์Œ์—๋Š” ์ค‘๋ณต๋˜๋Š” ๋…ธ๋“œ๋“ค์ด ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ž˜๋ชป ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ์˜ค๋ฅ˜๋กœ ์ „๋‹ฌ์„ ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜๋ณด๋‹ค ์ƒ์„ฑ๋˜๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜๊ณ , ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜๋„ํ•œ ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ๋•Œ ๋‚ด ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ๋จผ์ €, ๊ผผ๊ผผํžˆ ์‚ดํŽด๋ณด๋Š” ์Šต๊ด€์„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค๋Š” ๋‹ค์ง์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋˜ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Last updated