아래의 스크립트를 이용하여 변환이 가능하다는데, 정작 변환하고 실행하려고 하면 안되고(import는 안건드리니)

$ tf_upgrade_v2 --infile tensorfoo.py --outfile tensorfoo-upgraded.py

[링크 : https://www.tensorflow.org/guide/upgrade?hl=ko]

 

차라리 아래처럼 import tensorflow as tf를 compat.v1 으로 바꾸어주고, v2 를 끄면 구버전이 실행된다.

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

[링크 : https://www.tensorflow.org/guide/migrate?hl=ko]

 

 

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

돌려보니 먼가 나오긴 한데

INFO line 7:16: Renamed 'tf.random_uniform' to 'tf.random.uniform'
INFO line 8:16: Renamed 'tf.random_uniform' to 'tf.random.uniform'
INFO line 11:4: Renamed 'tf.placeholder' to 'tf.compat.v1.placeholder'
INFO line 12:4: Renamed 'tf.placeholder' to 'tf.compat.v1.placeholder'
INFO line 25:12: Renamed 'tf.train.GradientDescentOptimizer' to 'tf.compat.v1.train.GradientDescentOptimizer'
INFO line 30:5: Renamed 'tf.Session' to 'tf.compat.v1.Session'
INFO line 31:13: Renamed 'tf.global_variables_initializer' to 'tf.compat.v1.global_variables_initializer'
TensorFlow 2.0 Upgrade Script
-----------------------------
Converted 1 files

 

잘 돈다는 보장은 없다 -_-

 

요런 에러가 뜨면

RuntimeError: tf.placeholder() is not compatible with eager execution.

 

아래줄 추가해주면 되는데

tf.compat.v1.disable_eager_execution()

[링크 : https://luvstudy.tistory.com/122]

 

정작 텐서 곱할 때, 에러가 발생한다.

RuntimeError: resource: Attempting to capture an EagerTensor without building a function.

 

요건 막혀서 모르겠네 -_-

함수를 만들지 않고 eagertensor를 capture 하기 시도해서 에러가 발생한거라면..

함수(building a function)를 만들면 되는건가?

'프로그램 사용 > yolo_tensorflow' 카테고리의 다른 글

mobilenet v2 ssd  (0) 2024.01.11
ssd-mobilenetv2 on jupyter notebook  (2) 2024.01.10
골빈해커의 3분 딥러닝 github  (0) 2024.01.10
ReLU - Rectified Linear Unit  (0) 2024.01.10
softmax  (0) 2024.01.10
Posted by 구차니

타이핑 하기 귀찮으니(!)

[링크 : https://github.com/golbin/TensorFlow-Tutorials]

 

+

현재 시점에서 아래의 소스는 단 두 줄 손 보면 돌아는 간다. (tfv2 인데 tfv1 하위 호환성으로 작동 시키기)

# X 와 Y 의 상관관계를 분석하는 기초적인 선형 회귀 모델을 만들고 실행해봅니다.
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

x_data = [1, 2, 3]
y_data = [1, 2, 3]

W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.random_uniform([1], -1.0, 1.0))

# name: 나중에 텐서보드등으로 값의 변화를 추적하거나 살펴보기 쉽게 하기 위해 이름을 붙여줍니다.
X = tf.placeholder(tf.float32, name="X")
Y = tf.placeholder(tf.float32, name="Y")
print(X)
print(Y)

# X 와 Y 의 상관 관계를 분석하기 위한 가설 수식을 작성합니다.
# y = W * x + b
# W 와 X 가 행렬이 아니므로 tf.matmul 이 아니라 기본 곱셈 기호를 사용했습니다.
hypothesis = W * X + b

# 손실 함수를 작성합니다.
# mean(h - Y)^2 : 예측값과 실제값의 거리를 비용(손실) 함수로 정합니다.
cost = tf.reduce_mean(tf.square(hypothesis - Y))
# 텐서플로우에 기본적으로 포함되어 있는 함수를 이용해 경사 하강법 최적화를 수행합니다.
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)
# 비용을 최소화 하는 것이 최종 목표
train_op = optimizer.minimize(cost)

# 세션을 생성하고 초기화합니다.
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    # 최적화를 100번 수행합니다.
    for step in range(100):
        # sess.run 을 통해 train_op 와 cost 그래프를 계산합니다.
        # 이 때, 가설 수식에 넣어야 할 실제값을 feed_dict 을 통해 전달합니다.
        _, cost_val = sess.run([train_op, cost], feed_dict={X: x_data, Y: y_data})

        print(step, cost_val, sess.run(W), sess.run(b))

    # 최적화가 완료된 모델에 테스트 값을 넣고 결과가 잘 나오는지 확인해봅니다.
    print("\n=== Test ===")
    print("X: 5, Y:", sess.run(hypothesis, feed_dict={X: 5}))
    print("X: 2.5, Y:", sess.run(hypothesis, feed_dict={X: 2.5}))

 

$ python lr.py
2024-01-10 11:39:49.775206: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-01-10 11:39:49.775245: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-01-10 11:39:49.776215: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-01-10 11:39:49.781682: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-01-10 11:39:50.440334: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.3
  warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}"
WARNING:tensorflow:From /home/falinux/.local/lib/python3.10/site-packages/tensorflow/python/compat/v2_compat.py:108: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.
Instructions for updating:
non-resource variables are not supported in the long term
Tensor("X:0", dtype=float32)
Tensor("Y:0", dtype=float32)
2024-01-10 11:39:51.327415: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:388] MLIR V1 optimization pass is not enabled
0 6.4782066 [1.2373642] [-0.24653786]
1 0.089632 [1.1144395] [-0.29217595]
2 0.012737438 [1.1244997] [-0.27951655]
3 0.011264746 [1.1201066] [-0.2734131]
4 0.01071928 [1.1173724] [-0.2667731]
5 0.010209985 [1.1145341] [-0.26036742]
6 0.009725014 [1.1117826] [-0.2541076]
7 0.009263077 [1.1090952] [-0.2479991]
8 0.008823066 [1.1064726] [-0.24203737]
9 0.008403975 [1.1039131] [-0.23621896]
10 0.008004769 [1.1014152] [-0.2305404]
11 0.007624544 [1.0989771] [-0.22499838]
12 0.007262358 [1.0965978] [-0.21958955]
13 0.0069174054 [1.0942756] [-0.21431077]
14 0.0065888255 [1.0920093] [-0.20915887]
15 0.0062758424 [1.0897975] [-0.20413081]
16 0.0059777307 [1.0876389] [-0.19922365]
17 0.0056937817 [1.0855321] [-0.19443446]
18 0.0054233256 [1.083476] [-0.1897604]
19 0.0051657106 [1.0814693] [-0.1851987]
20 0.0049203373 [1.0795108] [-0.18074667]
21 0.004686633 [1.0775993] [-0.17640167]
22 0.0044640056 [1.0757339] [-0.17216106]
23 0.0042519583 [1.0739133] [-0.1680224]
24 0.004049988 [1.0721365] [-0.16398326]
25 0.0038576098 [1.0704024] [-0.16004121]
26 0.0036743751 [1.06871] [-0.15619393]
27 0.0034998383 [1.0670582] [-0.15243913]
28 0.003333594 [1.0654461] [-0.1487746]
29 0.003175243 [1.0638729] [-0.14519812]
30 0.0030244188 [1.0623374] [-0.14170769]
31 0.0028807523 [1.0608389] [-0.13830112]
32 0.0027439168 [1.0593764] [-0.13497646]
33 0.0026135833 [1.057949] [-0.13173172]
34 0.002489428 [1.056556] [-0.12856494]
35 0.0023711843 [1.0551964] [-0.12547435]
36 0.0022585478 [1.0538695] [-0.12245804]
37 0.0021512664 [1.0525745] [-0.11951423]
38 0.0020490757 [1.0513107] [-0.11664119]
39 0.0019517452 [1.0500772] [-0.11383722]
40 0.0018590376 [1.0488734] [-0.11110065]
41 0.0017707323 [1.0476985] [-0.10842989]
42 0.0016866213 [1.0465518] [-0.1058233]
43 0.0016065066 [1.0454327] [-0.10327938]
44 0.0015301956 [1.0443406] [-0.1007966]
45 0.0014575059 [1.0432746] [-0.09837352]
46 0.0013882784 [1.0422344] [-0.09600867]
47 0.0013223292 [1.0412191] [-0.0937007]
48 0.0012595187 [1.0402282] [-0.0914482]
49 0.0011996872 [1.0392612] [-0.08924985]
50 0.0011427039 [1.0383173] [-0.08710436]
51 0.0010884297 [1.0373962] [-0.08501042]
52 0.0010367227 [1.0364972] [-0.08296681]
53 0.0009874817 [1.0356199] [-0.08097235]
54 0.0009405748 [1.0347636] [-0.07902583]
55 0.00089589664 [1.0339279] [-0.07712609]
56 0.00085334125 [1.0331123] [-0.07527205]
57 0.0008128048 [1.0323163] [-0.07346255]
58 0.0007741994 [1.0315394] [-0.07169659]
59 0.00073742354 [1.0307813] [-0.06997304]
60 0.00070239493 [1.0300413] [-0.06829095]
61 0.00066903216 [1.0293192] [-0.0666493]
62 0.0006372516 [1.0286143] [-0.06504711]
63 0.0006069818 [1.0279264] [-0.0634834]
64 0.00057814806 [1.0272552] [-0.0619573]
65 0.00055068725 [1.0265999] [-0.06046791]
66 0.0005245278 [1.0259604] [-0.05901428]
67 0.0004996119 [1.0253364] [-0.0575956]
68 0.00047588357 [1.0247273] [-0.05621104]
69 0.0004532766 [1.0241328] [-0.05485978]
70 0.00043174453 [1.0235528] [-0.05354097]
71 0.00041123512 [1.0229865] [-0.05225388]
72 0.0003917031 [1.022434] [-0.05099772]
73 0.00037309653 [1.0218947] [-0.04977177]
74 0.00035537416 [1.0213684] [-0.04857529]
75 0.00033849102 [1.0208547] [-0.04740757]
76 0.00032241447 [1.0203533] [-0.04626793]
77 0.00030709928 [1.0198641] [-0.04515567]
78 0.00029251093 [1.0193865] [-0.04407016]
79 0.0002786171 [1.0189205] [-0.04301074]
80 0.00026538406 [1.0184656] [-0.04197682]
81 0.00025277727 [1.0180218] [-0.04096771]
82 0.0002407704 [1.0175885] [-0.0399829]
83 0.0002293337 [1.0171658] [-0.03902172]
84 0.00021844136 [1.0167531] [-0.03808369]
85 0.00020806213 [1.0163504] [-0.03716817]
86 0.00019818085 [1.0159572] [-0.0362747]
87 0.000188766 [1.0155737] [-0.03540265]
88 0.00017980166 [1.0151993] [-0.03455162]
89 0.00017126095 [1.0148339] [-0.03372103]
90 0.00016312544 [1.0144774] [-0.0329104]
91 0.0001553779 [1.0141293] [-0.03211929]
92 0.00014799698 [1.0137897] [-0.03134715]
93 0.00014096718 [1.0134581] [-0.03059359]
94 0.00013426914 [1.0131347] [-0.02985811]
95 0.00012789248 [1.0128189] [-0.02914038]
96 0.00012181744 [1.0125108] [-0.02843988]
97 0.00011603059 [1.01221] [-0.02775621]
98 0.00011052046 [1.0119165] [-0.02708898]
99 0.00010527024 [1.01163] [-0.02643778]

=== Test ===
X: 5, Y: [5.0317125]
X: 2.5, Y: [2.5026374]

[링크 : https://github.com/golbin/TensorFlow-Tutorials/blob/master/03%20-%20TensorFlow%20Basic/03%20-%20Linear%20Regression.py]

'프로그램 사용 > yolo_tensorflow' 카테고리의 다른 글

ssd-mobilenetv2 on jupyter notebook  (2) 2024.01.10
텐서플로우 v1 을 v2로 마이그레이션은 실패 -_-  (0) 2024.01.10
ReLU - Rectified Linear Unit  (0) 2024.01.10
softmax  (0) 2024.01.10
텐서플로우 학습  (0) 2024.01.09
Posted by 구차니

ReLU는 일종의 threshold 함수인데(loss 함수 혹은 손실 함수 등등등..)

0 미만은 0 으로 억제하는 함수이다.

 

그나저나 Rectified를 찾아보니 정정하다(correct) 정류하다 등으로 뜻이 나오는데

수정된 선형 단위 라고 번역을 하면 되려나?

 

[링크 : https://ko.wikipedia.org/wiki/ReLU]

 

retifier는 전자회로에서 "정류기"로 많이 번역되는데, 다이오드 등을 통해서 교류를 직류로 바꾸는 걸 의미한다.

[링크 : https://ko.wikipedia.org/wiki/정류기]

 

그나저나 다이오드의 전압 그래프를 보면 ReLU랑 비슷한 것 같으면서도 아닌것 같기도 하고(...?!)

아무튼 머.. 그렇다고 한다.

[링크 : http://www.ktechno.co.kr/ls_parts/parts04.html]

Posted by 구차니

netron으로 보다보면 softmax라는게 나오는데

그냥 그러려니 하고 넘어가던거에서 조금은 이론적으로 설명이 되는걸 보니 궁금해짐

[링크 : https://m.hanbit.co.kr/store/books/book_view.html?p_code=B7257101308]

 

아무튼 수식으로는 먼가 와닫지 않는데

[링크 : https://syj9700.tistory.com/38]

 

값들의 평균을 내어 합이 1이 되도록 정규화한다고 해야하나..

(1,2,8)을 (0.001, 0.002, 0.997) 로 변환한다.

(1,2,8) 에 e^n 을 하면

(e^1, e^2, e^8) 이 되고

밑은 e^1 +  e^2 + e^8 하면 되니까

(e^1 / (e^1 +  e^2 + e^8), e^2 / (e^1 +  e^2 + e^8), e^8 / (e^1 +  e^2 + e^8)) 로 계산하면

 

(2.71828182845904, 7.38905609893065, 2980.95798704173)

2.71828182845904 + 7.38905609893065 + 2980.95798704173 = 2991.06532496912

(2.71828182845904 / 2991.06532496912, 7.38905609893065 / 2991.06532496912, 2980.95798704173 / 2991.06532496912)

= (0.000908800555363033, 0.00247037603533682, 0.9966208234093)

 

이름과 달리 최댓값(max) 함수를 매끄럽거나 부드럽게 한 것이 아니라, 최댓값의 인수인 원핫 형태의 arg max 함수를 매끄럽게 한 것이다. 그 계산 방법은 입력값을 자연로그의 밑을 밑으로 한 지수 함수를 취한 뒤 그 지수함수의 합으로 나눠주는 것이다.

[링크 : https://ko.wikipedia.org/wiki/소프트맥스_함수]

 

For example, the standard softmax of (1,2,8) is approximately (0.001,0.002,0.997), which amounts to assigning almost all of the total unit weight in the result to the position of the vector's maximal element (of 8).

>>> import numpy as np
>>> a = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
>>> np.exp(a) / np.sum(np.exp(a)) 
array([0.02364054, 0.06426166, 0.1746813, 0.474833, 0.02364054,
       0.06426166, 0.1746813])

[링크 : https://en.wikipedia.org/wiki/Softmax_function]

 

아무튼 계산에 의한 결과가 true, false로 판별할 수 있는 값이 아닌

사람이 보기 편한 값으로 환산되기 때문에, 에측에는 softmax를 쓰지 말라는게 이해 될 것 같기도, 안 갈 것 같기도..

[링크 : https://velog.io/@francomoon7/예측에-Softmax를-사용하면-안되는-이유]

Posted by 구차니
Linux2024. 1. 9. 16:18

요즘(?) 리눅스는 언젠가 부터 그냥 냅두면 메모리를 야곰야곰 먹으면서 file system을 캐싱하는데

page cache를 위해서 free 메모리를 자꾸 갉아먹는다.

[링크 : https://jujupapa.tistory.com/31]

 

slabtop이라는걸 통해서 캐싱되고 있는 페이지를 확인할 수 있다는데 봐도 무슨 소리이지 모르겠고..

slabtop
fopen /proc/slabinfo: 허가 거부

sudo cat /proc/slabinfo 
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack         856   1248    256   32    2 : tunables    0    0    0 : slabdata     39     39      0
ovl_inode             44     44    728   22    4 : tunables    0    0    0 : slabdata      2      2      0
i915_dependency      256    256    128   32    1 : tunables    0    0    0 : slabdata      8      8      0

sudo slabtop -o
 활성 / 총 개체 수 (사용 %) : 3102305 / 3121463 (99.4%)
 활성 / 총 slab 수 (사용 %)   : 87745 / 87745 (100.0%)
 활성 / 총 캐시 수 (사용 %) : 130 / 178 (73.0%)
 활성 / 총 크기 (사용 %)     : 748809.62K / 753765.53K (99.3%)
 최소 / 평균 / 최대 개체 수: 0.01K / 0.24K / 9.00K

  활성 개체    사용개체크기  SLAB 개체/SLAB 캐시  크기 이름 
994617 994553  99%    0.10K  25503       39    102012K buffer_head            
463407 463082  99%    0.19K  22067       21     88268K dentry                 
342720 342595  99%    0.05K   4032       85     16128K shared_policy_node     
268299 268294  99%    1.16K   9937       27    317984K ext4_inode_cache       

sudo slabtop
 M-m~Y~\M-l~DM-1 / M-lM-4~] M-jM-0~\M-lM-2M-4 M-l~H~X (M-l~BM-,M-l~ZM-) %) : 3099702 / 3121184 (99.3%)
 M-m~Y~\M-l~DM-1 / M-lM-4~] slab M-l~H~X (M-l~BM-,M-l~ZM-) %)   : 87736 / 87736 (100.0%)
 M-m~Y~\M-l~DM-1 / M-lM-4~] M-lM-:~PM-l~K~\ M-l~H~X (M-l~BM-,M-l~ZM-) %) : 130 / 178 (73.0%)
 M-m~Y~\M-l~DM-1 / M-lM-4~] M-m~AM-,M-jM-8M-0 (M-l~BM-,M-l~ZM-) %)     : 748420.12K / 753805.55K (99.3%)
 M-lM-5~\M-l~F~L / M-m~O~IM-jM-7M-  / M-lM-5~\M-k~L~@ M-jM-0~\M-lM-2M-4 M-l~H~X: 0.01K / 0.24K / 9.00K

  M-m~Y~\M-l~DM-1 M-jM-0~\M-lM-2M-4    M-l~BM-,M-l~ZM-)M-jM-0~\M-lM-2M-4M-m~AM-,M-jM-8M-0  SLAB M-jM-0~\M-lM-2M-4/SLAB M-lM-:~PM-l~K~\  M-m~AM-,M-jM-8M-0 M-l~]M-4M-kM-&~D 
995397 995397  99%    0.10K  25523       39    102092K buffer_head
463407 462914  99%    0.19K  22067       21     88268K dentry
342720 342468  99%    0.05K   4032       85     16128K shared_policy_node

[링크 : https://linux.die.net/man/1/slabtop]

 

glusterFS 쪽에서 나오는 문서.

아무튼 커널에 의해서 캐싱된 내용을 어떻게 유지할 지 등에 대한 설정이 sysfs에 존재한다.

vm.vfs_cache_pressure
This option controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to reclaim dentries and inodes at a "fair" rate with respect to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will never reclaim dentries and inodes due to memory pressure and this can easily lead to out-of-memory conditionsIncreasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes.

With GlusterFS, many users with a lot of storage and many small files easily end up using a lot of RAM on the server side due to 'inode/dentry' caching, leading to decreased performance when the kernel keeps crawling through data-structures on a 40GB RAM system. Changing this value higher than 100 has helped many users to achieve fair caching and more responsiveness from the kernel.

[링크 : https://docs.gluster.org/en/main/Administrator-Guide/Linux-Kernel-Tuning/#linux-kernel-tuning-for-glusterfs]

 

 

To free pagecache: (페이지케쉬 클리어)
# echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes: (트리와 아이노드 클리어)
# echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes: (1번과 2번 모두 클리어)
# echo 3 > /proc/sys/vm/drop_caches

[링크 : https://help.iwinv.kr/manual/read.html?idx=464]

'Linux' 카테고리의 다른 글

systemd 지연된 시작  (0) 2024.02.29
btrfs fsck  (0) 2024.02.13
multitail / tail  (2) 2023.10.18
top 로그로 남기기  (0) 2023.10.17
tcpdump  (0) 2023.09.04
Posted by 구차니

이것저것 조사해보는데

무식하지만 가장 확실한(?) docker로 버전별로 혹은 프로젝트 별로 생성하는 것부터

python 에서 제공하는 venv

venv를 확장해서 사용하는 virtualenv

그리고 conda 정도로 정리되는 듯.

 

 

conda

[링크 : https://m.blog.naver.com/jonghong0316/221683053696]

 

virtualenv, venv

[링크 : https://jaemunbro.medium.com/python-virtualenv-venv-설정-aaf0e7c2d24e]

 

conda, venv

[링크 : https://yongeekd01.tistory.com/39]

 

venv, pipenv, conda, docker(이걸.. 가상이라고 하긴 해야 하는데.. 해줘야 하는거 맞....나?)

[링크 : https://dining-developer.tistory.com/21]

 

virtualenv, pyenv, pipenv

[링크 : https://jinwoo1990.github.io/dev-wiki/python-concept-3/]

 

+

conda - Conda provides package, dependency, and environment management for any language.

파이썬 전용이 아닌가?

[링크 : https://docs.conda.io/en/latest/]

[링크 : https://anaconda.org/]

[링크 : https://anaconda.org/anaconda/conda]

 

+

virtualenv

is slower (by not having the app-data seed method),
is not as extendable,
cannot create virtual environments for arbitrarily installed python versions (and automatically discover these),
is not upgrade-able via pip,
does not have as rich programmatic API (describe virtual environments without creating them).

[링크 : https://virtualenv.pypa.io/en/latest/]

 

+

venv

[링크 : https://docs.python.org/3/library/venv.html] 3.12.1

 

venv는 3.7 이후부터 사용이 가능한 것으로 보임. 즉, 버전별로 호환성은 없을 가능성이 있음

pyvenv 스크립트는 파이썬 3.6 에서 폐지되었고, 가상 환경이 어떤 파이썬 인터프리터를 기반으로 하는지에 대한 잠재적인 혼동을 방지하기 위해 python3 -m venv를 사용합니다.

[링크 : https://docs.python.org/ko/3.7/library/venv.html]

'Programming > python(파이썬)' 카테고리의 다른 글

파이썬 소켓 예제  (0) 2024.01.17
ipython notebook -> jupyter notebook  (0) 2024.01.11
pyplot legend picking  (0) 2023.10.05
matplotlib  (0) 2023.10.04
pyplot  (0) 2023.10.04
Posted by 구차니

오래된 글들이라 지금에 와서는 pip 패키지 버전 문제등으로 여전히 쉽지 않다.

학습에 대해서 어렵게 생각했는데.. python과 tensorflow를 통해서 텐서(다차원 행렬)을 곱하는 것이 포인트 이고

그 데이터를 어떻게 구성하고 돌리냐(학습 데이터, 검증 데이터, 라벨)가 전부인 듯.

 

[링크 : https://github.com/abhimanyu1990/SSD-Mobilenet-Custom-Object-Detector-Model-using-Tensorflow-2]

 

[링크 : https://seoftware.tistory.com/108]

[링크 : https://seoftware.tistory.com/109]

[링크 : https://towardsdatascience.com/custom-object-detection-using-tensorflow-from-scratch-e61da2e10087]

    [링크 : https://github.com/bourdakos1/Custom-Object-Detection]

    [링크 : https://github.com/cloud-annotations/cloud-annotations]

 

[링크 : https://blog.roboflow.com/how-to-train-mobilenetv2-on-a-custom-dataset/]

    [링크 : https://colab.research.google.com/drive/1bOzVaDQo8h6Ngstb7AcfzC35OihpHspt]

Posted by 구차니

렉서스랑 토요타 차량 두가지 종류가 타이어 옆으로 해서 헤드라이트의 커넥터에 접근이 가능하도록

물리보안적인 측면에서 허술하게 만들어져 발생한 사건으로 보인다.

can이라서 접근성이 좋지 않아 이정도인데

현재~근미래에 can에서 ethernet으로 전환하게 되면 너무 손쉽게 뚫리지 않을까 걱정된다.

기본적으로 통신은 보안채널로 하게 되려나?

 

렉서스 차량 99대와 토요타 랜드크루저 92대가 도난

[링크 : https://v.daum.net/v/1OAq5WD7kL]

 

 

+

BroadR-Reach

 

BroadR-Reach technology is an Ethernet physical layer standard designed for automotive connectivity applications

[링크 : https://en.wikipedia.org/wiki/BroadR-Reach]

 

 

[링크 : https://m.blog.naver.com/lecroykorea/221105708892]

[링크 : https://m.blog.naver.com/lecroykorea/221065291291]

[링크 : https://m.blog.naver.com/lecroykorea/221069260339]

'이론 관련 > 네트워크 관련' 카테고리의 다른 글

multicast  (0) 2023.08.26
cobs  (0) 2023.05.25
PAM4  (0) 2023.01.16
nrz encoding/decoding  (0) 2022.08.24
광 케이블 DAC, AOC  (0) 2022.06.30
Posted by 구차니

대한항공에서 아이들을 위해 제공되는 헤드폰 모델

누가 대한항공꺼 아니랠까봐 파란색

애들 씌워놓으니 카트라이더 다오 머리 같아져서 귀여운데 막상 사려니 은근 비싸다

 

Connect+ Wired Kids Headphones [7 colors]
Wired Headphones Designed for Kids Age 3+

[링크 : https://www.lilgadgets.com/products/connect]

[링크 : https://www.amazon.com/Connect-Premium-Headphones-SharePort-Children/dp/B00Q3I690I]

 

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

장보기  (0) 2024.01.14
피곤피곤 오늘도 피곤  (0) 2024.01.13
집 도착 콜밴  (0) 2024.01.08
바나힐 테마파크  (0) 2024.01.07
패키지 여행 힘들다 ㅠㅠ  (0) 2024.01.06
Posted by 구차니

장인어른 부분까지 해서

고정금액으로 6명 콜밴타고 공항에서 옴

2대 택시 잡는것 보다도 싸고

1대 택시 보다는 조금 비싸긴 한데 아무래도 콜밴이라

짐칸이 넉넉하니 좋긴하다.

 

콜밴은 일반 승용택시와 다르게 지역구분이 없다는 신기한 정보 획득!

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

피곤피곤 오늘도 피곤  (0) 2024.01.13
lilgadget 헤드폰 단돈 21.95$  (0) 2024.01.09
바나힐 테마파크  (0) 2024.01.07
패키지 여행 힘들다 ㅠㅠ  (0) 2024.01.06
다낭 도착  (0) 2024.01.05
Posted by 구차니