내 데이터는 다음과 같습니다. 그것들은 float이고 큰 배열 [700000,3]에 있습니다. 빈 필드가 없습니다.
Label | Values1 | Values2
1. | 0.01 | 0.01
1. | ... | ...
1. |
2. |
2. |
3. |
...
아이디어는 values1 및 values2 집합을 제공하고 분류를 사용하여 레이블을 식별하도록하는 것입니다.
하지만 데이터를 행 단위로 공급하고 싶지는 않지만 레이블 1에 속하는 모든 값 1/2을 세트로 입력합니다 (예 : 처음 3 개 행을 입력하면 [1,0, ...]을 반환해야합니다. 집합으로 다음 2 개 행 [0,1, ...])
이런 방식으로 데이터를 공급하는 복잡하지 않은 방법이 있습니까? (예 : 열 라벨이 1 인 피드 배치)
나는 현재 데이터를 정렬하고 시작에 대한 포인터를 사용하고 다음 행이 현재와 같은지 확인하는 루프를 사용하여 집합의 끝에 대한 포인터를 찾고 해당 배치의 행 수를 얻는 것에 대해 생각하고 있습니다. 그러나 이것은 다소간 입력 순서를 무작위 화하는 것을 방지합니다.
당신이 NumPy와 배열에 데이터를 가지고 있기 때문에 (현실을 부르 자 data
, 당신이 사용할 수있는
single_digit = data[(data[:,0] == 1.)][: , 1:]
각 행의 0 번째 요소를 숫자 ( 1.
이 경우)와 비교하고 레이블이있는 행만 선택합니다 1.
. 이 행에서 첫 번째와 두 번째 요소, 즉 Values1 및 Values2를 가져옵니다. 작동 예는 다음과 같습니다. for 루프를 사용하여 데이터 세트에 포함 된 모든 레이블을 반복하고 다음을 사용하여 각 레이블에 대해 numpy 배열을 구성 할 수 있습니다.
single_digit = data[(data[:,0] == label_of_this_iteration)][: , 1:]
그런 다음 이러한 어레이를 네트워크에 공급합니다. 해당 자리 표시 자의 첫 번째 차원을 지정하지 않으면 TensorFlow 내에서 서로 다른 길이의 배치를 쉽게 공급할 수 있습니다.
import numpy as np
# Generate some data with three columns (label, Values1, Values2)
n = 20
ints = np.random.randint(1,6,(n, 1))
dous = np.random.uniform(size=(n,2))
data = np.hstack((ints, dous))
print(data)
# Extract the second and third columns of all rows having the label 1.0
ones = data[(data[:,0] == 1.)][: , 1:]
print(ones)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다