반응형

1.


논문링크 :  http://people.csail.mit.edu/alevin/papers/Matting-Levin-Lischinski-Weiss-PAMI.pdf

식 유도 강의 : https://www.youtube.com/watch?v=Mvd93DdgqAY



이 논문에 대해 관심을 갖게 된 이유는 deep photo style transfer에서 regularization term으로 해당 논문의 내용을 사용했기 때문이었다


해당 논문에서 사용된 부분은 다음과 같은데



해당 Loss function의 제일끝 항인 Lm 부분에 이것이 사용이 된다.






Lm을 좀 더 자세히 보면 위와 같은 모양이 되는데, Laplacian Matrix가 존재하는 부분은 가운데 있는 M 부분이다.

조금 더 해당 식을 쪼개서 생각을 해보면,

각 채널 별로 연산을 한 결과합을 regularization term의 값으로 가진다.

이것을 최소화 시키는 방향으로 학습이 진행이 될것이다.


해당  사용을 하려면, 일단은 Laplacian Matrix를 찾아야 되는데 연산량이 많다. 대략 난감이다 이런부분은 ..ㅎㅎㅎ

해당 style transfer를 진행을 하려면 matting Image의 matrix가 필요하다는 결론이 나오는데,

각각의 foreGround를 뽑아내는 메트릭스가 필요하다는 얘기와 동일하다.

여기서 참으로 걱정이 된다. 실서버를 만들기 위해서는 속도가 중요한데 여기서 막혀버리는건가 라는 생각도 든다...ㅎㅎㅎ

일단은 한번 구현을 해보는것을 목표로 하자.



<17.08.07 - 2nd >


Matting이란 무엇인가?

이미지에서는 background와 foreground가 존재하는데, matting은 foreground만 뽑아내는 기술을 말한다.


Matting이라는 부분도 정말 따로 특화된 부분인건 맞는데, 이에 맞는 자료가 많이 없다.

그래서 정말 접근하기가 힘들다.

그런데 그나마 접근이 가능한 영상이 있는데, 유투브가 쩔음


https://www.youtube.com/watch?v=Mvd93DdgqAY&index=3&list=PLuh62Q4Sv7BUJlKlt84HFqSWfW36MDd5a


이 영상에서 그나마 논문을 쉽게 설명해줘서 이해하기 쉬웠음.



이미지 픽셀 하나하나는 전부 foreground와 background의 특정한 비율로 나눌 수가 있다.




여기서 I를 우리가 찾는 픽셀, 그리고 F와 B를 각각 전면과 배경이고, 그 비율을 알파라고 한다.


이 식을 우리는 R,G,B 3가지 채널로 나눈다면 총 7개의 미지수가 존재하는데  이 방정식을 풀기 위해서는 조건이 부족해서 풀수 없는 방정식이다.

그렇기에 우리는 몇가지 조건들을 넣어서 이 식을 풀수 있는 방법으로 접근을 하는데

그게 scribble이라고 말하는 사용자들의 낙서를 input으로 받아서 문제를 해결을 한다.


본격적으로 하기 전에 몇가지 가정들에 대해서 알아보도록 하자


1) color line assumption

작은 window안에 있는 background와 foreground 색깔들은  RGB공간에서 직선거리 위에 존재해 있다는 가정을 바탕으로 한다. 

그렇게 되면 다음과 같은 식이 나온다.





각각의 Foreground와 Background가 배경에 대하여 다른 두 점을 통해서 나타낼 수 있다는 뜻이 된다.

그러면 한 픽셀은 다른 두 점의 선형관계로 나타낼수 있다는 뜻이 되는것이기도 하다.


위의 가정이 맞다고 하면, 우리가 구하려는 알파는 Image pixel의 선형 관계로 나타낼수가 있는데, 이 부분도 나름의 증명 과정이 필요하다.

(일일히 수식으로 적기가 어려워, 노트필기 부분을 사진으로 올립니다. 자세한 과정은 위의 유투브에 그 부분이 나옵니다)




이렇게 증명을 해서 알파는 이미지 픽셀의 선형관계로 나타낼 수가 있게 되었다.


그러면 이렇게 증명한것이 matting에 어떻게 쓸수가 있기에 증명을 한것일까??


우리가 실제로 저렇게 구한 선형관계의 알파와 실제 알파와의 차이가 최소가 되는 a*,b*를 찾는 과정을 가진다.

그리고 F와 B를 constant라고 가정하면,

최소가 되는 알파를 구하면 모든게 행복해지는 상황이 발생을 한다.






최소가 될때의 상황은 언제인가?

이것을 또 풀어보면





이렇게 된다

알파T * L * 알파 일때가 그 결과가 최소가 된다는 것이다.


위의 4번식의 최소값을 찾기위해 알파로 미분을 해보자.




그런데 이 식을 만족하는 eigen vector가 많게된다.

그래서 우리는 식을 제약해야되는데,

위에서 말한 scribble을 통해서 이것이 가능해진다.


예를들어 배경일때는 알파를 0으로, 전경일때는 알파를 1로 만드는 식이다.

이렇게 제약을 하면 우리는 최소값이 되는 알파를 구할수 있고,

그에 따른 laplacian matrix를 구할수 있게 된다.


이렇게 구해진 것은 J함수는 deepStyleTransfer에서 regularization으로 사용이 된다.











반응형
반응형

논문링크 :  https://arxiv.org/abs/1703.07511


Style transfer 중에서 가장 최근에 나온 논문이고,

성능도 사진수준까지 올라간 논문이다.

왜 그런지 모르겠으나, 나는 이미지쪽에 관심이 많이가고 계속적으로 연구를 하고있다.

그래서 정말 재밌게 읽은 논문이다.


이번에도 정리하면서 이 논문을 뽀개러 가봐야겠다.


원래의 style transfer의 문제점이 여러가지가 존재하였다.

하나는 optimization 문제였다.

이는 우리가 style transfer를 할때마다 학습을 그때그때 시켜야함을 의미했다.

그런데 우리의 최고형인 Justin Johnson이 이 문제를 하나의 네트워크로 만들면서 해결해버렸다.

킹왕짱인 우리형이다.

이 논문도 한번 정리를 해볼 생각이다.


또 다른 문제는 photorealism에 관한 문제이다.

style transfer는 처음에 봤을때 이쁘기는 하나 생각보다 뭔가 부족하다.

style을 내가 마음먹은대로 만들수도 없고, 그래서 네트워크가 만들어주는대로 바라만 보고 있어야 한다.

그러다보면 content와 style사이에서 trade-off관계가 생겨버리는데 우리는 이걸 제대로 컨트롤 할수가 없게되어


하늘content에 다른 건물style이 입히고 막 이러하다. 그렇기에 이번에 소개할 논문이 나오는 것이다.

style transfer의 성능을 사진수준까지 올리게 되는데 본격적으로 들어가기에 앞서서 한번 그 결과물을 보고 가는것도 흥미유발에 큰 도움이 될 것 같다.




왼쪽이 content이미지 그리고 가운데가 style Image, 그리고 마지막이 결과물이다.

진짜 content 이미지의 원래의 모습을 그대로 유지하면서 스타일 결과물을 만들어 내는 것이다.

놀랍다 진심이다.ㅎㄷㄷ



그러면 본격으로 논문뽀개기에 들어가보자.


이 논문은 두가지의 contribution을 가지고 있다.

첫번째는 style transfer를 하고 나서도, 컨텐츠 이미지의 구조가 그대로 살아 있어야 되는것.

두번째는 style transfer를 하더라도, 관계있는 style이 tranfer (semantic style transfer)가 그 목표가 된다.


첫번째 문제는 matting laplacian 알고리즘에서 영감을 받아서 해결을 가능하게 하였고,

두번째 문제는 semantic segmentation 방법을 이용해서 해결을 하였다.


matting laplcian은 regularization term으로 구현을 하였다.

논문에는 진짜로 제대로 설명이 안되어 있어서 아마도 이건 원래의 본 논문을 보고 제대로 이해를 해야되지 않을까 싶다



Our solution is to seek an image transform that is locally affine in color space, that is, a function such that for each output patch, there is an affine function that maps the input RGB values onto their output counterparts. 

Each patch can have a different affine function, which allows for spatial variations.
To gain some intuition, one can consider an edge patch.
The set of affine combinations of the RGB channels spans a broad set of variations but the edge itself cannot move because it is located at the same place in all channels.



번역 :

우리의 해결책은 색 공간에서 로컬 affine 인 이미지 변환, 즉 각 출력 패치에 대해 입력 RGB 값을 출력 상대에 매핑하는 affine 함수가있는 함수를 찾는 것입니다.

각각의 패치는 상이한 어파 인 (affine) 기능을 가질 수 있으며, 이는 공간적 변화를 허용한다. 직감을 얻으려면 에지 패치를 고려해야합니다.

RGB 채널의 아핀 조합 세트는 광범위한 변형 세트에 걸쳐 있지만 에지 자체는 모든 채널의 동일한 위치에 있기 때문에 이동할 수 없습니다






위의 term을 regularization으로 넣어주는데

Mi는 Input Image의 laplacian Matting matrix이고 , 

Vc[O]는 Output Image의 채널 c에 대한 vertorized version 이다.

(그런데 왜 이걸 써주는지는...본 논문을 봐야겠다. 이건 추후에..)



첫번째 문제는 regularization term을 이용해서 해결했고,

그다음 문제는 style transfer를 할때 예기치 않은 style들이 transfer 되는것을 좀 막고 싶다.

그래서 해결책이 뭐냐면 Neural Doodle이나 semantic segmentation 처럼 입력이미지에다 segmentation mask를 입혀서 label를 정하는 방식을 택합니다




위는 StyleLoss 수정판인데,  특이한게 gram Matrix를 기존에는 레이어꺼면 했다면, 여기서는 레이어와 채널별로 나눠서 해결을 했다.

그런데 자세히 읽어보면 C의 갯수도 semantic segmentation mask의 채널의 갯수이다. segmentic segmentation 별로 그 스타일을 맞추겠다는 굳은 의지를 보인다.


입력 이미지에 존재하는 " 고아 의미 라벨"을 피하기 위해, 우리는 기준 스타일 이미지의 라벨에서 선택할 수 있는 입력 의미론을 제약한다.
이것이 의미하는 바는 의미론적인 관점에서 잘못된 라벨을 야기할 수 있지만, 선택한 라벨은 "호수"와 "바다"와 같은 맥락에서 일반적으로 동등하다.
또한 결과가 우리의 regularization에 의해 제한되므로 분할이 픽셀 정확도가 낮아질 필요가 없다는 점도 관찰했습니다.




그래서 최종적으로 나온 Loss Function은 위와 같다.

이렇게 해서 학습을 시키면 우리가 원하는 결과물이 나올것이다.



반응형
반응형



1.

지난 포스팅에 이어서 Multi-Scale Context Aggregation by dilated convolutions 에 대한 코드를 잠깐 살펴보도록 해야겠다.


기본적인 소스는 https://github.com/nicolov/segmentation_keras 를 참고해서 돌려보았다.



이전에 얘기한것 처럼 본 논문은 context module과 frontend module(vggnet-16변형) 두개로 나눠지는데

각각에서 convolution net을 쓰는것이 아니라 dilated conv로 바꿔가면서 사용하는것이 특징이다


기본적이 input 사이즈와 output사이즈는 논문에 나와있는 방식을 그대로 따른다.

해당소스는 C=21로 고정하고 네트워크를 짰으며, Basic style이 아닌 논문에 나와있는 Large output channel로 소스가 구성이 된것만 알고 들어가면 쉽게 이해가 될것 이다.








dilated conv는 keras에서 기본적으로 제공해주는 api여서 더욱 쉽게 구현이 가능하다


소스코드의 대다수는 Convolution2D()함수를 사용해서 작성이 되었으나,

dilated conv는 AtrousConvolution2D()함수로만 바꿔주면 충분히 가능하다



conv: model.add(Convolution2D(64, 3, 3, activation='relu', name='conv1_1', input_shape=(input_width, input_height, 3))


dilated conv : model.add(AtrousConvolution2D(512, 3, 3, atrous_rate=(2, 2), activation='relu', name='conv5_2'))



해당 케라스 소스를 보기전에는 어떻게 dilated conv를 구현을 해야될까 걱정을 했었는데

소스를 보고나서 걱정이 사라졌다 ㅎㅎㅎ



그리고 하나 해당소스를 보면서 알게된것은 Pascal VOC라는 image segmentation전용 이미지데이터가 있다는 사실이다.

어떻게 segmentation을 학습을 시킬지 고민이었는데, 학습이 가능한 데이터셋이 있어서 다행이다.

좋은 세상이다. 이렇게 전부 학습이 가능하다니 말이다.


성능은 너무나 차이가 크다.

학습 데이터가 부족해서 그런거 같기도하다.





반응형
반응형

1.


논문링크 : https://arxiv.org/abs/1511.07122


Image Segmentation에 관한 논문이다.  Image Segmentation은 Object detection과 다른점이 여러개가 있는거 같다


Object detection은 boundary box내에 물체가 얼마큼의 확률로 그 물체인지를 구분해내는 문제라고 하면,

Image Segmentation은 픽셀픽셀마다 그 픽셀이 어느물체를 말하는지를 찾는 문제이기 때문이다.

(우리는 이 문제를 dense prediction 이라는 용어를 사용한다)


그래서 좀 더 어렵다(?) 라고 하긴하지만, 현재(2017년 8월)의 기술로는 꽤 성과가 좋다.


이번 시간에는 Multi-Scale Context Aggregation by dilated convolutions 이라는 논문을 통해서

Image Segmentation의 세계로 첫 발을 내딛어 보자






이미지에서 너무나 성능이 좋은 딥러닝 알고리즘. CNN.

그 CNN을 사용해서 여러가지 이미지 문제들을 풀려는 시도가 많았는데, Image Segmentation도 CNN으로 풀수가 있다.

그런데 CNN의 단점은 weight가 너무나 많아서 실제로 사용하기에 성능이 떨어지는 문제가 발생을 한다.

그래서 이 논문에서는 dilated convolution이라는 개념으로 그 문제를 해결을 하는데, 성능도 그만큼 좋다.




기존에 Image classfication 을 위해 디자인된 네트워크에다 segmentation을 하려는 시도가 있었는데, 꽤나 성공적이었다.

그래서 이 네트워크를 좀 더 dense prediction에 맞게 수정을 한다면 성능이 더 좋지 않을까라는 발상으로 이 논문이 시작이 되었다.


dense prediction은 최근에 multi-scale resoning과 full-resolution dense prediction 문제를 풀기 위한 방향으로 진행이 된다

이 논문은 해상도의 손실과 rescaled image를 분석하는 것 없이 multi-scale contextual information을 통합이 가능한 CNN 을 개발했다.

이것을 모듈로 사용이 가능하게 디자인이 되었는데, 입력사이즈와 출력사이즈가 동일하게 구성되어 어느 네트워크에다 붙여도 그것이 가능하게끔 구성을 했다.  이 모듈은 dilated convolution을 사용을 했는데, 이것이 이 논문의 핵심적인 아이디어니깐 제대로 집고 넘어가자


dilated convolutions 는 우리말로 번역을 하면 팽창하는 convolutons이라는 것이다. 기존의 CNN의 filter들이 커질때마다 필터갯수도 늘어나지만 dilated convolution은 파라미터의 갯수는 일정하고 filter의 크기가 늘어난다.

다음의 그림은 논문에 나와있는 그림1 이다.






사진을 보면 맨 왼쪽의 사진은 3x3 필터에다 파라미터가 9개가 존재한다. 그런데 (b)를 보면 파라미터는 9개로 동일하지만 필터의 크기는 7x7로 늘어났다. (c)도 마찬가지이다. 15x15로 필터사이즈는 커졌지만 알아야되는 파라미터는 9개로 동일하다. 늘어난 필터 사이사이는 0으로 채워줘서 크기를 유지해준다. 여기서 우리는 필터가 팽창한다는 느낌을 가질수가 있다. 이를 dilated convolution 이라고 한다. 이렇게 되면 dilated convolution을 사용하면

아무리 이미지가 커져도 학습해야되는 parameter가 같이 커지지를 않기때문에 부담이 사라지는 효과가 있다.



이렇게 dilated convolutions에 대해 알아보았으니

다음은 이 dilated convoltuon이 어떻게 사용이 되는지를 알아보자.


우리가 살펴보는 Multi-Scale Context Aggregation by dilated convolutions에서는 크게 두가지의 network module로 구성이 된다.

Image classification 네트워크를 수정해서 만든 , frond-end module과 그리고 context module이다.


먼저 간단한 front-end module을 살펴보면은 이 module은 VGG-16 network를 dense prediction에 맞게 수정한 것이다.

논문에 의하면 pooling layer를 없애고, 중간 레이어에 있는 padding을 하지 않았다고 나온다.

이 네트워크는 입력으로 컬러이미지를 받으면 아웃풋으로 C=21 인 feature map을 결과값으로 내보낸다.


( 구체적으로, 각각의 풀링 및 스트리딩 레이어는 제거되었고 모든 후속 계층의 변환은 제거된 각 풀 계층에 대해 2배의 계수로 확장되었다.
따라서 최종 계층을 따르는 최종 계층의 변환은 4배의 비율로 확장된다.
이를 통해 원래 분류 네트워크의 매개 변수를 초기화할 수 있지만 분해능이 높은 출력을 생성할 수 있습니다.

프런트 엔드 모듈은 입력된 이미지를 입력하고 분해능 64×64에서 형상 맵을 생성합니다.

반사 패딩을 사용합니다. 버퍼 영역은 각 에지에 대한 이미지를 반영하여 채워집니다.

우리의 프런트 엔드 모듈은 조밀한 예측을 위해 역효과를 내는 분류 네트워크의 흔적을 제거함으로써 얻어진다.

가장 중요한 것은 마지막 두개의 풀링 및 스트라이딩 레이어를 완전히 제거하는 것입니다. 그들과 Chen외에도 박리로 인해 교체되었으나 풀링 된 층을 유지했습니다.

우리는 풀링 계층을 제거함으로써 네트워크를 단순화하는 것이 더 정확하다는 것을 알아냈다.
또한 중간 형상 맵의 패딩을 제거한다.
중간 분류 네트워크는 원래 분류 네트워크에서 사용되었지만, 고밀도 예측에서는 필요하지도 않고 정당화되지도 않았다. )




이렇게 frond-end 네트워크를 구하고 나면, 그 담번에는 context module 이다.


context module의 목적은  다양한 크기의 contextual 정보를 모아서  dense prediction architecture의 성능을 향상시키기 위해서 만들어진것이다.

이 모듈은 C개의 feature map을 input값으로 받고, output을 C개의 feature map으로 생성하기 때문에, 이 모듈은 어느 dense prediction architecture에 사용을 해도 괜찮다.


논문에서는 기본적인 context module을 가지고 설명을 시작한다. 각각의 dilated factor가 다른 7개의 레이어(factor: 1,1,2,4,8,16,1) 와 3x3 convolution을 가진 형태로 시작한다.

그리고 기존의 cnn의 초기화 방법과는 다른방식으로 초기화를 진행을 한다. 왜냐하면 이것들이 생각보다 성능이 좋지 않았기 때문이었다.




a는 featuremap의 인덱스, outputmap의 인덱스는 b. 이 방법은 RNN방법에서 자주 쓰이는 방법이다.

일반적으로 이렇게 초기화를 하면 backpropagation이 잘 안된다고 하는데,

실제로 논문에서 해본바에 따르면 backpropagation이 잘되어서 featureMap의 정확도를 높여준다고 한다.

이렇게 해서 multi-scale Context aggregation을 위한 context module도 완성이 된다.


실제로도 꽤나 좋은 성능을 보이는데, 이 부분은 논문을 참고하면 좋을것 같다.



현재까지 dilated convolution, front-end module, context module 이렇게 해당 논문에서 중요하게 생각하는 것들에 대해

그 개념을 알아보았다. 그런데 명확히 와 닿는 부분이 부족해서

다음 시간에는 코드를 보면서 이에 대한 명확한 것들을 채워나가보자

반응형
반응형

텐서플로우가 업데이트가 되면서 많은것들이 바뀌었습니다.

기본 메서드들의 이름도 바뀌고, 다른 용법들도 많이 바뀌고 있습니다.

너무나 빠른 변화가 느껴집니다.


이번에는 학습 파라미터를 저장하고 그것을 불러오는 코드를 정리해보겠습니다.


1. 먼저 저장할 파라미터를 정합니다.

2. 그것들을 list 형식으로 만들어 줍니다.

3. tf.train.saver(list) 로 텐서플로우에게 이것이 저장할 변수라는 것을 알려줍니다.


>>코드 : 

#Create a saver

param_list = [W_h1, b_h1, W_h2, b_h2, W_o, b_o]

saver = tf.train.Saver(param_list)




4. 학습할때마다 저장을 하도록 합니다.


for i in range(1000):

    _,loss_, acc = sess.run([train,cost, accuracy],feed_dict = tensor_map)

    if i % 100 == 0:

        saver.save(sess,'./tensorflow_live.ckpt')

        print("step: ",i)

        print("loss_: ",loss_)

        print("accuracy: ", acc)

        print("============")



이렇게 해서 텐서플로우의 파라미터들을 저장해서 다음에 불러올 수 있습니다.



그러면 나중에 불러올때는 어떻게 해야될지 알아보겠습니다.


<Parameter restore>



1. 세션을 먼저 열어줍니다. tf.Session()

2. 변수들을 초기화 시켜줍니다. tf.global_variables_initializer()

3. 가져올 파일을 import를 시켜줍니다.  tf.train.import.meta_graph('/파일이름.meta')

   

   텐서플로우가 업데이트 되면서 파라미터들이 meta파일에 저장이 됩니다.

   그것을 불러주면 해결이 됩니다. 


4. 그리고 import한 파일을 restore시킵니다.  new_saver.restore(sess, tf.train.latest_checkpoint('./'))


sess = tf.Session()

sess.run(tf.global_variables_initializer())



new_saver = tf.train.import_meta_graph('tensorflow_live.ckpt.meta')

new_saver.restore(sess, tf.train.latest_checkpoint('./'))





이렇게 하면 파라미터들을 저장하고 다시 읽어 올수가 있습니다.

시간을 이렇게 아껴요!

반응형
반응형

이전에는 텐서플로우를 설치하기 위해서는 리눅스가 필수적이었는데,

이번에 업데이트가 되면서 윈도우에서도 돌아가게 되었습니다.

그래서 컴퓨터를 포멧을 하고, 설치를 다시한 것을 포스팅을 합니다.



1) 텐서플로우 홈페이지에 들어가서 download하는 방법이 적힌곳으로 페이지를 이동 합니다


링크:  https://www.tensorflow.org/get_started/os_setup




아래로 내려가다 보면 window설치를 하는곳이 있는데, 두가지 방법으로 설치가 가능하다고 나옵니다.


아나콘다를 통한 설치와 아나콘다가 없는 파이썬으로 설치입니다.

여기서 중요한것은 3.5버전이여야 된다는 것입니다.

저는 미리 3.6버전을 설치했는데, 지원이 안된다고 해서 다시 아나콘다 버전으로 설치를 하였습니다.



아나콘다 링크로 들어가서 해당 아나콘다를 다운받아 설치를 하였습니다.


그리고 나서 cmd 창에서 텐서플로우를 설치하기 시작합니다.


커맨드 창에 pip install ~~~ 로 시작한 부분을 적어줍니다.

복사 붙여넣기가 되니, 일일히 칠 필요가 없습니다.




그랬더니 왠걸 오류가 나면서 설치가 안되더라구요.


구글링을 해서 찾아보니, 텐서플로우 자체를 다운받아 놓은 상태로 설치를 하면 해결이 가능하다고 하여

직접 다운로드를 하였습니다.


http:ss/~~~~~~~.whl 부분을 인터넷창에 입력하고 엔터를 누르면 다운이 됩니다.


그리고 해당 경로로 이동하여


pip install tensorflow-0.12.1-cp35-cp35m-win_amd64.whl 


을 입력하면 깔끔하게 설치가 되었습니다.


설치가 제대로 되었는지 확인방법은 직접 코드를 입력하면 되겠죠?


cmd창에다 python 이라고 입력 후,


import tensorflow as tf 

라고 코드를 써서 제대로 import가 되는지 확인을 하였습니다






이상이 없는것을 확인을 하였다면 tensorflow가 잘 설치가 된것입니다.

이제 학습을 시키러 가보시죠?^^

반응형
반응형

http://go.ted.com/HJ0Ajw


강화학습에 관한 영상인데,

2007년도에 촬영이 된것이 놀랍다.


난 작년에야 강화학습에 대해 알게되었는데, 10년전부터 이러한 노력이 있었구나...

많이 부족하지만 부지런히 따라가야지.

반응형
반응형

하이이이잉ㅋㅋㅋ

본문 위쪽에 광고가 개제 된ㅂ니다

반응형
반응형

윈도우

다음과 같이 가상환경을 실행하세요.

C:\Users\Name\djangogirls> myvenv\Scripts\activate


반응형
반응형

http://liveupdate.tistory.com/179

반응형

'CS > 타이젠' 카테고리의 다른 글

[타이젠] 외부 application 실행시키기  (0) 2017.08.11
[타이젠] 슬라이드  (0) 2016.12.27

+ Recent posts