Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Week_06 장윤영 #66

Open
wants to merge 61 commits into
base: week_06
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
6edba38
Update README.md
forwarder1121 Jul 7, 2024
d1a4dd0
Update README.md\
forwarder1121 Jul 7, 2024
b74db79
Update README.md
forwarder1121 Jul 7, 2024
846a882
Update README.md
forwarder1121 Jul 7, 2024
f146ac6
Update README.md
forwarder1121 Jul 7, 2024
894c100
Update README.md
forwarder1121 Jul 12, 2024
fe64b0c
Update README.md
forwarder1121 Jul 12, 2024
da6b549
Update README.md
forwarder1121 Jul 12, 2024
428c90d
Update README.md
forwarder1121 Jul 14, 2024
6e13d74
Merge pull request #6 from konkuk-kuggle/forwarder1121-patch-1
forwarder1121 Jul 14, 2024
2da8bff
Update README.md
forwarder1121 Jul 14, 2024
d4625a2
Create update_submission_status.yml
forwarder1121 Jul 14, 2024
41280ad
Create update_submission_status.py
forwarder1121 Jul 14, 2024
748f0e0
Update README.md
forwarder1121 Jul 14, 2024
be2e181
Update README.md
forwarder1121 Jul 14, 2024
2b7018a
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
f491a1a
Update README.md
forwarder1121 Jul 14, 2024
1b74c89
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
5651ab6
Update update_submission_status.py
forwarder1121 Jul 14, 2024
8aa7f52
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
f09a597
Update update_submission_status.py
forwarder1121 Jul 14, 2024
1c7b99a
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
b8cd34a
Update update_submission_status.py
forwarder1121 Jul 14, 2024
0c48637
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
18221df
Update update_submission_status.py
forwarder1121 Jul 14, 2024
0dd3338
Update update_submission_status.py
forwarder1121 Jul 14, 2024
f89870f
Update update_submission_status.py
forwarder1121 Jul 14, 2024
dd67cb6
Update update_submission_status.yml
forwarder1121 Jul 14, 2024
a6bfe88
Update update_submission_status.py
forwarder1121 Jul 14, 2024
532fd85
Create basic_test.yml
forwarder1121 Jul 14, 2024
758ec6f
Create basic_test.yml
forwarder1121 Jul 14, 2024
ec881d5
DELETE
forwarder1121 Jul 14, 2024
443a158
DELETE
forwarder1121 Jul 14, 2024
50fb342
PUSH
forwarder1121 Jul 14, 2024
3c0cf0c
DELETE
forwarder1121 Jul 14, 2024
80f251f
PUSH
forwarder1121 Jul 14, 2024
f674fbd
PUSH
forwarder1121 Jul 14, 2024
7a66877
버그 수정
forwarder1121 Jul 14, 2024
19cd96a
Bug Fix
forwarder1121 Jul 14, 2024
e5b0669
TEst
forwarder1121 Jul 14, 2024
ae69260
Push
forwarder1121 Jul 14, 2024
18aaa89
push
forwarder1121 Jul 14, 2024
ccc2d89
bug fix
forwarder1121 Jul 14, 2024
29ee16e
push
forwarder1121 Jul 14, 2024
313214d
Add files via upload
yunyeong02 Jul 14, 2024
3c65ba5
Add files via upload
yunyeong02 Jul 21, 2024
3007ac7
3주차 정리
yunyeong02 Jul 28, 2024
70bc205
4주차
yunyeong02 Aug 4, 2024
5c80e6e
Rename IMG_0650.jpeg to 4주차 정리
yunyeong02 Aug 4, 2024
ac3a2e2
Rename IMG_0635.jpeg to 3주차 정리
yunyeong02 Aug 4, 2024
5e39500
Add files via upload
yunyeong02 Aug 11, 2024
60cf292
Rename IMG_0674.jpeg to 5주차 정리
yunyeong02 Aug 11, 2024
5a67a51
Add files via upload
yunyeong02 Aug 17, 2024
bb0b19e
Rename IMG_0684.jpeg to 6주차 정리
yunyeong02 Aug 17, 2024
b78b932
7주차 정리
yunyeong02 Aug 25, 2024
836854e
Rename IMG_0723.jpeg to 7주차 정리
yunyeong02 Aug 25, 2024
539f4d2
Rename 3주차 정리 to 3주차 정리.jpg
yunyeong02 Aug 25, 2024
d2e6bc7
Rename 4주차 정리 to 4주차 정리.jpg
yunyeong02 Aug 25, 2024
4ebfd49
Rename 5주차 정리 to 5주차 정리.jpg
yunyeong02 Aug 25, 2024
5cc390e
Rename 6주차 정리 to 6주차 정리.jpg
yunyeong02 Aug 25, 2024
8d87875
Rename 7주차 정리 to 7주차 정리.jpg
yunyeong02 Aug 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/basic_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Basic Test

on:
push:
branches:
- main

jobs:
test_job:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Run a one-line script
run: echo "GitHub Actions are working!"
51 changes: 51 additions & 0 deletions .github/workflows/update_submission_status.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Update Submission Status

on:
pull_request:
branches:
- '*'

jobs:
update_status:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'

- name: Install dependencies
run: pip install requests PyGithub

- name: Extract information from PR title
id: extract_info
run: |
echo "PR_TITLE=${{ github.event.pull_request.title }}" >> $GITHUB_ENV
echo "PR_CREATED_AT=${{ github.event.pull_request.created_at }}" >> $GITHUB_ENV
echo "PR Title: ${{ github.event.pull_request.title }}"
echo "PR Created At: ${{ github.event.pull_request.created_at }}"
if [[ "${{ github.event.pull_request.title }}" =~ ^Week_([0-9]+)\ (.*)$ ]]; then
echo "WEEK=${BASH_REMATCH[1]}" >> $GITHUB_ENV
echo "PARTICIPANT=${BASH_REMATCH[2]}" >> $GITHUB_ENV
echo "Extracted WEEK: ${BASH_REMATCH[1]}"
echo "Extracted PARTICIPANT: ${BASH_REMATCH[2]}"
else
echo "Invalid PR title format"
exit 1
fi

- name: Check GITHUB_TOKEN
run: echo "MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}"

- name: Run update script
run: python update_submission_status.py
env:
MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
GITHUB_HEAD_REF: ${{ env.PR_TITLE }}
GITHUB_EVENT_PR_CREATED_AT: ${{ env.PR_CREATED_AT }}
WEEK: ${{ env.WEEK }}
PARTICIPANT: ${{ env.PARTICIPANT }}
Binary file added 2주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 3주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 4주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 5주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 6주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 7주차 정리.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added IMG_0567.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 40 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ CS231n은 스탠포드 대학교에서 제공하는 '딥 러닝을 활용한 컴
- **방식**: 비대면 각 주마다 2강씩 학습, 해당 주차 일요일 23:59까지 블로그에 정리 포스팅하고 링크 제출하기
- **패널티**: 총 8만원 보증금, 포스팅 미실시 시 1만원씩 차감

해당 주차의 브랜치에 포스팅 글 링크를 Pull requests로 제출하시면 됩니다!
해당 주차의 브랜치에 포스팅 글 링크를 Pull requests로 제출하시면 됩니다!
블로그 플랫폼은 네이버 블로그, 티스토리, 깃허브 블로그 등 자유롭게 선택하시면 됩니다.
또한, 포스팅 양식 또한 본인이 기록하기 쉬운 방식으로 자유롭게 기록하시면 됩니다.

## 💬 스터디의 효과
다른 사람이 정리한 블로그 링크를 보면서 다양한 생각을 공유하고, 같은 강의를 들으며 궁금한 점이나 모르는 부분을 질문하여 학습 효과를 증가시킬 수 있습니다.
Expand All @@ -29,22 +31,44 @@ CS231n은 스탠포드 대학교에서 제공하는 '딥 러닝을 활용한 컴

## 📅 커리큘럼


| Week | Start Date | End Date | Description | Course Materials |
|--------|---------------------|---------------------|---------------------------|--------------------------|
| Week 1 | 2024.07.08(Mon) | 2024.07.14(Sun) | 07/09 Lecture 1: Introduction Computer vision overview, Course overview, Course logistics | [slides 1] [slides 2] |
| | | | 07/11 Lecture 2: Image Classification with Linear Classifiers The data-driven approach, K-nearest neighbor, Linear Classifiers, Algebraic / Visual / Geometric viewpoints, SVM and Softmax loss | [slides] |
| Week 2 | 2024.07.15(Mon) | 2024.07.21(Sun) | 07/16 Lecture 3: Regularization and Optimization Regularization, Stochastic Gradient Descent, Momentum, AdaGrad, Adam, Learning rate schedules | [slides] |
| | | | 07/18 Lecture 4: Neural Networks and Backpropagation Multi-layer Perceptron, Backpropagation | [slides] |
| Week 3 | 2024.07.22(Mon) | 2024.07.28(Sun) | 07/23 Lecture 5: Image Classification with CNNs History, Higher-level representations, image features, Convolution and pooling | [slides] |
| | | | 07/25 Lecture 6: CNN Architectures Batch Normalization, Transfer learning, AlexNet, VGG, GoogLeNet, ResNet | [slides 1] [slides 2] [review] |
| Week 4 | 2024.07.29(Mon) | 2024.08.04(Sun) | 07/30 Lecture 7: Recurrent Neural Networks RNN, LSTM, GRU, Language modeling, Image captioning, Sequence-to-sequence | [slides] |
| | | | 08/01 Lecture 8: Attention and Transformers Self-Attention, Transformers | [slides] |
| Week 5 | 2024.08.05(Mon) | 2024.08.11(Sun) | 08/06 Lecture 9: Object Detection and Image Segmentation Single-stage detectors, Two-stage detectors, Semantic/Instance/Panoptic segmentation | [slides] |
| | | | 08/08 Lecture 10: Video Understanding Video classification, 3D CNNs, Two-stream networks, Multimodal video understanding | [slides] |
| Week 6 | 2024.08.12(Mon) | 2024.08.18(Sun) | 08/13 Lecture 11: Visualizing and Understanding Feature visualization and inversion, Adversarial examples, DeepDream and style transfer | [slides] |
| | | | 08/15 Lecture 12: Self-supervised Learning Pretext tasks, Contrastive learning, Multisensory supervision | [slides] |
| Week 7 | 2024.08.19(Mon) | 2024.08.25(Sun) | 08/20 Lecture 13: Generative Models Generative Adversarial Network, Diffusion models, Autoregressive models | [slides] |
| Week 1 | 2024.07.08(Mon) | 2024.07.14(Sun) | 07/09 Lecture 1: Introduction Computer vision overview, Course overview, Course logistics | [slides 1](https://cs231n.stanford.edu/slides/2024/lecture_1_part_1.pdf) [slides 2](https://cs231n.stanford.edu/slides/2024/lecture_1_part_2.pdf) |
| | | | 07/11 Lecture 2: Image Classification with Linear Classifiers The data-driven approach, K-nearest neighbor, Linear Classifiers, Algebraic / Visual / Geometric viewpoints, SVM and Softmax loss | [slides](https://cs231n.stanford.edu/slides/2024/lecture_2.pdf) |
| Week 2 | 2024.07.15(Mon) | 2024.07.21(Sun) | 07/16 Lecture 3: Regularization and Optimization Regularization, Stochastic Gradient Descent, Momentum, AdaGrad, Adam, Learning rate schedules | [slides](https://cs231n.stanford.edu/slides/2024/lecture_3.pdf) |
| | | | 07/18 Lecture 4: Neural Networks and Backpropagation Multi-layer Perceptron, Backpropagation | [slides](https://cs231n.stanford.edu/slides/2024/lecture_4.pdf) |
| Week 3 | 2024.07.22(Mon) | 2024.07.28(Sun) | 07/23 Lecture 5: Image Classification with CNNs History, Higher-level representations, image features, Convolution and pooling | [slides](https://cs231n.stanford.edu/slides/2024/lecture_5.pdf) |
| | | | 07/25 Lecture 6: CNN Architectures Batch Normalization, Transfer learning, AlexNet, VGG, GoogLeNet, ResNet | [slides 1](https://cs231n.stanford.edu/slides/2024/lecture_6_part_1.pdf) [slides 2](https://cs231n.stanford.edu/slides/2024/lecture_6_part_2.pdf) [review](https://cs231n.stanford.edu/slides/2024/lecture_6_review.pdf) |
| Week 4 | 2024.07.29(Mon) | 2024.08.04(Sun) | 07/30 Lecture 7: Recurrent Neural Networks RNN, LSTM, GRU, Language modeling, Image captioning, Sequence-to-sequence | [slides](https://cs231n.stanford.edu/slides/2024/lecture_7.pdf) |
| | | | 08/01 Lecture 8: Attention and Transformers Self-Attention, Transformers | [slides](https://cs231n.stanford.edu/slides/2024/lecture_8.pdf) |
| Week 5 | 2024.08.05(Mon) | 2024.08.11(Sun) | 08/06 Lecture 9: Object Detection and Image Segmentation Single-stage detectors, Two-stage detectors, Semantic/Instance/Panoptic segmentation | [slides](https://cs231n.stanford.edu/slides/2024/lecture_9.pdf) |
| | | | 08/08 Lecture 10: Video Understanding Video classification, 3D CNNs, Two-stream networks, Multimodal video understanding | [slides](https://cs231n.stanford.edu/slides/2024/lecture_10.pdf) |
| Week 6 | 2024.08.12(Mon) | 2024.08.18(Sun) | 08/13 Lecture 11: Visualizing and Understanding Feature visualization and inversion, Adversarial examples, DeepDream and style transfer | [slides](https://cs231n.stanford.edu/slides/2024/lecture_11.pdf) |
| | | | 08/15 Lecture 12: Self-supervised Learning Pretext tasks, Contrastive learning, Multisensory supervision | [slides](https://cs231n.stanford.edu/slides/2024/lecture_12.pdf) |
| Week 7 | 2024.08.19(Mon) | 2024.08.25(Sun) | 08/20 Lecture 13: Generative Models Generative Adversarial Network, Diffusion models, Autoregressive models | [slides](https://cs231n.stanford.edu/slides/2024/lecture_13.pdf) |
| | | | 08/22 Lecture 14: OpenAI Sora Guest Lecture by William (Bill) Peebles and Tim Brooks | |
| Week 8 | 2024.08.26(Mon) | 2024.09.01(Sun) | 08/27 Lecture 15: Robot Learning Deep Reinforcement Learning, Model Learning, Robotic Manipulation | [slides] |
| Week 8 | 2024.08.26(Mon) | 2024.09.01(Sun) | 08/27 Lecture 15: Robot Learning Deep Reinforcement Learning, Model Learning, Robotic Manipulation | [slides](https://cs231n.stanford.edu/slides/2024/lecture_14.pdf) |
| | | | 08/29 Lecture 16: Human-Centered Artificial Intelligence | |


---

## 👥 참여 인원
김동환, 우동협, 장윤영, 정명훈, 진태완, 최종렬, 한서연

---

## 📋 과제 제출

| Week | 김동환 | 우동협 | 장윤영 | 정명훈 | 진태완 | 최종렬 | 한서연 |
|--------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| Week 1 | | | | | | | |
| Week 2 | | | | | | | |
| Week 3 | | | | | | | |
| Week 4 | | | | | | | |
| Week 5 | | | | | | | |
| Week 6 | | | | | | | |
| Week 7 | | | | | | | |
| Week 8 | | | | | | | |

미제출 시 환급금이 1만원씩 차감됩니다.
86 changes: 86 additions & 0 deletions update_submission_status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import os
import re
from datetime import datetime
from github import Github

# 환경 변수에서 GitHub 토큰 가져오기
GITHUB_TOKEN = os.getenv('MY_GITHUB_TOKEN')
REPO_OWNER = 'konkuk-kuggle'
REPO_NAME = '10th_Study_CS231n'

# GitHub 토큰 값 출력 (디버깅용, 이후 삭제)
print(f"GITHUB_TOKEN: {GITHUB_TOKEN}")

# 참여 인원 목록
participants = ["김동환", "우동협", "장윤영", "정명훈", "진태완", "최종렬", "한서연"]

# 주차별 시작 날짜와 종료 날짜
weeks = {
1: ('2024-07-08', '2024-07-14'),
2: ('2024-07-15', '2024-07-21'),
3: ('2024-07-22', '2024-07-28'),
4: ('2024-07-29', '2024-08-04'),
5: ('2024-08-05', '2024-08-11'),
6: ('2024-08-12', '2024-08-18'),
7: ('2024-08-19', '2024-08-25'),
8: ('2024-08-26', '2024-09-01'),
}

# GitHub API 클라이언트 생성
g = Github(GITHUB_TOKEN)
repo = g.get_repo(f"{REPO_OWNER}/{REPO_NAME}")

# PR 제목에서 주차와 참여자 이름 추출하는 함수
def extract_info_from_title(title):
match = re.match(r"Week_([0-9]+)\ (.*)", title)
if match:
week = int(match.group(1))
name = match.group(2).strip()
return week, name
return None, None

# 제출 상태 업데이트 함수
def update_submission_status(week, name):
print(f"Updating submission status for Week {week}, {name}")
with open('README.md', 'r') as file:
lines = file.readlines()

# 제출 상태를 업데이트할 텍스트 생성
new_lines = []
for line in lines:
if f"| Week {week} |" in line:
for participant in participants:
if participant == name:
line = line.replace(f"| |", f"| ✅ |", 1)
new_lines.append(line)

with open('README.md', 'w') as file:
file.writelines(new_lines)

# README.md 파일 커밋 및 푸시
contents = repo.get_contents("README.md")
repo.update_file(contents.path, f"Update submission status for Week {week}, {name}", ''.join(new_lines), contents.sha)

# PR 이벤트 처리 함수
def handle_pr_event():
pr_title = os.getenv('GITHUB_HEAD_REF', '')
pr_created_at = datetime.strptime(os.getenv('GITHUB_EVENT_PR_CREATED_AT'), "%Y-%m-%dT%H:%M:%SZ")
print(f"PR Title: {pr_title}, Created At: {pr_created_at}")

week, name = extract_info_from_title(pr_title)
if week and name:
start_date, end_date = weeks[week]
start_datetime = datetime.strptime(start_date, "%Y-%m-%d")
end_datetime = datetime.strptime(end_date + ' 23:59:59', "%Y-%m-%d %H:%M:%S")

# PR 생성 시간이 해당 주차의 시작 날짜와 종료 날짜 사이인지 확인
if start_datetime <= pr_created_at <= end_datetime:
update_submission_status(week, name)
print(f"Updated submission status for {name} in Week {week}")
else:
print(f"PR was created outside the valid date range for Week {week}")
else:
print("PR title format is incorrect")

if __name__ == "__main__":
handle_pr_event()