JavaScript 개발자로서 머신러닝에 뛰어드는 것은 생각보다 어렵지 않습니다. Node.js 패키지로 모든 것을 처리하는 것이 기술적으로 가능하지만 Python ML 생태계는 무시하기에는 너무 풍부하고 잘 확립되어 있습니다. 게다가 Python은 작업하기에 아주 좋습니다. 따라서 백엔드에서 무거운 작업을 수행하려면 Python을 사용하는 것이 합리적입니다. 모델이 준비되면 프런트엔드 친화적인 형식으로 내보내고 클라이언트에 로드하여 예측을 실행할 수 있습니다.
이번 게시물에서는 트위터 팔로워 수를 기준으로 아티스트의 인기를 예측하는 모델을 구축해 보겠습니다.
첫 번째 단계는 데이터세트를 확보하는 것입니다. 이 프로젝트에서는 다음과 같은 아티스트.csv 파일을 사용합니다.
twitter_followers,popularity,handle 111024636,94,justinbieber 107920365,91,rihanna 106599902,89,katyperry 95307659,97,taylorswift13 66325495,87,selenagomez 66325135,71,selenagomez 60943147,83,jtimberlake 54815915,82,britneyspears 53569307,85,shakira
보시다시피 여기에는 twitter_followers와 인기라는 두 가지 핵심 가치가 있습니다. 이는 x가 twitter_followers이고 y가 인기가 되는 시퀀스 모델에 대한 좋은 설정입니다.
시퀀스 모델은 모델을 구축하는 가장 쉬운 옵션 중 하나입니다. 선택은 궁극적으로 특정 사용 사례에 따라 다르지만 지금은 단순함을 유지하고 이 접근 방식을 고수하고 있습니다.
모델을 구축할 때 처리해야 할 몇 가지 기본 작업이 있습니다.
다음 코드는 전체 그림은 아니지만 이러한 작업에 대한 좋은 개요를 제공합니다. 전체 코드는 Github에서 확인하실 수 있습니다.
def get_model(x, y): x_normalized = layers.Normalization( axis=None, ) x_normalized.adapt(np.array(x)) model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)]) model.compile( optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1), loss="mean_squared_error", ) model.fit( x, y, epochs=2, verbose=0, validation_split=0.2, ) return model def main: train_features, test_features, train_labels, test_labels = split_data(dataset) model = get_model( train_features["twitter_followers"], train_labels, ) test_loss = model.evaluate( test_features["twitter_followers"], test_labels, verbose=2 ) model.export("./saved_model")
보시다시피 Python 코드는 매우 간단합니다. 데이터 분할, 모델 가져오기, 평가 및 최종 저장을 처리하는 주요 기능이 있습니다.
간단히 말하면 모델을 만들기 위한 필수 단계입니다. 하지만 현실적으로 생각해 봅시다. 실제로 작동하는 모델을 구축하는 것은 예술이자 과학입니다. 여기서 나의 목표는 Python을 시작하는 것이 얼마나 쉬운지 보여주는 것입니다. 그러나 견고한 데이터세트 보유, 데이터 정리 및 정규화, 올바른 모델 및 설정 선택, 모델 훈련을 위한 컴퓨팅 성능 확보 등 잘 수행되는 모델을 만드는 데는 많은 노력이 필요합니다. 이 모든 작업에는 상당한 시간과 노력의 투자가 필요합니다!
이제 모델을 훈련하고 저장했으므로 이를 프런트엔드로 가져올 차례입니다. 이 단계에서는 웹에 적합한 형식으로 모델을 로드하여 브라우저에서 바로 예측을 실행할 수 있습니다. TensorFlow.js를 사용하든 다른 라이브러리를 사용하든 머신러닝을 웹 앱에 통합하면 가능성의 세계가 열립니다. 그 방법을 자세히 알아보겠습니다!
TensorFlow는 저장된 모델을 JSON 및 바이너리로 변환하는 데 도움이 되는 tensorflowjs_converter라는 npm 패키지를 제공합니다.
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ls -la out/public group1-shard1of1.bin model.json
이 설정을 사용하면 웹 애플리케이션에 필요한 파일에 쉽게 액세스할 수 있습니다.
전체 코드는 Github에서 확인하실 수 있습니다.
const model = await tensorflow.loadGraphModel("model.json"); const getPopularity = (followers) => { const followers = 1_000; const normalized = followers; const x = tensorflow.tensor(normalized).reshape([-1, 1]); const result = model.predict(x); const values = result.arraySync(); const y = values[0][0].toFixed(2) * 100; const popularity = y; return popularity; };
앞서 언급했듯이 이 모델은 트위터 팔로워 수를 기반으로 '인기 예측'을 목표로 합니다. 단순한 예처럼 보일 수도 있지만 백엔드에서 모델을 생성하고 프런트엔드에서 사용하는 방법을 효과적으로 보여줍니다.
getPopularity가 입력을 약간 처리하는 방법을 살펴보세요. 핵심 라인은 모델을 사용하여 입력 x를 기반으로 값(y)을 예측하는 model.predict(x)입니다.
데모 페이지로 가서 몇 가지 Twitter 핸들을 사용해 보세요. 모델이 팔로어 수를 기반으로 인기를 어떻게 예측하는지 보는 재미있는 방법입니다.
TensorFlow는 백엔드 및 프런트엔드 개발을 위한 도구를 제공하는 멋진 라이브러리입니다. 모든 JavaScript 개발자는 Python 또는 유사한 언어를 사용하여 모델을 생성한 후 예측 실행을 위해 해당 모델을 프런트엔드로 쉽게 가져올 수 있습니다.
머신러닝은 많은 지식이 필요한 광범위한 분야이지만 TensorFlow와 같은 도구는 소프트웨어와 머신러닝 개발자 간의 격차를 줄이는 데 도움이 됩니다. ML을 프로젝트에 통합하려는 사람들의 여정이 훨씬 더 원활해집니다!
위 내용은 TensorFlow를 사용한 기계 학습 연결: Python에서 JavaScript까지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!