데이터 테이블간에 많은 큰 수식 (신경망)을 복사하는 것은 매우 느립니다.신경망 모델링에 사용되는 10000 행 x 100+ 열의 데이터 집합이 있습니다. 20 노드 x 100 입력 / 노드의 75 가지 모델을 만들고 빠른 공식을 사용하여 공식을 저장했습니다. 나는 각각 75 개의 모델을 가진 10 개의 서로 다른 테이블 (동일한 데이터 세트, 다른 모델링)을 가지고 있으며 모든 모델 (수식)을 하나의 마스터 테이블로 병합하고 싶습니다. 모든 모델을 수집하는 새로운 데이터에 적용하고 싶습니다.
내가 시도하는 모든 방법은 영원히 걸립니다. 수식 복사 추가 기능을 사용하여 각 테이블의 수식을 단일 테이블에 복사했으며 모든 테이블 병합을 완료하는 데 약 2 일이 소요되며 진행 상태가 표시되지 않고 여전히 작동하는지 또는 알 수 없습니다. 겨울 왕국.
나는 행을 하나의 테이블로 가져 오기 위해 수식 계산 억제와 일치시켜 조인을 사용했습니다. 그러나 수식 열을 수동으로 선택하고 열> 표준 속성 특성> 열 속성> 수식> 공급자 평가를 사용하여 수식 평가를 다시 설정하면 750 개의 수식을 다시 계산하는 데 시간이 오래 걸립니다. 30 시간 동안 실행되었으며 (프로세서 사용률 12 %로 최대) 진행 상황을 알 수 없습니다.
수식 평가를 켜기 위해 한 번에 하나씩 열을 반복하려고 시도했지만 1 열에 대해이 작업을 수행하는 데 5 분이 걸렸으므로 엄청나게 길어 보입니다.
이 속도를 높일 수있는 방법이 있습니까? 해결 방법이 있지만 이것이 훨씬 쉽고 빠를 것 같습니다.
다시 : 데이터 테이블 사이에 많은 큰 수식 (신경 그물)을 복사하는 것은 매우 느립니다'더 큰'문제로 인해 세부 사항 중 일부 또는 전부를 모르더라도 효율성에 대한 일반적인 조언을 제공하기가 어렵습니다. 아직 시작하지 않은 경우 'Begin Data Update ()'및 'End Data Update ()'테이블 메시지의 영향을보고 수식을 평가하는 방식을 제어 할 수 있습니다. FWIW, 내 본능은 당신이 포뮬러 디포 중개자로서. 나는 이것을 확인하기 위해 코드를 작성하기 시작했지만이 크기의 문제에 대해서는 모델링 자체가 다소 시간이 걸리므 로이 길을 계속하지 못했습니다.
NamesDefaultToHere(1);
// Define the data volume
nr = 100;
nc = 10;
// Make some random data
dt = AsTable(J(nr, nc, RandomNormal(0, 1)));
dt << setName("Random Data");
// Fit neural and publish prediction formula
cols = dt << getColumnNames("String");
yCol = cols[NItems(cols)];
RemoveFrom(cols, NItems(cols));
nn = dt << Neural(Y(Eval(yCol)), X(Eval(cols)), Fit( NTanH( 3 ) ), Invisible);
nn(Fit(1)) << publishPredictionFormula;
Report(nn) << closeWindow;
다시 : 데이터 테이블 사이에 많은 큰 수식 (신경 그물)을 복사하는 것은 매우 느립니다안녕 이안,
빠른 답변 감사합니다. 방금 모든 수식으로 Add Formula From Column으로 Formula Depot 방법을 시도했지만 스크립트 작성이 빠릅니다. Formula Columns가 제거 된 중복 테이블에서 Run Scripts (6 개의 스크립트 실행)를 테스트했을 때 매우 빠릅니다. 여태까지는 그런대로 잘됐다. 그런 다음 동일한 테이블에서 모든 스크립트를 실행하려고하면 빠르게 시작되었지만 더 많은 열이 만들어 짐에 따라 점차 느려졌습니다 (열 창에서 열이 생성되는 것을 볼 수 있음). 결국 얼어 붙은 것처럼 보입니다 (5 분 안에 새 열이 생성되지 않음). 흠. 나는 그것이 도움이되는지 확인하기 위해 작은 배치로 시도해 볼 것입니다.
다시 : 데이터 테이블 사이에 많은 큰 수식 (신경 그물)을 복사하는 것은 매우 느립니다수식이 모두 동시에 다시 계산되고 프로세서 시간과 경쟁하는지 궁금합니다.
다시 : 데이터 테이블 사이에 많은 큰 수식 (신경 그물)을 복사하는 것은 매우 느립니다한 번에 100 개의 수식으로 Formula Depot에서 Run Script를 시도했습니다. 처음 100 개는 합리적으로 빨랐습니다. 두 번째 100은 크롤링 속도가 느려지고 정지 한 것처럼 보입니다.
<< Begin Data Update ...에 래핑하여 Formula Depot의 모든 수식에 대한 스크립트를 복사하려고했습니다. << 데이터 업데이트 종료.
Suppress Eval (1)로 복사 한 수식 열에서 Suppress Eval (0)을 실행하려고했습니다. << Begin Data Update .... Col (i) Suppress Eval (0) ...... Wait (0) << End Data Update에 래핑 된 열을 반복했습니다. 나는 10 열을 시도했다. 작동하지 않았다.
지금까지 내가 시도한 것은 수식 평가를 설정하고 테이블에 수동으로 행을 조인하는 것보다 빠르게 작동했지만 며칠이 걸렸습니다 .....
추신 : 실행중인 스크립트를 깨는 방법이 있습니까?