모든 데이터를 메모리에 저장하지 않고 어떻게 트리를 훈련하는지 궁금합니다. 테이블이 6GB이면 약 6GB의 메모리가 사용되어야 합니다. 트리는 각 열을 전체적으로 정렬해야 합니다. 모든 것을 메모리에 저장하지 않고 매번 디스크에서 데이터를 읽으면 속도가 느려집니다. 유일한 옵션은 데이터를 두 배로 유지하는 것이 아니라 메모리의 float 유형으로 유지하는 것이지만 정확도가 떨어집니다. 우리에게는 5자리의 정밀도로 이것이 무섭지 않을 수 있지만 catbust는 보편적인 소프트웨어이므로 물리적, 수학적인 문제는 배정밀도로 풀어야 한다고 생각합니다.
나는 코드를 공부하지 않았지만 논리적으로 생각한다면 CatBoost는 아마도 샘플 데이터 테이블을 변환하고 변환된 버전을 정확하게 저장하므로 빠르게 압축할 수 있습니다.
변환은 각 예측자의 양자화 그리드(6가지 알고리즘 사용 가능)에 따라 발생하며, 예를 들어 1000개의 서로 다른 변수 값 중 32개의 옵션이 남아(양자 그리드 범위에 해당) 이러한 데이터 벡터는 쉽게 압축되며, 게다가 숫자는 이미 정수일 뿐이며(그리드 크기 제한으로 판단 - ushort 데이터 유형 - 숫자당 2바이트) 양자화 테이블은 단순히 메모리에 있으며 나중에 코드에서 모델을 생성할 때 사용됩니다. 우리는 이미 크기를 상당히 줄였습니다. 그런 다음 평가를 위해 모든 예측자를 선택하는 것이 아니라 그 중 일부를 선택하여 볼륨을 줄일 수 있습니다. 이는 큰 샘플에 권장되는 반면 Randomizer 알고리즘을 사용하면 다른 트리에서 해당 예측자를 사용할 수 있습니다. "가방"에 즉시 빠지지 않기 때문에 훈련이 훨씬 빨라지지만 모델에 더 많은 나무가 있습니다. 물론 다른 트릭도 있지만 가장 중요한 것은 양자화입니다.
여기에서 양자화는 일반적으로 특별한 주의를 기울여야 합니다. 이상적으로는 각 예측자에 대해 자신의 그리드를 선택하고 그리드와 함께 훈련을 위해 데이터를 제출해야 합니다. 이렇게 하면 알고리즘을 수행할 수 있습니다.
코드를 공부하지는 않았지만 논리적으로 생각하면 CatBoost가 샘플 데이터 테이블을 변환하고 변환된 버전을 정확히 저장하므로 빠르게 압축할 수 있습니다.
변환은 각 예측자의 양자화 그리드(6가지 알고리즘 사용 가능)에 따라 발생하며, 예를 들어 1000개의 서로 다른 변수 값 중 32개의 옵션이 남아(양자 그리드 범위에 해당) 이러한 데이터 벡터는 쉽게 압축되며, 게다가 숫자는 이미 정수일 뿐이며(그리드 크기 제한으로 판단 - ushort 데이터 유형 - 숫자당 2바이트) 양자화 테이블은 단순히 메모리에 있으며 나중에 코드에서 모델을 생성할 때 사용됩니다. 우리는 이미 크기를 상당히 줄였습니다. 그런 다음 평가를 위해 모든 예측자를 선택하는 것이 아니라 그 중 일부를 선택하여 볼륨을 줄일 수 있습니다. 이는 큰 샘플에 권장되는 반면 Randomizer 알고리즘을 사용하면 다른 트리에서 해당 예측자를 사용할 수 있습니다. "가방"에 즉시 빠지지 않기 때문에 훈련이 훨씬 빨라지지만 모델에 더 많은 나무가 있습니다. 물론 다른 트릭도 있지만 가장 중요한 것은 양자화입니다.
여기에서 양자화는 일반적으로 특별한 주의를 기울여야 합니다. 이상적으로는 각 예측자에 대해 자신의 그리드를 선택하고 그리드와 함께 훈련을 위해 데이터를 제출해야 합니다. 이렇게 하면 알고리즘을 수행할 수 있습니다.
따라서 샘플은 자체적으로 양자화될 수 있으며 잘 압축됩니다.
정확히는 기본적으로 1024 분할 옵션에 대한 그리드가 있는 것으로 기억합니다. 모든 데이터를 분할된 숫자로 대체하면 ushort 형식으로 저장할 수 있으며 이는 8, 4중 압축 대신 2바이트입니다. 분명히 6 대신 2GB가 있고 사용했기 때문입니다. 이제 이 그리드가 무엇에 사용되는지 이해했으며 압축에 사용되었습니다. 글쎄, 빨리 정렬하십시오.
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
예, 직접 원합니다) 모든 기사에서 활성화 함수의 예가 올바르게 고려되지 않기 때문입니다. 예를 들어, sigmoid는 모든 곳에서 1/1 + exp(-x)로 간주됩니다. 그리고 1.0/1.0+exp(-x)가 필요합니다. 그것은 같은 것을 쓴 것 같지만 터미널은 다른 계산을 제공합니다) 보기, 아마도 당신도 같은 방식으로 생각할 수 있음) 따라서 오류.
알렉산더 알렉세비치 : 예, 직접 원합니다) 모든 기사에서 활성화 함수의 예가 올바르게 고려되지 않기 때문입니다. 예를 들어, sigmoid는 모든 곳에서 1/1 + exp(-x)로 간주됩니다. 그리고 1.0/1.0+exp(-x)가 필요합니다. 그것은 같은 것을 쓴 것 같지만 터미널은 다른 계산을 제공합니다) 보기, 아마도 당신도 같은 방식으로 생각할 수 있음) 따라서 오류.
신경망 터미널에 쓰는 것은 전혀 선택 사항이 아닙니다. 거기, 어떤 f-I도 갑자기 예상대로 작동하지 않을 수 있습니다. 기성품 사용
숲의 경우도 클러스터의 중요성을 알 수 있다. 캣버스트에서 이것은 아마도 plot_tree일 것입니다.
자료를 준비해서 올리겠습니다.
6열에 대한 테스트 버전을 만들고 11GB를 사용했습니다. 메모장++에서 파일이 너무 큽니다. SQLite용 BD 브라우저는 이미 20분 동안 중단되었습니다.그것이 무엇인지 이해할 때까지 나무 덩어리가 어떻게 생겼는지 그림을 보여주십시오.
왜 열어? :) 디버깅을 위해 비슷한 구조로 미니 카피를 만들고 있습니다.
모든 데이터를 메모리에 저장하지 않고 어떻게 트리를 훈련하는지 궁금합니다. 테이블이 6GB이면 약 6GB의 메모리가 사용되어야 합니다. 트리는 각 열을 전체적으로 정렬해야 합니다. 모든 것을 메모리에 저장하지 않고 매번 디스크에서 데이터를 읽으면 속도가 느려집니다.
유일한 옵션은 데이터를 두 배로 유지하는 것이 아니라 메모리의 float 유형으로 유지하는 것이지만 정확도가 떨어집니다. 우리에게는 5자리의 정밀도로 이것이 무섭지 않을 수 있지만 catbust는 보편적인 소프트웨어이므로 물리적, 수학적인 문제는 배정밀도로 풀어야 한다고 생각합니다.
나는 코드를 공부하지 않았지만 논리적으로 생각한다면 CatBoost는 아마도 샘플 데이터 테이블을 변환하고 변환된 버전을 정확하게 저장하므로 빠르게 압축할 수 있습니다.
변환은 각 예측자의 양자화 그리드(6가지 알고리즘 사용 가능)에 따라 발생하며, 예를 들어 1000개의 서로 다른 변수 값 중 32개의 옵션이 남아(양자 그리드 범위에 해당) 이러한 데이터 벡터는 쉽게 압축되며, 게다가 숫자는 이미 정수일 뿐이며(그리드 크기 제한으로 판단 - ushort 데이터 유형 - 숫자당 2바이트) 양자화 테이블은 단순히 메모리에 있으며 나중에 코드에서 모델을 생성할 때 사용됩니다. 우리는 이미 크기를 상당히 줄였습니다. 그런 다음 평가를 위해 모든 예측자를 선택하는 것이 아니라 그 중 일부를 선택하여 볼륨을 줄일 수 있습니다. 이는 큰 샘플에 권장되는 반면 Randomizer 알고리즘을 사용하면 다른 트리에서 해당 예측자를 사용할 수 있습니다. "가방"에 즉시 빠지지 않기 때문에 훈련이 훨씬 빨라지지만 모델에 더 많은 나무가 있습니다. 물론 다른 트릭도 있지만 가장 중요한 것은 양자화입니다.
여기에서 양자화는 일반적으로 특별한 주의를 기울여야 합니다. 이상적으로는 각 예측자에 대해 자신의 그리드를 선택하고 그리드와 함께 훈련을 위해 데이터를 제출해야 합니다. 이렇게 하면 알고리즘을 수행할 수 있습니다.
따라서 샘플은 자체적으로 양자화될 수 있으며 잘 압축됩니다.
코드를 공부하지는 않았지만 논리적으로 생각하면 CatBoost가 샘플 데이터 테이블을 변환하고 변환된 버전을 정확히 저장하므로 빠르게 압축할 수 있습니다.
변환은 각 예측자의 양자화 그리드(6가지 알고리즘 사용 가능)에 따라 발생하며, 예를 들어 1000개의 서로 다른 변수 값 중 32개의 옵션이 남아(양자 그리드 범위에 해당) 이러한 데이터 벡터는 쉽게 압축되며, 게다가 숫자는 이미 정수일 뿐이며(그리드 크기 제한으로 판단 - ushort 데이터 유형 - 숫자당 2바이트) 양자화 테이블은 단순히 메모리에 있으며 나중에 코드에서 모델을 생성할 때 사용됩니다. 우리는 이미 크기를 상당히 줄였습니다. 그런 다음 평가를 위해 모든 예측자를 선택하는 것이 아니라 그 중 일부를 선택하여 볼륨을 줄일 수 있습니다. 이는 큰 샘플에 권장되는 반면 Randomizer 알고리즘을 사용하면 다른 트리에서 해당 예측자를 사용할 수 있습니다. "가방"에 즉시 빠지지 않기 때문에 훈련이 훨씬 빨라지지만 모델에 더 많은 나무가 있습니다. 물론 다른 트릭도 있지만 가장 중요한 것은 양자화입니다.
여기에서 양자화는 일반적으로 특별한 주의를 기울여야 합니다. 이상적으로는 각 예측자에 대해 자신의 그리드를 선택하고 그리드와 함께 훈련을 위해 데이터를 제출해야 합니다. 이렇게 하면 알고리즘을 수행할 수 있습니다.
따라서 샘플은 자체적으로 양자화될 수 있으며 잘 압축됩니다.
이제 이 그리드가 무엇에 사용되는지 이해했으며 압축에 사용되었습니다. 글쎄, 빨리 정렬하십시오.
정확히는 기본적으로 1024 분할 옵션에 대한 그리드가 있는 것으로 기억합니다. 모든 데이터를 분할된 숫자로 대체하면 ushort 형식으로 저장할 수 있으며 이는 8, 4중 압축 대신 2바이트입니다. 분명히 6 대신 2GB가 있고 사용했기 때문입니다.
기본값은 254인데 그때 얼마로 설정했는지 기억이 안나네요. 아마도 2GB 미만의 메모리가 소비되었을 것입니다. 메모리가 너무 적다는 사실에 매우 놀랐던 기억이 있습니다.
어쨌든 이 접근 방식을 사용하면 샘플 자체를 포함하여 데이터를 상당히 압축할 수 있습니다. 신경망으로는 그렇게 할 수 없습니다.
이제 이 그리드가 무엇에 사용되는지 이해했으며 압축에 사용되었습니다. 글쎄, 빨리 정렬하십시오.
기본값은 254인데 그때 얼마로 설정했는지 기억이 안나네요. 아마도 2GB 미만의 메모리가 소비되었을 것입니다. 메모리가 너무 적다는 사실에 매우 놀랐던 기억이 있습니다.
그런 다음 uchar 사용할 수 있습니다. 1바이트입니다.
그리드는 값 범위를 사용하기 때문에 덜 적합할 수도 있습니다. 그러나 항상 좋은 것은 아닙니다. 이론적인 수준을 얻으려면 스스로 그물을 잘라야 한다고 생각합니다.
간단히 말해서 최대 값은 65,000입니다. 이러한 그리드를 설정하면 수동으로 증기 목욕을 할 수 없습니다.
https://www.mql5.com/en/articles/8385
좋은 구현이 있다는 사실이 아님)
러시아어로 나는 패스
나는 이것을 읽었다))) 계산에 많은 오류가 있고 네트워크는 다소 무작위적인 답변을 제공합니다
그런 다음 uchar 사용할 수 있습니다. 1바이트입니다.
간단히 말해서 최대 값은 65,000입니다. 이러한 그리드를 설정하면 수동으로 증기 목욕을 할 수 없습니다.
한계 크기는 65535이지만 코드의 변수에 영향을 줄 수는 없습니다.
그러나 최대 크기에 대해 - 아니요, 데이터 스트립에 대한 조정과 거짓말하는 것 근처에 패스가있을 수 있으므로 결과를 보장하지 않습니다.
일반적으로 범위(A>10 && A<=15)를 닫는 분할의 적절성을 항상 확인하는 학습 알고리즘을 갖는 것이 좋을 것입니다. 그렇지 않으면 일반적으로 다소 무작위로 발생합니다. 이러한 필수 조건은 없지만 때때로 재생산됩니다.
나는 이것을 읽었다))) 계산에 많은 오류가 있고 네트워크는 다소 무작위적인 답변을 제공합니다
네트워크를 직접 작성하시겠습니까?
여기의 물에는 최소 단어와 최대 파이썬 코드가 있지만 영어도 있습니다.
https://datascience-매니아.com/DL/Building_a_Recurrent_Neural_Network-Step_by_Step_v1.html
네트워크를 직접 작성하시겠습니까?
여기의 물에는 최소 단어와 최대 파이썬 코드가 있지만 영어도 있습니다.
https://datascience-매니아.com/DL/Building_a_Recurrent_Neural_Network-Step_by_Step_v1.html
예, 직접 원합니다) 모든 기사에서 활성화 함수의 예가 올바르게 고려되지 않기 때문입니다. 예를 들어, sigmoid는 모든 곳에서 1/1 + exp(-x)로 간주됩니다. 그리고 1.0/1.0+exp(-x)가 필요합니다. 그것은 같은 것을 쓴 것 같지만 터미널은 다른 계산을 제공합니다) 보기, 아마도 당신도 같은 방식으로 생각할 수 있음) 따라서 오류.