교수님 안녕하세요 . 개정되고 나서 다시 정주행 하고 있고 있습니다. 좋은 강의 감사드리고 교수님 강의들 머신러닝과 오라클 강의 또한 아주 잘 듣고 있습니다. 교수님 Yolo v3 Custom Dataset으로 학습 후 아래와 같이 텐소보드를 통한 결과 같은데 이 부분을 어떻게 해석을 하고 보완을 해야할 지 강좌 내용에는 아래와 같은 Train 에 대한 학습 Result 를 하는 내용을 아직 제가 찾지 못해서 데이터를 분석하고 이해하는 법을 알고자 이렇게 두루뭉실하게라도 여쭙니다. 감사합니다.
안녕하세요 강의 잘 듣고 있습니다. 마라톤 데이터 가공 2 강의를 듣던 중 Step 5단계에서 오류가 발생합니다. 사용하고 있는 파이썬 버전은 3.8.12이고 pandas 버전은 1.3.4입니다. 강의 내용대로 순차적으로 실습 진행 중 Step 5단계에서 오류가 발생하여 Step 5단계의 다른 내용을 모두 주석 후에 marathon_2015_2017['5K'] = pd.to_timedelta(marathon_2015_2017['5K']) 이 코드만 실행해 보았는데요 그럼에도 오류가 발생합니다. 혹시나 해서 csv파일을 열어 보았는데 시간데이터 중 '-' 로 표시된 부분이 종종 있었습니다. 제 생각에는 '-'라는 문자가 있으니 null도 아니고 시간데이터도 아니다 보니 문제가 발생하는 것 같은 예감입니다. 아래에 오류 내용을 그대로 첨부하겠습니다. 도움 주시면 감사하겠습니다. --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.array_to_timedelta64 () /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.parse_timedelta_string () ValueError : symbols w/o a number During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) /var/folders/zl/7hy5k6z55zz2b286tv4bbk740000gn/T/ipykernel_48790/1493613945.py in <module> 6 7 # Convert using pandas to_timedelta method ----> 8 marathon_2015_2017 [ '5K' ] = pd . to_timedelta ( marathon_2015_2017 [ '5K' ] ) 9 # marathon_2015_2017['10K'] = pd.to_timedelta(marathon_2015_2017['10K']) 10 # marathon_2015_2017['15K'] = pd.to_timedelta(marathon_2015_2017['15K']) /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/core/tools/timedeltas.py in to_timedelta (arg, unit, errors) 122 return arg 123 elif isinstance ( arg , ABCSeries ) : --> 124 values = _convert_listlike ( arg . _values , unit = unit , errors = errors ) 125 return arg . _constructor ( values , index = arg . index , name = arg . name ) 126 elif isinstance ( arg , ABCIndex ) : /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/core/tools/timedeltas.py in _convert_listlike (arg, unit, errors, name) 171 172 try : --> 173 td64arr = sequence_to_td64ns ( arg , unit = unit , errors = errors , copy = False ) [ 0 ] 174 except ValueError : 175 if errors == "ignore" : /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/core/arrays/timedeltas.py in sequence_to_td64ns (data, copy, unit, errors) 989 if is_object_dtype ( data . dtype ) or is_string_dtype ( data . dtype ) : 990 # no need to make a copy, need to convert if string-dtyped --> 991 data = objects_to_td64ns ( data , unit = unit , errors = errors ) 992 copy = False 993 /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/core/arrays/timedeltas.py in objects_to_td64ns (data, unit, errors) 1098 values = np . array ( data , dtype = np . object_ , copy = False ) 1099 -> 1100 result = array_to_timedelta64 ( values , unit = unit , errors = errors ) 1101 return result . view ( "timedelta64[ns]" ) 1102 /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.array_to_timedelta64 () /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.array_to_timedelta64 () /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.convert_to_timedelta64 () /opt/homebrew/Caskroom/miniforge/base/envs/DV/lib/python3.8/site-packages/pandas/_libs/tslibs/timedeltas.pyx in pandas._libs.tslibs.timedeltas.parse_timedelta_string () ValueError : symbols w/o a number
안녕하세요 윤상석 강사님. TypeORM의 트랜잭션 관련으로 질문이 있습니다. TypeORM에서 트랜잭션을 다루는 방법은 이전 질문글 에 답변해주셨듯이 크게 3가지인 것으로 알고 있습니다. 1. QueryRunner 2. getConnection, getManager 3. @Transactional 개인적으로는 @Transactional() 데코레이터를 사용하는것이 편리하여 사용하고 있었는데요. NestJS 공식문서 에서 데코레이터를 이용하는 것을 권장하지 않고 있고, 구글링을 해보아도 유닛 테스트에 어려움이 있어 권장하지 않는 분들이 많은 것을 알게되었습니다. 여기서 첫 번째 질문이 있습니다. Q1. "유닛 테스트에 어려움이 있다"는 이야기가 구체적으로 무슨 의미인지 궁금합니다. 모킹이 어렵다. 내 마음대로 제어가 불가능하다 등의 이야기가 이해는 가는데 와닿지는 않아서 질문드립니다. ---- QueryRunner 방식을 이용하게 되면 try-catch-finally 코드가 강제가 되는 것 같아보입니다. 여기서 두 번째 질문이 있습니다. Q2. 모든 에러를 감지하는 Filter를 적용해두었다면 QueryRunner를 사용하는 try-catch-finally 구문에서 에러 처리를 해버려 필터가 작동하지 않을 것 같은데 맞을까요? 맞다면, 만약 Filter에서 요청이 실패하였을 때의 로깅기능이 있다고 가정한다면 로깅기능이 작동하지 않을 것 같습니다. 그렇다면 catch 문에서 따로 Filter에서 구현한 로깅을 다시 구현해주어야 할까요? ---- 트랜잭션 처리를 도와주는 typeorm-transactional-cls-hooked 패키지를 발견하였습니다. 여기서 마지막 세 번째 질문이 있습니다. Q3. 해당 패키지는 유닛 테스를 할 때 트랜잭션 기능이 작동하지 않도록 모킹기능도 제공해주는 것 같습니다. QuerryRunner 보다 안 좋은점이 있다면 어떤 점이 있을까요? ---- 질문이 너무 많은 것 같아 죄송합니다. 좋은 강의와 답변해주셔서 항상 감사합니다.
안녕하세요! 저번 질문에서 강사님께서 라는 질문에 대하 라고 답변을 해주셨는데요! 그렇다면 다른 파일(예를 들어 RegisterPage.js 등 디스패치를 쓰는 곳들을 뜻합니다!) response.payload라고 쓰지 않고 loginSuccess, register,userData 등의 스토어에 저장된 값을 다른 파일에서 직접 사용하고 싶다면 어떻게 해야되나요? 강의에서도 스토어에 있는 값을꺼내쓰지않고 와 같이 직접 처리를 해주었는데, 특별한 이유가 있나요 ?? 감사합니다.
리덕스에서 관리되는 데이터는 props로 넘기는 대신 redux 접근해서 바로 가져와도 성능적인면에서 크게 상관없나요? 컴포넌트끼리 props 넘기는 과정이 귀찮고 나중에 코드볼때 어떤 데이터가 넘어가야되는지 확인해야되서 리덕스로 웬만한건 다 처리하려고하는데 상관없나요?
안녕하세요. typescript 와 create-react-app 을 사용하여 공부중인데요. 커스텀 훅을 만들어서 비동기 API를 호출하여 테이블에 노출하는 기능을 구현하다가 도저히 답이 안나와서 질문드립니다. useState와 useEffect 를 사용하여 비동기 API를 set 하는 커스텀훅을 만들었고, axios 를 호출하는 별도의 파일을 만들어서 사용중인데 const [items , setItems] = useState <coronaApiProps[]>() ; const coronaItems = getCorona () ; useEffect (() => { setItems(coronaItems) ; } , []) ; 이렇게 사용하니 아래처럼 에러가 나타납니다. TS2345: Argument of type 'Promise<coronaApiProps[]>' is not assignable to parameter of type 'SetStateAction<coronaApiProps[] | undefined>'. Type 'Promise<coronaApiProps[]>' is not assignable to type '(prevState: coronaApiProps[] | undefined) => coronaApiProps[] | undefined'. Type 'Promise<coronaApiProps[]>' provides no match for the signature '(prevState: coronaApiProps[] | undefined): coronaApiProps[] | undefined'. coronaApiProps 는 제가 만든 인터페이스입니다. 해당 에러가 나타나서 useEffect 안에 const [items , setItems] = useState <coronaApiProps[]>() ; // axios 로 api 호출 const coronaItems = getCorona () ; useEffect (() => { coronaItems. then (response => { setItems(response) ; }) ; } , []) ; 이렇게 사용하니 커스텀훅을 두번 호출합니다. 그래서 axios 파일을 분리하지 않고 커스텀훅 안에 사용하면 커스텀훅을 한번만 사용합니다. api를 호출하는 axios 파일을 분리하고 사용할 수 없나요? 필요하면 github 추가해드릴 수 있습니다.
이전 과정까지는 잘따라왔는데 어느순간부터 npm start시 오류가 납니다. 1. visual studio code - 터미널에서 실행하는것과 / window [cmd]에서 실행하는것과 같은것이죠? 2, package.json / package-lock.json 두파일은 실행하는 프로젝트 안에 존재하면 되나요? 3. node_modules 을 삭제해도 해결이 되지 않아 답답합니다. 초기 오류는 webpack version이 달라서 생긴 문제였는데 지금은 프로젝트 폴더에서 npm start시 아래와 같은 오류가 뜨는데 도움 주실수 있나요 ㅜ 'react-scripts'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! suspense@0.1.0 start: `react-scripts start` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the suspense@0.1.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm WARN Local package.json exists, but node_modules missing, did you mean to install? npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\seulki-office\AppData\Roaming\npm-cache\_logs\2021-11-16T08_31_43_225Z-debug.log
강의와 관련없지만 , 구글창키면 처음 나오는 페이지입니다! 웹팩 관련한 페이지 같은데 혹시 어떻게 설정하신건가요 ?! 추가로 private로 설정하면 AWS S3에서 올라간 이미지들을 불러올 때 캐싱이 적용이 안되는건가요 ? 내 브라우저 기준이 어떤건지 잘 모르겠습니다.
안녕하세요 딥러닝을 구글colab을 이용하여 공부중인데 현재 이미지 학습 부분을 공부하고 있습니다. 하지만 결제를 하여도 런타임이 24시간이 한계라 훈련이 자꾸 중단되어 epoch를 전부 학습하지 못하고 있습니다! 그래서 1epoch마다 checkpoint를 저장하는 방법을 사용하여 훈련을 하고 있고, 현재 잘 저장이 되고 있습니다. 하지만 저는 항상 3/10 epoch에서 24시간이 지나 훈련이 중단 되는데 그러면 이때 3 까지 저장된 checkpoint를 불러와서 다시 4epoch부터 재 학습을 시킬수 있는방법이 궁금합니다! 검색을 해 보았지만 전부 학습이 완료된 데이터를 불러오는 예제 밖에 없어서 질문 남깁니다! 제가 사용한 코드는 아래와 같습니다. from fastai.imports import * from tensorflow.keras import datasets, layers, models, losses, Model from tensorflow import keras import tensorflow as tf from keras.layers import Dense,Dropout,Activation,Add,MaxPooling2D,Conv2D,Flatten,BatchNormalization from keras.models import Sequential from keras.preprocessing.image import ImageDataGenerator from keras import layers import seaborn as sns from keras.preprocessing import image import numpy as np import cv2 from google.colab.patches import cv2_imshow import matplotlib.pyplot as plt plt.style.use('seaborn-white') data_path = '/content/drive/MyDrive/train_val_data' train_dir = os.path.join(data_path,'train') val_dir = os.path.join(data_path,'test') classes = os.listdir(train_dir) train_datagen = tf.keras.preprocessing.image.ImageDataGenerator( width_shift_range = 0.2, height_shift_range = 0.2, zoom_range = 0.2, vertical_flip=True, rescale = 1. / 255, fill_mode='nearest') val_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale = 1. / 255) train_generator = train_datagen.flow_from_directory( train_dir, target_size=(224,224), batch_size = 32, class_mode = 'categorical' ) val_generator = val_datagen.flow_from_directory( val_dir, target_size=(224,224), batch_size = 32, class_mode = 'categorical' ) base_model = tf.keras.applications.ResNet50(weights = 'imagenet', include_top = False, input_shape = (224,224,3)) for layer in base_model.layers: layer.trainable = False x = layers.Flatten()(base_model.output) x = layers.Dense(720, activation='relu')(x) predictions = layers.Dense(360, activation = 'softmax')(x) opt = tf.keras.optimizers.Adam(learning_rate=0.001) checkpoint_path = "/content/drive/MyDrive/training_resnet50/resnet50_cp.ckpt" checkpoint_dir = os.path.dirname(checkpoint_path) # 체크포인트 콜백 만들기 cp_callback = tf.keras.callbacks.ModelCheckpoint(checkpoint_path, save_weights_only=True, verbose=1) head_model = Model(inputs = base_model.input, outputs = predictions) head_model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy']) history = head_model.fit(train_generator, validation_data=val_generator, batch_size=32, epochs=100, callbacks = [cp_callback])
ImportError : /usr/local/lib/python3.7/dist-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at5sliceERKNS_6TensorElN3c108optionalIlEES5_l 런타임 다시 시작 후 실행해도 위와 같은 오류가 나옵니다.