2019년 세이지 메이커의 한스앙이 당한 오류(2021년 4월 집필) 처리에 관한 일

개시하다


안녕하세요.
Watanabe Jin(@Sicut study).
예전에 Qita에 글을 올렸는데 천천히 젠으로 옮기고 싶어서 작은 기사를 들려드리고 싶었어요.
이것 때문에 괴로워하는 사람은 없을지도 모르지만, 다른 사람의 참고가 되었으면 좋겠다고 생각합니다.
그럼, 오늘 발생한 문제
기계 학습 엔지니어를 위한 체험
https://pages.awscloud.com/event_JAPAN_hands-on-ml_ondemand.html
여기 갔는데 초기에 오류가 생겨서 못 해서 AWS에 문의해서 해결했으니까 해법을 게재하려고 했어요.
내가 글을 쓴 것은 2021年4月23日이다.나중에 라이브러리가 변경될 수 있으므로 사용할 수 없습니다.
제가 일하는 회사에서는 머신러닝 제품을 만들려고 하는데, 이 환경으로 AWS를 사용하는 것도 곧 한 손이 될 것 같아서 먼저 인터넷에서 해슨을 하고 싶었는데, 오류가 초기에 나와서 아무리 해도 전진하지 않으려고 고생했어요.
결과는 AWS에 직접 물어보면 해결되니 총괄해 봅시다.
1년여 전 해슨이라 현재 버전에 문제가 많다.
지금부터 이 오래된 사냥꾼자리에 얼마나 많은 사람들이 놀아야 할지 모르겠지만, 도움이 됐으면 좋겠어요.

발생한 오류


이 검사에서 random_cut_forest.ipynb를 이용한 이상 검출(첫 번째로 처리된 파일)은 다음과 같은 두 가지 오류가 발생합니다.
다음 설명에서 먼저 칸을 추가합니다
실행
!pip install sagemaker==1.72
을 통해 프로그램에 따라 오류를 처리할 수 있습니다.

세 번째 줄 "Series" object has no attribute"asmatrix'


세 번째 줄 코드가 잘못되었습니다.
from sagemaker import RandomCutForest
from sagemaker import get_execution_role
from sagemaker import Session

sess = Session()
bucket = sess.default_bucket()
prefix = 'notebook/rcf/taxi'

# specify general training job information
rcf = RandomCutForest(role=get_execution_role(),
                      train_instance_count=1,
                      train_instance_type='ml.m4.xlarge',
                      data_location=('s3://{}/{}/'+data_dir).format(bucket, prefix),
                      output_path='s3://{}/{}/output'.format(bucket, prefix),
                      num_samples_per_tree=512,
                      num_trees=50)

# automatically upload the training data to S3 and run the training job
rcf.fit(rcf.record_set(taxi_data.value.as_matrix().reshape(-1,1)))
오류는 다음과 같습니다.
train_instance_count has been renamed in sagemaker>=2.
See: https://sagemaker.readthedocs.io/en/stable/v2.html for details.
train_instance_type has been renamed in sagemaker>=2.
See: https://sagemaker.readthedocs.io/en/stable/v2.html for details.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-906e26861145> in <module>
     17 
     18 # automatically upload the training data to S3 and run the training job
---> 19 rcf.fit(rcf.record_set(taxi_data.value.as_matrix().reshape(-1,1)))

~/anaconda3/envs/python3/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
   5139             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5140                 return self[name]
-> 5141             return object.__getattribute__(self, name)
   5142 
   5143     def __setattr__(self, name: str, value) -> None:

AttributeError: 'Series' object has no attribute 'as_matrix'
Python3.시즌7matrix () 방법을 추천하지 않습니다.사용할 수 없습니다.
아래와 같이 as_matrix()values로 변경한 후 이동할 수 있다.
from sagemaker import RandomCutForest
from sagemaker import get_execution_role
from sagemaker import Session

sess = Session()
bucket = sess.default_bucket()
prefix = 'notebook/rcf/taxi'

# specify general training job information
rcf = RandomCutForest(role=get_execution_role(),
                      train_instance_count=1,
                      train_instance_type='ml.m4.xlarge',
                      data_location=('s3://{}/{}/'+data_dir).format(bucket, prefix),
                      output_path='s3://{}/{}/output'.format(bucket, prefix),
                      num_samples_per_tree=512,
                      num_trees=50)

# automatically upload the training data to S3 and run the training job
# valuesに変更
rcf.fit(rcf.record_set(taxi_data.value.values.reshape(-1,1)))
이하의 코드도 as일 수 있다matrix () 를 사용했기 때문에values로 변경하십시오.
(values가 아님()

2. can't set attribute


7행에 오류가 발생했습니다.
from sagemaker.predictor import csv_serializer, json_deserializer

rcf_inference.content_type = 'text/csv'
rcf_inference.serializer = csv_serializer
rcf_inference.accept = 'application/json'
rcf_inference.deserializer = json_deserializer
오류는 다음과 같습니다.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-6baf8918ddf5> in <module>
      1 from sagemaker.predictor import csv_serializer, json_deserializer
      2 
----> 3 rcf_inference.content_type = 'text/csv'
      4 rcf_inference.serializer = csv_serializer
      5 rcf_inference.accept = 'application/json'

AttributeError: can't set attribute
SageMaker의 버전이 낡아서 발생한 오류로 AWS의form도 같은 화제를 모았다.
https://forums.aws.amazon.com/thread.jspa?threadID=333494
이 문제를 해결하려면 버전을 SageMaker 1.72로 업그레이드해야 합니다.
코드의 첫 줄
!pip install sagamaker==1.72
에 커널을 재부팅하면 오류가 발생하지 않습니다.

끝맺다


처음으로 제인을 투고해 보았다.
나는 조금 어릴 때부터 향상해서 조금씩 옮기고 싶다.
역시 Qita가 보는 사람이 많아 보이는 기사는 그쪽에 투고하는 게 좋겠지만, 선배가 젠으로 옮기는 게 좋겠다고 했으니까 저도 열심히 하고 싶어요.
AWS를 거의 해본 적이 없어요. 모르는 일이지만 SageMaker를 사용할 수 있게 되고 싶어서 다양한 사냥꾼자리를 찾거나 만지고 싶어요.

좋은 웹페이지 즐겨찾기