[react] React와 TensorFlow의 통합 방법

React와 TensorFlow를 통합하여 머신 러닝 모델을 웹 애플리케이션에 통합하는 방법에 대해 알아봅니다.

1. TensorFlow.js 소개

TensorFlow.js는 웹 애플리케이션에서 머신 러닝 모델을 실행하고 훈련시키기 위한 라이브러리로, TensorFlow의 JavaScript 버전입니다. TensorFlow.js를 사용하면 브라우저에서 실시간으로 머신 러닝을 수행할 수 있습니다.

2. React에서 TensorFlow.js 사용하기

React 애플리케이션에서 TensorFlow.js를 사용하려면, 다음과 같은 단계를 따를 수 있습니다.

  1. TensorFlow.js 라이브러리 설치: 프로젝트에 TensorFlow.js 라이브러리를 설치합니다.
npm install @tensorflow/tfjs
  1. 모델 로드: 미리 훈련된 TensorFlow 모델을 로드하거나, 웹 애플리케이션에서 모델을 훈련시킬 수 있습니다.

  2. 데이터 처리: React에서 가져온 데이터를 TensorFlow 모델에 입력으로 제공하고 결과를 처리합니다.

  3. 결과 표시: TensorFlow 모델의 출력을 React 컴포넌트에 표시합니다.

3. 예제

다음은 React에서 TensorFlow.js를 사용하여 간단한 이미지 분류기를 구현하는 예제입니다.

import React, { useState, useEffect } from 'react';
import * as tf from '@tensorflow/tfjs';
import * as mobilenet from '@tensorflow-models/mobilenet';

function ImageClassifier() {
  const [model, setModel] = useState(null);
  const [image, setImage] = useState(null);
  const [predictions, setPredictions] = useState(null);

  useEffect(() => {
    async function loadModel() {
      const loadedModel = await mobilenet.load();
      setModel(loadedModel);
    }
    loadModel();
  }, []);

  const handleImageUpload = (event) => {
    const file = event.target.files[0];
    const imageUrl = URL.createObjectURL(file);
    setImage(imageUrl);
    predictImage(file);
  };

  const predictImage = async (file) => {
    const img = await tf.browser.fromPixels(image);
    const processedImg = tf.image.resizeBilinear(img, [224, 224]).toFloat().div(255);
    const prediction = await model.classify(processedImg);
    setPredictions(prediction);
  };

  return (
    <div>
      <input type="file" onChange={handleImageUpload} />
      {image && <img src={image} alt="Uploaded" />}
      {predictions && (
        <ul>
          {predictions.map((prediction, i) => (
            <li key={i}>{prediction.className} - {prediction.probability.toFixed(2)}</li>
          ))}
        </ul>
      )}
    </div>
  );
}

이 예제에서는 React 함수 컴포넌트를 사용하여 이미지를 업로드하고, TensorFlow.js 모델을 사용하여 이미지를 분류합니다.

4. 결론

React와 TensorFlow.js를 통합하여 웹 애플리케이션에서 실시간 머신 러닝을 수행하는 것은 간단하지만 강력한 기능을 제공합니다. 이를 통해 사용자는 훈련된 모델을 사용하여 웹 애플리케이션에서 머신 러닝을 활용할 수 있습니다.

참고 자료