2.7. Belgeler (Dökümantasyon)¶ Open the notebook in SageMaker Studio Lab
Bu kitabın uzunluğundaki kısıtlamalar nedeniyle, her bir MXNet işlevini ve sınıfını tanıtamayız (ve muhtemelen bizim yapmamızı siz de istemezsiniz). API (Application Programming Interface - Uygulama Programlama Arayüzü) belgeleri ve ek öğreticiler (tutorial) ve örnekler, kitabın ötesinde pek çok belge sağlar. Bu bölümde size MXNet API’sini keşfetmeniz için biraz rehberlik sunuyoruz.
Bu kitabın uzunluğundaki kısıtlamalar nedeniyle, her bir PyTorch işlevini ve sınıfını tanıtamayız (ve muhtemelen bizim yapmamızı siz de istemezsiniz). API (Application Programming Interface - Uygulama Programlama Arayüzü) belgeleri ve ek öğreticiler (tutorial) ve örnekler kitabın ötesinde pek çok belge sağlar. Bu bölümde size PyTorch API’sini keşfetmeniz için biraz rehberlik sunuyoruz.
Bu kitabın uzunluğundaki kısıtlamalar nedeniyle, her bir TensorFlow işlevini ve sınıfını tanıtamayız (ve muhtemelen bizim yapmamızı siz de istemezsiniz). API (Application Programming Interface - Uygulama Programlama Arayüzü) belgeleri ve ek öğreticiler (tutorial) ve örnekler kitabın ötesinde pek çok belge sağlar. Bu bölümde size TensorFlow API’sini keşfetmeniz için biraz rehberlik sunuyoruz.
2.7.1. Bir Modüldeki Tüm İşlevleri ve Sınıfları Bulma¶
Bir modülde hangi fonksiyonların ve sınıfların çağrılabileceğini bilmek
için dir
fonksiyonunu çağırırız. Örneğin, rastgele sayılar
oluşturmak için modüldeki tüm özellikleri sorgulayabiliriz:
from mxnet import np
print(dir(np.random))
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_mx_nd_np', 'beta', 'chisquare', 'choice', 'exponential', 'gamma', 'gumbel', 'logistic', 'lognormal', 'multinomial', 'multivariate_normal', 'normal', 'pareto', 'power', 'rand', 'randint', 'randn', 'rayleigh', 'shuffle', 'uniform', 'weibull']
import torch
print(dir(torch.distributions))
['AbsTransform', 'AffineTransform', 'Bernoulli', 'Beta', 'Binomial', 'CatTransform', 'Categorical', 'Cauchy', 'Chi2', 'ComposeTransform', 'ContinuousBernoulli', 'CorrCholeskyTransform', 'CumulativeDistributionTransform', 'Dirichlet', 'Distribution', 'ExpTransform', 'Exponential', 'ExponentialFamily', 'FisherSnedecor', 'Gamma', 'Geometric', 'Gumbel', 'HalfCauchy', 'HalfNormal', 'Independent', 'IndependentTransform', 'Kumaraswamy', 'LKJCholesky', 'Laplace', 'LogNormal', 'LogisticNormal', 'LowRankMultivariateNormal', 'LowerCholeskyTransform', 'MixtureSameFamily', 'Multinomial', 'MultivariateNormal', 'NegativeBinomial', 'Normal', 'OneHotCategorical', 'OneHotCategoricalStraightThrough', 'Pareto', 'Poisson', 'PowerTransform', 'RelaxedBernoulli', 'RelaxedOneHotCategorical', 'ReshapeTransform', 'SigmoidTransform', 'SoftmaxTransform', 'SoftplusTransform', 'StackTransform', 'StickBreakingTransform', 'StudentT', 'TanhTransform', 'Transform', 'TransformedDistribution', 'Uniform', 'VonMises', 'Weibull', 'Wishart', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'bernoulli', 'beta', 'biject_to', 'binomial', 'categorical', 'cauchy', 'chi2', 'constraint_registry', 'constraints', 'continuous_bernoulli', 'dirichlet', 'distribution', 'exp_family', 'exponential', 'fishersnedecor', 'gamma', 'geometric', 'gumbel', 'half_cauchy', 'half_normal', 'identity_transform', 'independent', 'kl', 'kl_divergence', 'kumaraswamy', 'laplace', 'lkj_cholesky', 'log_normal', 'logistic_normal', 'lowrank_multivariate_normal', 'mixture_same_family', 'multinomial', 'multivariate_normal', 'negative_binomial', 'normal', 'one_hot_categorical', 'pareto', 'poisson', 'register_kl', 'relaxed_bernoulli', 'relaxed_categorical', 'studentT', 'transform_to', 'transformed_distribution', 'transforms', 'uniform', 'utils', 'von_mises', 'weibull', 'wishart']
import tensorflow as tf
print(dir(tf.random))
['Algorithm', 'Generator', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_sys', 'all_candidate_sampler', 'categorical', 'create_rng_state', 'experimental', 'fixed_unigram_candidate_sampler', 'gamma', 'get_global_generator', 'learned_unigram_candidate_sampler', 'log_uniform_candidate_sampler', 'normal', 'poisson', 'set_global_generator', 'set_seed', 'shuffle', 'stateless_binomial', 'stateless_categorical', 'stateless_gamma', 'stateless_normal', 'stateless_parameterized_truncated_normal', 'stateless_poisson', 'stateless_truncated_normal', 'stateless_uniform', 'truncated_normal', 'uniform', 'uniform_candidate_sampler']
Genel olarak, __
(Python’daki özel nesneler) ile başlayan ve biten
işlevleri veya tek bir _
ile başlayan işlevleri (genellikle dahili
işlevler) yok sayabiliriz. Kalan işlev veya özellik adlarına bağlı
olarak bu modülün tekdüze dağılım (uniform
), normal dağılım
(normal
) ve çok terimli dağılımdan (multinomial
) örnekleme
dahil, bu modülün rastgele sayılar oluşturmak için çeşitli yöntemler
sunduğunu tahmin edebiliriz.
2.7.2. Belli İşlevlerin ve Sınıfların Kullanımını Bulma¶
Belirli bir işlevin veya sınıfın nasıl kullanılacağına ilişkin daha özel
talimatlar için help
(yardım) işlevini çağırabiliriz. Örnek olarak,
tensörlerin ones
işlevi için kullanım talimatlarını inceleyelim.
help(np.ones)
Help on function ones in module mxnet.numpy: ones(shape, dtype=<class 'numpy.float32'>, order='C', ctx=None) Return a new array of given shape and type, filled with ones. This function currently only supports storing multi-dimensional data in row-major (C-style). Parameters ---------- shape : int or tuple of int The shape of the empty array. dtype : str or numpy.dtype, optional An optional value type. Default is numpy.float32. Note that this behavior is different from NumPy's ones function where float64 is the default value, because float32 is considered as the default data type in deep learning. order : {'C'}, optional, default: 'C' How to store multi-dimensional data in memory, currently only row-major (C-style) is supported. ctx : Context, optional An optional device context (default is the current default context). Returns ------- out : ndarray Array of ones with the given shape, dtype, and ctx. Examples -------- >>> np.ones(5) array([1., 1., 1., 1., 1.]) >>> np.ones((5,), dtype=int) array([1, 1, 1, 1, 1], dtype=int64) >>> np.ones((2, 1)) array([[1.], [1.]]) >>> s = (2,2) >>> np.ones(s) array([[1., 1.], [1., 1.]])
help(torch.ones)
Help on built-in function ones in module torch: ones(...) ones(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) -> Tensor Returns a tensor filled with the scalar value 1, with the shape defined by the variable argumentsize
. Args: size (int...): a sequence of integers defining the shape of the output tensor. Can be a variable number of arguments or a collection like a list or tuple. Keyword arguments: out (Tensor, optional): the output tensor. dtype (torch.dtype
, optional): the desired data type of returned tensor. Default: ifNone
, uses a global default (seetorch.set_default_tensor_type()
). layout (torch.layout
, optional): the desired layout of returned Tensor. Default:torch.strided
. device (torch.device
, optional): the desired device of returned tensor. Default: ifNone
, uses the current device for the default tensor type (seetorch.set_default_tensor_type()
).device
will be the CPU for CPU tensor types and the current CUDA device for CUDA tensor types. requires_grad (bool, optional): If autograd should record operations on the returned tensor. Default:False
. Example:: >>> torch.ones(2, 3) tensor([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> torch.ones(5) tensor([ 1., 1., 1., 1., 1.])
help(tf.ones)
Help on function ones in module tensorflow.python.ops.array_ops: ones(shape, dtype=tf.float32, name=None) Creates a tensor with all elements set to one (1). See also tf.ones_like, tf.zeros, tf.fill, tf.eye. This operation returns a tensor of type dtype with shape shape and all elements set to one. >>> tf.ones([3, 4], tf.int32) <tf.Tensor: shape=(3, 4), dtype=int32, numpy= array([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], dtype=int32)> Args: shape: A list of integers, a tuple of integers, or a 1-D Tensor of type int32. dtype: Optional DType of an element in the resulting Tensor. Default is tf.float32. name: Optional string. A name for the operation. Returns: A Tensor with all elements set to one (1).
Dökümantasyondan, ones
işlevinin belirtilen şekle sahip yeni bir
tensör oluşturduğunu ve tüm öğeleri 1 değerine ayarladığını görebiliriz.
Mümkün oldukça, yorumunuzu onaylamak için hızlı bir test yapmalısınız:
np.ones(4)
array([1., 1., 1., 1.])
torch.ones(4)
tensor([1., 1., 1., 1.])
tf.ones(4)
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([1., 1., 1., 1.], dtype=float32)>
Jupyter not defterinde, belgeyi başka bir pencerede görüntülemek için
?
kullanabiliriz. Örneğin, list?
, help(list)
ile neredeyse
aynı olan içerik üretecek ve onu yeni bir tarayıcı penceresinde
görüntüleyecektir. Ek olarak, list??
gibi iki soru işareti
kullanırsak, işlevi uygulayan Python kodu da görüntülenecektir.
2.7.3. Özet¶
Resmi belgeler, bu kitabın dışında pek çok açıklama ve örnek sağlar.
Jupyter not defterlerinde
dir
vehelp
işlevlerini veya?
ve??
işlevlerini çağırarak bir API’nin kullanımına ilişkin belgelere bakabiliriz.
2.7.4. Alıştırmalar¶
Derin öğrenme çerçevesindeki herhangi bir işlev veya sınıf için belgelere (dökümantasyon) bakın. Belgeleri çerçevenin resmi web sitesinde de bulabilir misiniz?