하담이랑 병원놀이를했다
내가 몸전체가 다아프다고하니
할아버지냐고 물어보길래 그렇다고하니
죽을때가 다되서 그런거란다;;

요즘 패드를 많이 봐서 패드랑 살라고했더니 난 컴퓨터랑 살라고한다;

'Life' 카테고리의 다른 글

하담이 작품  (0) 2019.08.17
iOS 개발자 프로그램 갱신...  (0) 2019.07.30
하담아 ...  (0) 2019.06.18
[Life] 연말정산-원천징수영수증  (0) 2019.05.12
실패  (0) 2019.04.18
구글 광고 수익 증가중..  (0) 2019.04.10

기존에 사용했던 코드가

public static readonly BindableProperty SpacingProperty =

    BindableProperty.Create<WrapLayout, double>(w => w.Spacing, 5,

        propertyChanged: (bindable, oldvalue, newvalue) => ((WrapLayout)bindable).layoutCache.Clear());

 

아래처럼 줄이 그어져 확인해보니


"Create<> (generic) is obsolete as of version 2.1.0 and is no longer supported."

 

위 문구 처럼 Create<> 는 더 이상 지원하지 않는다고한다.

 

위 내용을 지원되는 현재 버전으로 변경하면 아래와 같다.

 

public static readonly BindableProperty SpacingProperty =

    BindableProperty.Create(nameof(Spacing), typeof(double), typeof(WrapLayout), 5.0,

        propertyChanged: (bindable, oldValue, newValue) => ((WrapLayout)bindable).layoutCache.Clear());

 

 

참고

https://forums.xamarin.com/discussion/comment/177726/#Comment_177726

https://forums.xamarin.com/discussion/62984/generic-versions-of-create-are-no-longer-supported-and-deprecated

 

 

BindableProperty.Create<BindablePicker, IList>(p => p.ItemsSource, null,

    propertyChanged: OnItemsSourcePropertyChanged);

=>

BindableProperty.Create(nameof(ItemsSource), typeof(IList), typeof(BindablePicker), null,

    propertyChanged: OnItemsSourcePropertyChanged);

 

 

private static void OnItemsSourcePropertyChanged(BindableObject bindable, IList oldValue, IList newValue)

=>

private static void OnItemsSourcePropertyChanged(BindableObject bindable, object oldValue, object newValue)

 

 

var tgr = new TapGestureRecognizer { NumberOfTapsRequired = 1 };

tgr.Tapped += (sender, args) =>

{

    // 처리할 내용

};

 

this.grid.GestureRecognizers.Add(tgr);

 

 

- NumberOfTapsRequired : tab수로 2로 설정한 경우 두번 tab 한 경우 이벤트가 발생된다.

 

위와 같은 형식으로 Image 도 아래처럼 Click 이벤트를 처리할수 있다.

 

var tgr = new TapGestureRecognizer { NumberOfTapsRequired = 1 };

tgr.Tapped += (sender, args) =>

{

    // 처리할 내용

};

 

this.image.GestureRecognizers.Add(tgr);

 

앞으로 앱을 더 늘려야하는데 시간이 될지...

일단 갱신이다. 어휴 왜이렇게 비싸... 얘네들은...;

 

'Life' 카테고리의 다른 글

하담이 작품  (0) 2019.08.17
iOS 개발자 프로그램 갱신...  (0) 2019.07.30
하담아 ...  (0) 2019.06.18
[Life] 연말정산-원천징수영수증  (0) 2019.05.12
실패  (0) 2019.04.18
구글 광고 수익 증가중..  (0) 2019.04.10

unzip 패키지 설치

sudo apt get unzip

 

압축풀기

unzip 파일명.zip

 

--------------------------------------------------------------------------------------------

junijuniya@kjunMainPC:~/digits$ sudo apt-get install unzip

[sudo] password for junijuniya:

Reading package lists... Done

Building dependency tree

Reading state information... Done

Suggested packages:

  zip

The following NEW packages will be installed:

  unzip

0 upgraded, 1 newly installed, 0 to remove and 29 not upgraded.

Need to get 158 kB of archives.

After this operation, 530 kB of additional disk space will be used.

Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 unzip amd64 6.0-20ubuntu1 [158 kB]

Fetched 158 kB in 1s (83.9 kB/s)

Selecting previously unselected package unzip.

(Reading database ... 59636 files and directories currently installed.)

Preparing to unpack .../unzip_6.0-20ubuntu1_amd64.deb ...

Unpacking unzip (6.0-20ubuntu1) ...

Processing triggers for mime-support (3.59ubuntu1) ...

Processing triggers for man-db (2.7.5-1) ...

Setting up unzip (6.0-20ubuntu1) ...

junijuniya@kjunMainPC:~/digits$ unzip v6.1.1.zip

Archive:  v6.1.1.zip

7a3d5f00f3ef0e81cdc3415b03c6ede98c3ef91c

   creating: DIGITS-6.1.1/

   creating: DIGITS-6.1.1/.github/

  inflating: DIGITS-6.1.1/.github/CONTRIBUTING.md

  inflating: DIGITS-6.1.1/.gitignore

  inflating: DIGITS-6.1.1/.gjslintrc

  inflating: DIGITS-6.1.1/.travis.yml

  inflating: DIGITS-6.1.1/CLA

  inflating: DIGITS-6.1.1/LICENSE

  inflating: DIGITS-6.1.1/MANIFEST.in

  inflating: DIGITS-6.1.1/README.md

  inflating: DIGITS-6.1.1/digits-devserver

  inflating: DIGITS-6.1.1/digits-lint

  inflating: DIGITS-6.1.1/digits-test

   creating: DIGITS-6.1.1/digits/

  inflating: DIGITS-6.1.1/digits/.gitignore

  inflating: DIGITS-6.1.1/digits/__init__.py

  inflating: DIGITS-6.1.1/digits/__main__.py

   creating: DIGITS-6.1.1/digits/config/

  inflating: DIGITS-6.1.1/digits/config/__init__.py

  inflating: DIGITS-6.1.1/digits/config/caffe.py

  inflating: DIGITS-6.1.1/digits/config/gpu_list.py

  inflating: DIGITS-6.1.1/digits/config/jobs_dir.py

  inflating: DIGITS-6.1.1/digits/config/log_file.py

  inflating: DIGITS-6.1.1/digits/config/server_name.py

  inflating: DIGITS-6.1.1/digits/config/store_option.py

  inflating: DIGITS-6.1.1/digits/config/tensorflow.py

  inflating: DIGITS-6.1.1/digits/config/torch.py

  inflating: DIGITS-6.1.1/digits/config/url_prefix.py

   creating: DIGITS-6.1.1/digits/dataset/

  inflating: DIGITS-6.1.1/digits/dataset/__init__.py

  inflating: DIGITS-6.1.1/digits/dataset/forms.py

   creating: DIGITS-6.1.1/digits/dataset/generic/

  inflating: DIGITS-6.1.1/digits/dataset/generic/__init__.py

  inflating: DIGITS-6.1.1/digits/dataset/generic/forms.py

  inflating: DIGITS-6.1.1/digits/dataset/generic/job.py

  inflating: DIGITS-6.1.1/digits/dataset/generic/test_views.py

  inflating: DIGITS-6.1.1/digits/dataset/generic/views.py

   creating: DIGITS-6.1.1/digits/dataset/images/

  inflating: DIGITS-6.1.1/digits/dataset/images/__init__.py

   creating: DIGITS-6.1.1/digits/dataset/images/classification/

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/__init__.py

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/forms.py

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/job.py

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/test_imageset_creator.py

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/test_views.py

  inflating: DIGITS-6.1.1/digits/dataset/images/classification/views.py

  inflating: DIGITS-6.1.1/digits/dataset/images/forms.py

   creating: DIGITS-6.1.1/digits/dataset/images/generic/

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/__init__.py

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/forms.py

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/job.py

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/test_lmdb_creator.py

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/test_views.py

  inflating: DIGITS-6.1.1/digits/dataset/images/generic/views.py

  inflating: DIGITS-6.1.1/digits/dataset/images/job.py

  inflating: DIGITS-6.1.1/digits/dataset/images/views.py

  inflating: DIGITS-6.1.1/digits/dataset/job.py

   creating: DIGITS-6.1.1/digits/dataset/tasks/

  inflating: DIGITS-6.1.1/digits/dataset/tasks/__init__.py

  inflating: DIGITS-6.1.1/digits/dataset/tasks/analyze_db.py

  inflating: DIGITS-6.1.1/digits/dataset/tasks/create_db.py

  inflating: DIGITS-6.1.1/digits/dataset/tasks/create_generic_db.py

  inflating: DIGITS-6.1.1/digits/dataset/tasks/parse_folder.py

  inflating: DIGITS-6.1.1/digits/dataset/tasks/parse_s3.py

  inflating: DIGITS-6.1.1/digits/dataset/views.py

  inflating: DIGITS-6.1.1/digits/device_query.py

   creating: DIGITS-6.1.1/digits/download_data/

 extracting: DIGITS-6.1.1/digits/download_data/__init__.py

  inflating: DIGITS-6.1.1/digits/download_data/__main__.py

  inflating: DIGITS-6.1.1/digits/download_data/cifar10.py

......

--------------------------------------------------------------------------------------------

 

CheckedComboBoxEdit 에 PlaceHolderText 기능을 적용하기 위해

 

checkedComboBoxEdit.Properties.NullText = "선택하세요.";

 

위처럼 코딩했는데 아래처럼 화면에 표시 되지 않았다.

 

ComboBoxEdit 에서는 이상없이 표시 되던 것이 CheckedComboBoxEdit 표시가 되지 않는다.

 

확인해 보니 아래 처럼 코딩해서 원하는 기능을 처리할수 있었다.

 

checkedComboBoxEdit.Properties.NullValuePromptShowForEmptyValue = true;

checkedComboBoxEdit.Properties.NullValuePrompt = "선택하세요.";

 

 

참고

https://www.devexpress.com/Support/Center/Question/Details/B199845/nulltext-does-not-display-on-checkedcomboboxedit

import tensorflow as tf

import matplotlib.pyplot as plt

import numpy as np

 

# 데이터셑 다운로드

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("./mnist/data/", one_hot=True)

 

# 실제 이미지는 28 * 28 = 784개의 특징을 가집니다.

X = tf.placeholder(tf.float32, [None, 784])

 

# 가짜 이미지를 위해 필요한 노이즈의 크기는 128로 설정합니다.

Z = tf.placeholder(tf.float32, [None, 128])

 

# 생성자: 128(노이즈) → 256(은닉층) → 784(입력층)

G_W1 = tf.Variable(tf.random_normal([128, 256], stddev=0.01))

G_b1 = tf.Variable(tf.zeros([256]))

G_W2 = tf.Variable(tf.random_normal([256, 784], stddev=0.01))

G_b2 = tf.Variable(tf.zeros([784]))

 

# 구분자: 784(입력층) → 256(은닉층) → 0 ~ 1(일치도)

D_W1 = tf.Variable(tf.random_normal([784, 256], stddev=0.01))

D_b1 = tf.Variable(tf.zeros([256]))

D_W2 = tf.Variable(tf.random_normal([256, 1], stddev=0.01))

D_b2 = tf.Variable(tf.random_normal([1]))

 

# 생성자 객체를 생성하는 함수입니다.

def generator(noise):

    hidden = tf.nn.relu(tf.matmul(noise, G_W1) + G_b1)

    output = tf.nn.sigmoid(tf.matmul(hidden, G_W2) + G_b2)

    return output

 

# 구분자 객체를 생성하는 함수입니다.

def discriminator(inputs):

    hidden = tf.nn.relu(tf.matmul(inputs, D_W1) + D_b1)

    output = tf.nn.sigmoid(tf.matmul(hidden, D_W2) + D_b2)

    return output

 

# 무작위 노이즈를 생성합니다.

def get_noise(batch_size, noise):

    return np.random.normal(size=(batch_size, noise))

 

# 가짜 이미지 생성자는 128 크기의 노이즈에서 불러옵니다.

G = generator(Z)

# 가짜 이미지 구분자는 128 크기의 노이즈가 생성한 784 크기의 이미지에서 불러옵니다.

D_gene = discriminator(G)

# 실제 이미지 구분자는 784 크기의 이미지에서 불러옵니다.

D_real = discriminator(X)

 

# 구분자의 손실 함수는 진짜 이미지가 1에 가깝고, 가짜 이미지가 0에 가깝도록 설정합니다.

loss_D = tf.reduce_mean(tf.log(D_real) + tf.log(1 - D_gene))

# 생성자의 손실 함수는 가짜 이미지가 1에 가깝도록 설정합니다.

loss_G = tf.reduce_mean(tf.log(D_gene))

 

 

# 구분자는 구분자 가중치 및 바이어스만을 사용합니다.

D_var_list = [D_W1, D_b1, D_W2, D_b2]

# 생성자는 생성자 가중치 및 바이어스만을 사용합니다.

G_var_list = [G_W1, G_b1, G_W2, G_b2]

 

# 구분자 최적화를 진행합니다.

train_D = tf.train.AdamOptimizer(0.001).minimize(-loss_D, var_list=D_var_list)

# 생성자 최적화를 진행합니다.

train_G = tf.train.AdamOptimizer(0.001).minimize(-loss_G, var_list=G_var_list)

 

# 세션을 생성해 그래프를 동작시킵니다.

sess = tf.Session()

sess.run(tf.global_variables_initializer())

 

# 구분자와 생성자의 비용 변수를 생성합니다.

loss_val_D, loss_val_G = 0, 0

 

# 배치 크기를 100으로 설정합니다.

batch_size = 100

total_batch = int(mnist.train.num_examples / batch_size)

 

for epoch in range(100):

    # 전체 배치 크기만큼 반복합니다.

    for i in range(total_batch):

        batch_x, batch_y = mnist.train.next_batch(batch_size)

        noise = get_noise(batch_size, 128)

        # 구분자는 실제 이미지 및 노이즈를 이용해 학습을 진행합니다.

        _, loss_val_D = sess.run([train_D, loss_D], feed_dict={X: batch_x, Z: noise})

        # 생성자는 노이즈만을 이용해 학습을 진행합니다.

        _, loss_val_G = sess.run([train_G, loss_G], feed_dict={Z: noise})

    # 1번 돌 때마다 학습 상황을 출력합니다.

    print('학습:', '%04d' % epoch,

          '구분자 오차: {:.4}'.format(loss_val_D),

          '생성자 오차: {:.4}'.format(loss_val_G))

    

    # 10번 돌 때마다 결과를 그림으로 확인합니다.

    if epoch == 0 or (epoch + 1) % 10 == 0:

        # 샘플 이미지의 크기는 10입니다.

        size = 10

        noise = get_noise(size, 128)

 

        # 생성자가 임의의 샘플 이미지를 생성하도록 합니다.

        samples = sess.run(G, feed_dict={Z: noise})

        

        # 만든 그림을 폴더에 출력할 수 있도록 합니다.

        fig, ax = plt.subplots(1, size, figsize=(size, 1))

        for i in range(size):

            ax[i].set_axis_off()

            # 28 * 28 크기의 이미지를 생성합니다.

            ax[i].imshow(np.reshape(samples[i], (28, 28)))

        plt.savefig('samples/{}.png'.format(str(epoch).zfill(4)), bbox_inches='tight')

        plt.close(fig)

 

 

 

 

 

아래는 출력된 이미지

 

 

 

 

 

 

C:\Projects>pip install virtualenv

Collecting virtualenv

  Downloading https://files.pythonhosted.org/packages/c4/9a/a3f62ac5122a65dec34ad4b5ed8d802633dae4bc06a0fc62e55fe3e96fe1/virtualenv-16.6.1-py2.py3-none-any.whl (2.0MB)

     |████████████████████████████████| 2.0MB 939kB/s

Installing collected packages: virtualenv

Successfully installed virtualenv-16.6.1

 

 

 

 

C:\Projects>python -m venv kjun

 

C:\Projects>ls

'ls'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는

배치 파일이 아닙니다.

 

C:\Projects>dir

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: 3AF6-6349

 

 C:\Projects 디렉터리

 

2019-06-19  오전 12:51    <DIR>          .

2019-06-19  오전 12:51    <DIR>          ..

2019-06-19  오전 12:51    <DIR>          kjun

               0개 파일                   0 바이트

               3개 디렉터리  35,647,705,088 바이트 남음

 

C:\Projects>

 

 

가상환경 실행

 

 

 

 

 

 

 

 

 

C:\Projects>python

Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import sys

>>> sys.version_info

sys.version_info(major=3, minor=6, micro=6, releaselevel='final', serial=0)

>>> sys.version

'3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)]'

>>> ^Z

https://duckduckgo.com/

가끔 유입경로에 https://duckduckgo.com/ 가 있어 먼가 했는데 (치킨 사이트인줄..;;)

검색엔진이었다.^^

개인 검색 정보를 추적하지 않고 구글보다 검색이 잘된다고하는데..

어떨지 한번 써봐야겠다..

 

 

'IT Info' 카테고리의 다른 글

덕덕고 검색엔진 (DuckDuckGo)  (0) 2019.06.29
ASUS Z270 WOL설정  (0) 2019.04.21
엑셀(Excel) 단축키  (0) 2019.04.21
드레텍 PM2.5 온습도계 O-702 후기  (0) 2019.03.19
raonk.exe 보안프로그램 제거  (0) 2019.02.16
샤오미 손세정제  (0) 2019.01.29

+ Recent posts