줄리아, 매트랩, 파이썬, R에서 동등한 코드들 📂프로그래밍

줄리아, 매트랩, 파이썬, R에서 동등한 코드들

Cheat Sheet : Equivalent Codes in Julia, Matlab, Python, R

일반Common

파이썬에 대해서 다음과 같은 환경이라고 하자.

import numpy as np
주석 comment
줄리아Julia #comment
파이썬Python
R
매트랩Matlab %comment
2차원 그리드 2D grid
파이썬Python np.meshgrid(x,y)
매트랩Matlab [X,Y] = meshgrid(x,y)
플래튼 Flatten
줄리아Julia y = vec(x)
파이썬Python y = np.ravel(x)
매트랩Matlab y = x(:)
영행렬 Zero array
줄리아Julia y = zeros(4,2)
매트랩Matlab
파이썬Python y = np.zeros([4,2])
R y = matrix(0,4,2)

푸리에 변환Fourier Transform

줄리아에 대해서 다음과 같은 환경이라고 하자.

using FFTW
푸리에 변환 Fourier transform
줄리아Julia y = fft(x)
R
매트랩Matlab
파이썬Python y = np.fft.fft(x)
푸리에 역변환 Inverse Fourier transform
줄리아Julia y = ifft(x)
매트랩Matlab
파이썬Python y = np.fft.ifft(x)
R x = fft(y,inverse=TRUE)/length(y)

보간법Interpolation

파이썬에 대해서 다음과 같은 환경이라고 하자.

from scipy.interpolate import griddata

$X, Y, P, Z$를 2차원 배열, $x, y$를 1차월 배열이라고 하자.

2차원 보간 2D interpolation
파이썬Python Z = griddata( (np.ravel(X), np.ravel(Y)), np.ravel(P), (x, y) )
매트랩Matlab Z = interp2(X, Y, P, x, y)

시각화Visualization

줄리아에 대해서 다음과 같은 환경이라고 하자.

using Plots

파이썬에 대해서 다음과 같은 환경이라고 하자.

import matplotlib.pyplot as plt

2차원 이미지로 출력하고자 하는 배열을 A라고 하자.

스케일 범위 지정 Set scale range
줄리아Julia heatmap(A, clim = (a,b))
파이썬Python plt.imshow(A)
plt.colorbar()
plt.clim(a,b)
수평선 Horizon line
줄리아Julia hline!(a)
파이썬Python plt.axhline(a)
수직선 Vertical line
줄리아Julia vline!(a)
파이썬Python plt.axvline(a)
-->

머신러닝Machine Learning

플럭스에 대해서 다음과 같은 환경이라고 하자.

using Flux

파이토치에 대해서 다음과 같은 환경이라고 하자.

import torch
import torch.nn as nn
import torch.nn.functional as F

텐서플로우에 대해서 다음과 같은 환경이라고 하자.

import tensorflow as tf
from tensorflow import keras
배열/텐서 Array/Tensor
플럭스Flux A = [1 2 3]
파이토치PyTorch A = torch.tensor([1, 2, 3])
텐서플로우TensorFlow A = tf.constant([1, 1, 1])
덴스 레이어 Dense layer
플럭스Flux Dense(in, out, bias=true, relu)
파이토치PyTorch torch.nn.Linear(in, out, bias=True)
텐서플로우TensorFlow keras.layers.Dense(out, activation="relu")
시퀀셜 모델 Sequential model
플럭스Flux model = Chain(
Dense(5, 10, relu),
Dense(10, 10, relu),
Dense(10, 2, relu)
)
파이토치PyTorch model = nn.Sequential(
nn.Linear(5, 10),
nn.Relu(),
nn.Linear(10, 10),
nn.Relu(),
nn.Linear(10, 2),
nn.Relu()
)
텐서플로우TensorFlow model = keras.models.Sequential([
keras.layers.Flatten(input_shape=[5]),
keras.layers.Dense(10, activation="relu"),
keras.layers.Dense(10, activation="relu"),
keras.layers.Dense(2, activation="relu"),
])
모델 요약 Model summary
플럭스Flux julia> model

Chain(
Dense(5, 10, relu), # 60 parameters
Dense(10, 10, relu), # 110 parameters
Dense(10, 2, relu), # 22 parameters
) # Total: 6 arrays, 192 parameters, 1.125 KiB.
파이토치PyTorch >>>model

Sequential(
(0): Linear(in_features=5, out_features=10, bias=True)
(1): ReLU()
(2): Linear(in_features=10, out_features=10, bias=True)
(3): ReLU()
(4): Linear(in_features=10, out_features=2, bias=True)
(5): ReLU()
)
텐서플로우TensorFlow >>>model.build()
>>>model.summary()

Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 5) 0

dense_4 (Dense) (None, 10) 60

dense_5 (Dense) (None, 10) 110

dense_6 (Dense) (None, 2) 22

=================================================================
Total params: 192
Trainable params: 192
Non-trainable params: 0
_________________________________________________________________
댓글