본문 바로가기
반응형

전체 글334

에디터 기능별 단축키 VS CodeAndroid StudioXcodejump to definitionf12cmd + bcmdcursor historyctrl + -, ctrl + shift + -cmd opt  generator cmd + enter wrap widgetcmd + .opt + enter auto completectrl + space ctrl + space multiple selectioncmd + dctrl + g find in filescmd + shift + fcmd + shift + f find filecmd + pshift shift find symbolcmd + shift + o(현재파일만)cmd + p 하고 #(전체파일)shift shift auto indentshift + opt + fcmd + .. 2024. 10. 7.
flutter gpu 예제 분석 https://github.com/bdero/flutter-gpu-examples GitHub - bdero/flutter-gpu-examplesContribute to bdero/flutter-gpu-examples development by creating an account on GitHub.github.com https://medium.com/flutter/getting-started-with-flutter-gpu-f33d497b7c11       flutter에서 gpu 코드 지원이 가능해졌다고 한다. 관련 내용에 대한 공식사이트 블로그를 보고 예제가 작동이 안되어서 작성자의 깃허브에 들어가 예제코드를 보고 분석하기로 하였다.   간단한 잡지식들GPU 사용법인 초보인 나에게 대충 돌아가는 원리를.. 2024. 9. 11.
맥북에서 LLaMa 파인튜닝 하는방법 하루종일 튜닝방법 찾고 고생하다가 nvidia gpu가 없으면 안되는 이슈를 겪고 포기하던 찰나 애플의 mlx 프레임워크를 사용하고 해결했다. 진짜 애플님들께 감사드린다. 라마 튜닝은 맥북에서 정말 미치도록 쉽다 mlx는 대충 애플실리콘 잘돌아가게 만든 pytorch라고 생각하면 된다. 사용법은 파이토치와 완전 똑같다. 함수이름만 다름.    1. 초간단 개념 정리 llm을 파인튜닝할 때 보통 lora라는놈을 이용한다 이 lora는 모델 자체를 변형시키지 않고, 모델이 어떻게 변해야되는지에 대한 데이터를 내놓는다. 그걸 adapter라고 한다 그리고 adapter와 기존 모델을 fuse 하면 새로운 모델이 나온다.    2. 설치pip install mlx mlx-lm   3. config.yaml 파일.. 2024. 9. 9.
파이토치 큰그림 정리 회사에서 해커톤 대회에 출전할 때 텐서플로우로 이미지 분류를 써본적이 있다.  이번에도 다시 ai를 쓸 일이 있어서 이번에는 파이토치로 도전해보게 되었다. 매번 까먹고 다시공부하고 해서 이번에는 간단히 정리하려 한다    1. 큰그림에서 돌아가는 구조 우리가 일반적으로 아는 인공지능 트레이닝은 흔히 생각하는 신경망 구조를 만든뒤 데이터 넣어주는 작업이다.여기서 막막한 부분은 신경망을 어떻게 구성하고 짜야하는가 인데, 결국 trial and error다. 아무도 모르다는거임 이것만 기억하고 가면 된다.   2. 키워드 한줄요약으로 외우자 텐서 : 인공지능의 넘파이배열 같은거임. 데이터 단위CNN : 이미지 분류같은 2차원에 사용되는 신경망RNN : 1차원에 사용되는 신경망히든레이어 : 신경망 구성할때 세로.. 2024. 9. 5.
연속적인 애니메이션을 만드는 방법 1. Interval을 이용하는 방법 CurvedAnimation을 만들 때 Interval값을 주면 Parent 의 애니메이션 기간에 어떤 부분에서 애니메이션이 실행되고 종료될 지 결정할 수 있다.  2. TweenSequence를 이용하는 방법 https://api.flutter.dev/flutter/animation/TweenSequence-class.html TweenSequence class - animation library - Dart APIEnables creating an Animation whose value is defined by a sequence of Tweens. Each TweenSequenceItem has a weight that defines its percentage .. 2024. 8. 22.
Bloc에서 event를 await 하는 방법 그런거 없다  하지만 다른 방법은 있다. 바로 callback 을 사용하면 된다.  bloc에서 이벤트를 await 하고 싶은 목적은 아마 state 변경 이벤트를 날리고 이후 변경된 state를 이용하여 무언가를 하기 위한 것 일 것이다. 답은 간단하다. state 를 emit 한 후 콜백을 이용하여 이후 작업을 마저 수행해주면 된다.   final class MyEvent extends StudyEvent { void Function()? callback; StopStudyEvent({ this.callback, });}  myBloc.add(MyEvent( callback: () async { 하고싶은일 적으면 된다 } }));  이렇게 이벤트에 콜백을 받아와.. 2024. 8. 14.
Dart의 class modifier 간단한 정리 매번 까먹어서 유튜브에서 아주 괜찮은 영상을 찾았다.   https://www.youtube.com/watch?v=n5WuBICxv_8   아래는 요약된 코드   abstract : 클래스 구현을 다 안해도 된다base : implement를 막는다interface : extends를 막는다final : extends와 implements를 막는다   abstract interface : 다른 언어의 pure interface 만들때 사용 라이브러리 외부일경우// NormalClass can be instantiated, extended, and implementedfinal normalClass = NormalClass();class Normall extends NormalClass {} class N.. 2024. 8. 13.
Child가 Rebuild 되지 않도록 하는 원리 플러터의 위젯을 보다보면 어떤 위젯들은 리빌드 될 때 child라는 변수를 받아서 리빌드가 되더라도 child 부분은 리빌드되지 않도록 재활용 한다.  이 원리가 궁금해서 ListenableBuilder를 분석해보았다     위 코드를 보면 이 위젯은 child를 생성자에 받아서 빌더 메소드에 활용한다.빌더 메소드의 정의를 보면 다음과 같다.  여기서 우리가 알 수 있는건, 빌더 메소드는 그저 위젯을 리턴하는 평범한 함수이다. 그리고 child를 받아 이를 위젯만드는데 활용하고 있다.  간단하게 정리하자면, A라는 위젯이 외부에서 만들어진 B라는 위젯을 생성자에서 받아, 이를 빌드 메소드에 사용한다면. 이때 리빌드 되더라도 B는 다시 리빌드 되지 않는다. 걍 한마디로 외부에서 만들어서 넘겨주면 재활용이 .. 2024. 7. 23.
위젯트리에서 중간에있는 위젯만 리빌드 하고 싶을 때 이전에 적은 AnimatedBuilder와 동일한 내용이다.   AnimatedBuilder의 상속관계를 보면 ListenableBuilder를 볼 수 있다.    여기서 ListenableBuidler 코드를 확인해보면 똑같이 child를 가짐을 알 수 있다.   고로 Listenable Builder와 ValueNotifier를 조합한 뒤 재활용을 할 때 child를 이용하면 위젯트리의 중간만 리빌드 할 수 있게된다 2024. 7. 22.
반응형