tf.image.resizeBilinear()와 tf.image.resizeNearestNeighbor()는 사용법이 같지만 다른 알고리즘을 사용해 이미지 크기를 바꿉니다. 전자는 이중선형보간법(bilinear interpolation)을 사용해 새로운 텐서의 픽셀 값을 계산합니다. 후자는 최근접 이웃 샘플링을 수행하며 일반적으로 이중선형보간법보다 계산 비용이 덜 듭니다.
tf.browser.fromPixels()로 만든 텐서는 배치 차원을 가지고 있지 않습니다. 따라서 이 텐서를 TensorFlow.js 모델에 주입하려면 다음과 같이 먼저 차원을 확장시켜야 합니다.
x = x.expandDims();
expandDims()는 일반적으로 차원 매개변수를 받습니다. 하지만 첫 번째 차원(0)이 기본값이기 때문에 이 경우에는 매개변수를 지정하지 않아도 됩니다.
tf.browser.fromPixels()는 img 요소 외에 canvas와 video 요소에도 동일한 방식으로 작동합니다. canvas 요소에 tf.browser.fromPixels()를 적용하는 경우는 TensorFlow.js 모델이 콘텐츠를 사용하기 전에 사용자가 대화식으로 canvas의 콘텐츠를 수정할 수 있을 때 유용합니다. 예를 들어 온라인 손 글씨 숫자 앱이나 온라인 손으로 그린 도형 인식 앱을 상상해 보세요. 정적인 이미지와 달리 video 요소에 tf.browser.fromPixels()를 적용하는 것은 웹캠에서 프레임 단위의 이미지를 얻을 때 유용합니다. 처음 TensorFlow.js를 발표할 때 니킬 소랫(Nikhil Thorat)과 다니엘 스밀코프(Daniel Smilkov)가 시연했던 팩맨(Pac-Man) 데모(http://mng.bz/xl0e)와 PoseNet 데모23, 웹캠을 사용하는 다른 많은 TensorFlow.js 기반 웹 앱이 바로 이런 식입니다. 깃허브(http://mng.bz/ANYK)에서 팩맨 소스 코드를 확인할 수 있습니다.