코드 2-2 데이터를 텐서로 변환하기(CodePen 2-b)
const trainTensors = {
sizeMB: tf.tensor2d(trainData.sizeMB, [20, 1]), ------ [20, 1]은 텐서의 크기(shape)입니다. 나중에 더 자세히 설명하겠지만, 이 크기는 이 숫자 리스트를 20개 샘플로 해석한다는 의미입니다. 따라서 각 샘플은 하나의 숫자입니다. 크기, 즉 데이터 배열의 구조가 분명한 경우 이 매개변수를 생략할 수 있습니다.3
timeSec: tf.tensor2d(trainData.timeSec, [20, 1])
};
const testTensors = {
sizeMB: tf.tensor2d(testData.sizeMB, [20, 1]),
timeSec: tf.tensor2d(testData.timeSec, [20, 1])
};
일반적으로 현재 모든 머신 러닝 시스템은 기본 데이터 구조로 텐서를 사용합니다. 텐서가 이 분야의 기본 요소라서 텐서플로와 TensorFlow.js가 여기서 이름을 따 왔습니다. 1장을 되새겨 보면, 핵심적으로 텐서는 데이터 컨테이너입니다. 이 데이터는 거의 항상 수치 데이터입니다. 따라서 텐서를 숫자를 위한 컨테이너로 생각할 수 있습니다. 아마도 이미 벡터와 행렬을 알고 있을지 모릅니다. 이들은 각각 1D와 2D 텐서입니다. 텐서는 차원의 개수가 한정되지 않은 행렬의 일반화입니다. 차원의 개수와 각 차원의 길이를 텐서의 크기라고 부릅니다. 예를 들어 3 × 4 행렬은 크기가 [3, 4]인 텐서입니다. 길이가 10인 벡터는 크기가 [10]인 1D 텐서입니다.4
텐서 입장에서 차원을 종종 축이라고 부릅니다. TensorFlow.js에서 텐서는 구성 요소들이 CPU, GPU 또는 다른 하드웨어 간에 통신하고 처리할 수 있는 일반적인 표현입니다. 필요할 때 텐서와 텐서의 일반적인 사용법에 대해 조금 더 이야기하겠습니다. 지금은 다운로드 시간 예측 프로젝트를 계속 진행해 보죠.