블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2024/5 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

 
 
 

복사해서 넣어둘까 했는데, 너무 길고, 깨지는게 많아서.. 이중에 쓸만한거 한두개만,,

JsonDocument를 사용하여 데이터 액세스

double sum = 0;
int count = 0;

using (JsonDocument document = JsonDocument.Parse(jsonString))
{
    JsonElement root = document.RootElement;
    JsonElement studentsElement = root.GetProperty("Students");
    foreach (JsonElement student in studentsElement.EnumerateArray())
    {
        if (student.TryGetProperty("Grade", out JsonElement gradeElement))
        {
            sum += gradeElement.GetDouble();
        }
        else
        {
            sum += 70;
        }
        count++;
    }
}

double average = sum / count;
Console.WriteLine($"Average grade : {average}");

 

개별 속성 이름 사용자 지정

public class WeatherForecastWithPropertyNameAttribute
{
    public DateTimeOffset Date { get; set; }
    public int TemperatureCelsius { get; set; }
    public string Summary { get; set; }
    [JsonPropertyName("Wind")]
    public int WindSpeed { get; set; }
}
{
  "Date": "2019-08-01T00:00:00-07:00",
  "TemperatureCelsius": 25,
  "Summary": "Hot",
  "Wind": 35
}

 

출처 : https://docs.microsoft.com/ko-kr/dotnet/standard/serialization/system-text-json-how-to

'클라이언트' 카테고리의 다른 글

카카오톡 전달하는 버튼이나 링크 만들기  (0) 2020.05.22
:
코로나-19 시도별 발생 현황표 - 시도명, 전일대비 확진환자 증감(합계, 해외유입, 지역발생), 확진환자수(명) (확진환자, 격리중, 격리해제, 사망자수, 발생률) 으로 구성
시도명 전일대비
확진환자 증감
확진환자 (명)
합계 해외
유입
지역
발생
확진
환자
격리
격리
해제
사망자 발생률
(*)
합계 2 2 0 10,806 1,218 9,333 255 20.84
서울 0 0 0 637 141 494 2 6.54
부산 0 0 0 138 16 119 3 4.04
대구 0 0 0 6,856 462 6,217 177 281.39
인천 0 0 0 97 25 72 0 3.28
광주 0 0 0 30 2 28 0 2.06
대전 0 0 0 40 1 38 1 2.71
울산 0 0 0 44 6 37 1 3.84
세종 0 0 0 46 1 45 0 13.44
경기 0 0 0 681 140 525 16 5.14
강원 0 0 0 53 9 42 2 3.44
충북 0 0 0 45 3 42 0 2.81
충남 0 0 0 143 15 128 0 6.74
전북 0 0 0 18 6 12 0 0.99
전남 0 0 0 16 4 12 0 0.86
경북 0 0 0 1,366 123 1,190 53 51.31
경남 0 0 0 117 13 104 0 3.48
제주 0 0 0 13 1 12 0 1.94
검역 2 2 0 466 250 216 0 -

 

출처 : http://ncov.mohw.go.kr/

:

https://yougome.tistory.com/558

 

은근히 시간이 걸린 내용이라 정리해 두려고 한다.

LSTM을 살펴보면 대부분 Sequence layer를 활용해서 설명하고 있어서,

찾는시간에도, 오류를 잡고, 내용을 이해하는데에도 시간이 좀 들었다.

주요 오류는 Input(...) 다음에 LSTM(...) 을 읽는 위치에서 계속 막혔다.

inputs = Input(shape=( ..., ))

outputs = LSTM(1, ... )(inputs) 

오류의 포인트는 shape 값 때문이었다.

찾아봐도 명쾌한 답이 잘 안나오니 답답할 뿐이었다.

 

대부분 알고 있겠지만, LSTM의 shape의 의미는 size, seq, feature다. 

이 내용을 토대로 계속 입력하지만 계속 오류가 발생한다.

여기서 오류를 범할 수 있는 부분이 바로, size 부분이다. input shape를 seq, feautre로 두고 처리하면 해결된다.

 

size는 결국에 model을 compile한 후, fit을 할 때 사용되는 loop의 크기로 보면 좋을 것 같다.

 

이렇게 간단히 해결될 것을.. 왜이리 오래 걸렸을까?

기본 tutorial 코드를 보면, LSTM( ) 함수에는 몇가지 추가된 파라미터들이 있다.

stateful, return_sequence 등을 추가되어 있다.

입문자나 초보자 입장에서는 이게 없으면 안될 것 같은,,

느낌적인 느낌때문에 지운 후 쓰기도 그대로 쓰기도

어떻게 할지 몰라서 망설여지게 된다.

 

오류를 잘 살펴보면, stateful을 쓰려면 batch_input_shape 쓰라고 하고,

batch_input_shape를 빼면, input_shape가 맞지 않다고 하니,

어느 장단에 맞춰야할지 무척 난감해진다.

 

에러를 해석해보면,

stateful은 batch의 총 크기를 알았을 때 안정적으로 사용할 수 있다는 것이고,

stateful을 쓰지 않는다면, 굳이 없어도 동작한다. ( 확인했음 )

 

즉, Model의 Input(...) 이용해서 LSTM을 처리하고자 한다면 아래 두개 코드중에 하나를 선택해서 쓰면되겠다.

간단한 코드가 좋으니.. 아래와 같이 정리한다.

첫줄의 Input(..)함수의 batch_shape shape부분을 살펴보면 좋겠다.

 

# stateful 파라미터를 쓰고 싶다! 그러면 batch_shape로 하면된다.

#site : https://yougome.tistory.com/558

input_tensor = Input(batch_shape=(1, 10, 2, ))
hidden_tensor = LSTM(1, batch_input_shape=(1, 10, 2), stateful=True, return_sequences=True )(input_tensor)
hidden_tensor = LSTM(1, stateful=True)(hidden_tensor)
output_tensor = Dense(2, )(hidden_tensor)
m_model = Model(inputs=input_tensor, outputs = output_tensor)
m_model.summary()

 

# stateful 파라미터에 관심없다! 동작만 하면된다!! 그러면 shape로 하면된다.

#site : https://yougome.tistory.com/558

input_tensor = Input(shape=(10, 2, ))
hidden_tensor = LSTM(1, input_shape=(10, 2), return_sequences=True )(input_tensor)
hidden_tensor = LSTM(1)(hidden_tensor)
output_tensor = Dense(2)(hidden_tensor)
m_model = Model(inputs=input_tensor, outputs = output_tensor)
m_model.summary()

 

위에 있는 코드가 좀 더 상세히 쓴 것이고,

케라스의 특성상, 이전에 입력받은 Layer는 다음 Layer에서 알아서 척척(?) 잘 받아주니,

아래 처럼 써도 전혀 문제가 없다.

 

# stateful 파라미터를 쓰고 싶다! 그러면 batch_shape로 하면된다.

#site : https://yougome.tistory.com/558

input_tensor = Input(batch_shape=(1, 10, 2, ))
hidden_tensor = LSTM(1, stateful=True, return_sequences=True )(input_tensor)
hidden_tensor = LSTM(1, stateful=True)(hidden_tensor)
output_tensor = Dense(2, )(hidden_tensor)
m_model = Model(inputs=input_tensor, outputs = output_tensor)
m_model.summary()

summary 결과 값 보고 싶다면, 아래 '더보기' 클릭

더보기

Model: "model_x"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_24 (InputLayer)        (1, 10, 2)                0         
_________________________________________________________________
lstm_30 (LSTM)               (1, 10, 1)                16        
_________________________________________________________________
lstm_31 (LSTM)               (1, 1)                    12        
_________________________________________________________________
dense_11 (Dense)             (1, 2)                    4         
=================================================================
Total params: 32
Trainable params: 32
Non-trainable params: 0
_________________________________________________________________

 

# stateful 파라미터에 관심없다! 동작만 하면된다!! 그러면 shape로 하면된다.

#site : https://yougome.tistory.com/558

input_tensor = Input(shape=(10, 2, ))
hidden_tensor = LSTM(1, return_sequences=True )(input_tensor)
hidden_tensor = LSTM(1)(hidden_tensor)
output_tensor = Dense(2)(hidden_tensor)
m_model = Model(inputs=input_tensor, outputs = output_tensor)
m_model.summary()

summary 결과 값 보고 싶다면, 아래 '더보기' 클릭

더보기

Model: "model_x" 
_________________________________________________________________ 
Layer (type)                 Output Shape              Param #    
================================================================= 
input_23 (InputLayer)        (None, 10, 2)             0          
_________________________________________________________________ 
lstm_28 (LSTM)               (None, 10, 1)             16         
_________________________________________________________________ 
lstm_29 (LSTM)               (None, 1)                 12         
_________________________________________________________________ 
dense_10 (Dense)             (None, 2)                 4          
================================================================= 
Total params: 32 
Trainable params: 32 
Non-trainable params: 0

 

 

아차, 다 쓰고 나서 읽어보니, 헷갈릴 수 있는 부분이 있어서 덧붙인다.

 

input의 shape 크기가 ( 10, 2 ) 인지,

output의 shape 크기가 2 인지,

>> input shape는 2개의 특징을 가진 10개의 연속된 데이터 N개를 사용하고 있고,

>> ouput shape는 2개의 특징으로 분류되는 N의 결과값을 사용하고 있다

 

( 10, 2 ) 이 부분은 큰 의미는 없고,

model 관련 dummy data로 테스트하던 중에 사용하던 코드여서,

그대로 붙여넣게 되었다.

 

ref : https://keras.io/getting-started/functional-api-guide/

:

LSTM을 사용해보려고 하는데 입력과 출력에 대해서 자세히 나온 부분이 없어서 정리해 보았습니다.
기본적인 내용은 아래 참조 링크를 사용하였습니다.

참조 링크 : https://medium.com/@shivajbd/understanding-input-and-output-shape-in-lstm-keras-c501ee95c65e

 

참조 링크 : https://towardsdatascience.com/predicting-stock-price-with-lstm-13af86a74944

위 링크 저자도 처음에 혼란스러웠다고 되어있네요.

LSTM을 하기 위해서는 3차원적 데이터가 필요합니다. (대부분의 예제의 경우 batch(일괄처리)값 설정없이 input_shape을 사용합니다. 만약 batch를 설정하려면 batch_input_shape 값에 batch값을 추가하여 차원을 추가한 입력을 사용해야합니다.)

[data_size, time_steps, features] 3차원 array로 구성됩니다.

Keras input_shape 예제

model = keras.models.Sequential() model.add(keras.layers.LSTM(unit=3, input_shape=(3, 5)))


위 예에서 (2,10)은 time_steps=3, features=5 가 됩니다. data_size는 따로 넘기지 않습니다. data_size 정보는 없어도 넘어오는 크기로 부터 전체 data size를 알 수 있기 때문입니다.

이것을 그림으로 그려보면 다음과 같습니다.


time_steps는 Network에 사용할 시간 단위입니다. 이 값은 LSTM에서 과거의 몇개 데이터를 볼것인가 가지고 결정합니다. 위 그림에서 녹색 box부분을 보면 3개 데이터를 이용해서 다음 한개를 추론 하기 때문에 time_steps:3 이 됩니다.
data_size는 데이터의 크기 입니다. 위 그림에서는 N으로 표시 하였습니다. 커다란 박스의 개수가 3개 있고, 추가로 2개 더 그릴수 있으므로 데이터는 5개가 될 것입니다.
Features 는 일반적인 경우 X의 차원을 의미합니다. LSTM에서는 input이 time_steps에 의해서 여러개의 입력 나타내지는데 그것의 속성의 수가 됩니다. 여기에서는 Open, High, Low, Close, Volume 이렇게 5개가 들어갑니다.

Batch에 대하여

Batch는 일괄 처리되는 작업의 양이다. 위에서 설명된 data_size를 한번에 처리하는 갯수를 의미하며, batch크기에 의해 weight 변화가 일어나며 batch크기 단위로 data loading 함수도 구현이 가능하다. 주의할점은 data_size/batch_size일때 나머지가 없어야 한다.

batch 되는 양이 있다면 아래와 같이 설정할 수도 있습니다.

Keras batch_input_shape 예제 

model = keras.models.Sequential() model.add(keras.layers.LSTM(unit=4, batch_input_shape=(3, 4, 6)))

batch_size, time_steps, features 각각은 3,4,6이 됩니다.

 

실제 데이터의 크기는 [6,4,6]으로 준비가 된 모습입니다. batch_size로 차원을 구성하는것이 아닙니다. batch_size = 3으로 6/3이 되므로 나머지가 없기 때문에 문제가 없습니다. 나머지가 생기게 되면 batch 작업시 문제가 생깁니다.


unit=4 은 해당 layer의 출력 크기가 된다.

출처 : http://swlock.blogspot.com/2019/04/keras-lstm-understanding-input-and.html

:

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

유라가 뽑은 걸그룹 몸매 비주얼 .3대장

:

맛만 보자!

재밌는 흔적 | 2020. 4. 28. 19:20 | Posted by youGom

:

경기도는 오는 5월 15일까지 경기도 공식 페이스북 계정에서 재난기본소득 사용을 독려하는 ‘착한 소비 인증 이벤트’를 진행한다.
경기도는 오는 5월 15일까지 경기도 공식 페이스북 계정에서 재난기본소득 사용을 독려하는 ‘착한 소비 인증 이벤트’를 진행한다.  ⓒ 경기뉴스광장



“경기도 재난기본소득으로 착한 소비 인증하고 선물 받아가세요~”

경기도가 코로나19로 침체된 지역경제를 살리기 위한 소비 촉진 이벤트를 마련했다.

도는 오는 5월 15일까지 경기도 공식 페이스북(www.facebook.com/ggholic) 계정에서 재난기본소득 사용을 독려하는 ‘착한 소비 인증 이벤트’를 진행한다.

이번 이벤트는 최근 모든 도민에게 1인당 10만 원을 지급하는 경기도 재난기본소득 신청과 지급이 본격화되면서, 도민들의 재난기본소득 소비를 촉진해 고사 위기에 처한 지역 소상공인과 영세자영업자에게 조금이나마 도움이 되고자 기획됐다.



착한 소비 인증 이벤트는 경기도 공식 페이스북 계정에서 재난기본소득 사용내역을 인증한 뒤 관련된 에피소드를 작성하면 참여할 수 있다.
착한 소비 인증 이벤트는 경기도 공식 페이스북 계정에서 재난기본소득 사용내역을 인증한 뒤 관련된 에피소드를 작성하면 참여할 수 있다.   ⓒ 경기뉴스광장



이벤트는 경기도 공식 페이스북 계정에서 재난기본소득 사용내역을 인증한 뒤 관련된 에피소드를 작성하면 참여할 수 있다.

재난기본소득 사용이 가능한 지역 내 업체에서 소비한 내용을 영수증을 포함한 구매 인증샷 또는 모바일앱 내역을 캡처해 이를 사용후기와 함께 올리면 된다.

예를 들어, 음식점에서 재난기본소득을 사용했다면 메뉴 사진을 영수증과 함께 찍은 후 ‘저는 40대이고, 경기지역화폐카드를 이용해 동네맛집에서 가족 식사를 즐겼어요’ 등 연령대와 사용내역 위주로 후기를 작성하는 것이다.

이벤트는 5월 15일까지 진행되며, 추첨을 통해 총 100명에게 10만 원 상당의 비접촉식 체온계(20명), 지역화폐 1만 원(80명) 등을 지급할 예정이다. 자세한 내용은 경기도 공식 페이스북에서 확인할 수 있다.

도 관계자는 “경기도 재난기본소득은 위기에 빠진 지역경제 활성화를 위해 도가 긴급히 지원하는 경제방역의 일환”이라며 “경기도 재난기본소득이 침체된 소상공인과 영세자영업자에게 희망이 될 수 있도록 도민들의 적극적인 참여를 부탁드린다”고 당부했다.



착한소비 인증은 영수증과 함께 찍은 구매 인증샷 또는 모바일앱 내역, 영수증 사진으로 하면 된다.
착한소비 인증은 영수증과 함께 찍은 구매 인증샷 또는 모바일앱 내역, 영수증 사진으로 하면 된다.  ⓒ 경기뉴스광장



이와 더불어 도는 재난기본소득에 대한 도민들의 이해를 높이고 소비를 촉진하기 위한 ‘경기도 재난기본소득 슬기로운 소비생활 캠페인’을 실시하고 있다.

오는 27일부터 6월 30일까지 개그맨 강성범, 방송인 김용민, 문화평론가 김성수, 역사크리에이터 BJ한나 등 유명인이 31개 시·군의 전통시장이나 골목상권을 찾아가 경기도 재난기본소득을 직접 사용하는 모습을 인터넷 생중계로 진행한다.

또 행사에 참여했던 유명인들이 YTN라디오(94.5Mhz) ‘어서UP쇼’ 프로그램에 출연해 경기도 재난기본소득에 대한 퀴즈를 내고 정답을 맞힌 청취자에게 지역화폐를 지급하는 이벤트도 펼칠 예정이다.

이 외에도 6월과 7월에는 ‘인증 스티커를 찾아라’, ‘잔고를 비워라’ 등 다양한 이벤트가 준비돼 있다.



착한 소비 인증 이벤트는 5월 15일까지 진행되며, 추첨을 통해 총 100명에게 10만 원 상당의 비접촉식 체온계(20명), 지역화폐 1만 원(80명) 등을 지급할 예정이다.
착한 소비 인증 이벤트는 5월 15일까지 진행되며, 추첨을 통해 총 100명에게 10만 원 상당의 비접촉식 체온계(20명), 지역화폐 1만 원(80명) 등을 지급할 예정이다.   ⓒ 경기뉴스광장


출처 : https://www.gg.go.kr

:
 

경기도가 재난기본소득에 대한 도민들의 이해를 높이고 소비를 촉진하기 위해 다양한 현장 행사와 사회관계망서비스(SNS) 등을 활용한 ‘경기도 재난기본소득 슬기로운 소비생활 캠페인’을 실시합니다. 지급받은 재난기본소득을 어디에, 어떻게 써야 할지 궁금하다면 오는 7월까지 온·오프라인에서 활발하게 진행될 다양한 이벤트에 참여해보세요. 경기도 재난기본소득을 슬기롭게 소비할 수 있는 방법도 배우고, 추첨을 통해 경품도 받는 일석이조의 혜택을 누릴 수 있답니다. 지역경제 활성화 등 단기간에 여러 경제적 효과를 얻기 위해 진행되는 이번 캠페인에 많은 관심과 참여 부탁드립니다.

경기도 공식 SNS를 통해 재난기본소득 이벤트 참여하고 선물받자!
이벤트 하나, 찾아가는 현장 이벤트 / 인플루언서, 개그맨, BJ 등 유명 인사들이 야외 스튜디오 버스와 함께 31개 시군의 전통시장이나 골목상권을 찾아가 경기도 재난기본소득을 직접 사용하는 시연행사를 통해 소비를 독려하는 이벤트. 인터넷 생중계로 진행될 예정. / · 참여기간 : 2020.5.8.(금) ~ 6.30.(화) 매주 금요일 오후 12~14시 / · 참여방법 : YTN라디오(94.5Mhz)에서 재난기본소득 관련 실시간 퀴즈 듣고, 경기도 인스타그램(@gyeonggi__official)에 정답 올리기  / · 지급경품 : 지역화폐(추첨)
이벤트 둘, 착한 소비 인증 이벤트 / 재난기본소득 사용을 독려하는 이벤트. / · 참여기간 : 2020.4.20.(월) ~ 5.15.(금) / · 참여방법 : 경기도 페이스북(@ggholic)에 재난기본소득 사용내역 1건을 인증 후 관련 에피소드 작성하기  / · 지급경품 : 비접촉식 체온계(20명, 10만원 상당), 지역화폐 1만원 충전(80명)
이벤트 셋, 인증 스티커를 찾아라 이벤트 / 도민들이 직접 재난기본소득 사용처에 대한 정보를 적극적으로 홍보하는 이벤트.  / · 참여기간 : 2020. 6월 ~ 7월 /· 참여방법 : 경기도 페이스북(@ggholic)에 지역화폐 가맹점 스티커가 붙은 사용처 인증 및 특별한 사용처 소개하기(‘재난기본소득, 어디까지 써봤니?’ 등 재미있는 문구 및 카피를 통해 참여 유도하면 당첨확률 UP!) / · 지급경품 : 미세먼지 측정기, 지역화폐 충전 등(예정)


이벤트 넷, ‘잔고를 비워라 : 소진 완료’ 이벤트 / 재난기본소득을 다 썼다는 것만 인증하면 추첨을 통해 선물을 받을 수 있는 이벤트. / · 참여기간 : 2020. 7월 ~ 8월 / · 참여방법 : 경기도 페이스북(@ggholic)에 재난기본소득 100% 사용 인증 및 사용 소감․바라는 점 등 작성하기 / · 지급경품 : 농산물, 지역화폐 충전 등(예정)
슬기로운 소비생활 캠페인 바로가기

 

출처 : https://www.gg.go.kr

:
경기도 교통정보센터에서 어린이보호구역을 확인하세요

경기도 교통정보센터에서 어린이보호구역을 확인하세요.(영상자막)

더보기

자막PC 접속에서 내 주변 어린이 보호구역 시설을 확인할 수 있어요!
이름만 어린이보호구역, 이제는 달라집니다.
스쿨존 사고예방시설 의무 설치(어린이보호구역 내 과속 단속카메라(30km/h), 신호등 의무 설치)
스쿨존 어린이 교통사고 처벌 강화(사망시 : 벌금없이 최소 3년 유기 or 무기징역, 상해시 : 징역 1년이상 ~ 15년이하 or 벌금 5백 ~ 3천만원) 30km 제한속도 준수!

수도권 교통의 중심 경기도 교통정보센터
교통DB에서 우리동네 버스, 지하철 이용자 수 등 다양한 교통데이터를 비교할 수 있습니다.
교통정보안내 1688-9090
버스정보안내 1688-8031
트위터 @16889090

 

출처 : www.gg.go.kr

 

:

S3 비용아끼기, One Zone IA 이용하자

서버/AWS | 2020. 4. 27. 20:20 | Posted by youGom

https://aws.amazon.com/ko/s3/storage-classes/

위 AWS 도큐먼트에 한글로 자세히 설명되어 있다.

비용을 아끼는 대신에 단점하나를 고르자면,

기존 가용성 99.9%에서 99.5%로 되었다는게 가장 크다.

GB당 비용이 0.025 USD에서 0.0152 USD 정도로 줄어든다.

비용문제가 있다면, 참고해서 활용하면 좋을 것 같다.

 

'서버 > AWS' 카테고리의 다른 글

[AWS] S3 정적 웹, 도메인 연결  (0) 2015.05.26
: