SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Cythonによる
拡張モジュール
開発	
2013/9/14 PyCon APAC 2013
Atsuo Ishimoto
自己紹介	
2
いしもと	
石本	
敦夫	
あつお	
p 書籍「パーフェクトPython」
著者の一員	
p http://www.gembook.org
p python.jp ドメインの管理者
p @atsuoishimoto
Pythonの拡張モジュール	
3
p 通常、C/C++で開発し、Pythonスクリプト
から利用できる関数・データ型を提供
p Pythonが動的にロードする共有ライブラリ
(*.so, *.pyd)
p 用途
l  Pythonからは呼び出せないCライブラリへ
のインターフェース
l  Pythonではパフォーマンス不足
拡張モジュールのめんどくささ	
4
C/C++が必要	
/* 一般的なC言語の例 */
int	
  i;main(){for(;i["]<i;++i){-­‐-­‐
i;}"];read('-­‐'-­‐'-­‐',i+++"hell	
  o,	
  
world!n",'/'/'/'));}read(j,i,p)
{write(j/p+p,i-­‐-­‐-­‐j,i/i);}	
  
	
  
The International Obfuscated C Code Contest 	
http://www.ioccc.org/1984/anonymous.c
拡張モジュールのめんどくささ	
5
関数・データ型定義がめんどう	
static PyMemberDef xx_memberlist[] = {
...
static PyGetSetDef xx_getsetlist[] = {
...
static PyTypeObject xx_Type = {
...
static PyMethodDef xx_methods[] = {
...
static PyModuleDef xx_module = {
...
PyMODINIT_FUNC
PyInit_xx(void)
{
...
拡張モジュールのめんどくささ	
6
参照カウント管理	
p Pythonのオブジェクトは、オブジェクトの被参照数
を正確にカウントする必要がある
p PyObject_SetItem()、PyList_SetItem()、
PyList_SET_ITEM()	
  の違いを覚えてますか?
p 間違えればメモリリークかコアダンプ
Cythonとは	
7
Python専用プログラミング言語	
p Pythonの拡張モジュールを開発するため
の専用プログラミング言語
p Pythonのほぼ上位互換
p インタープリタではなくコンパイラ
p Python2/3対応
p http://www.cython.org
Cythonの起源	
8
Pyrex 	
Cython	
Fork	
最終リリースは
2010/4/12	
2002/4/3
version 0.1 リリース
Cythonを採用したプロジェクト	
9
p lxml
http://lxml.de/
p Sage
http://www.sagemath.org/
p SciPy
http://www.scipy.org/
p PyYAML
https://bitbucket.org/xi/pyyaml
Pythonの構文で
C言語と同じ処理を書ける	
10
/*	
  C言語 */	
  
	
  
void	
  spam()	
  {	
  
	
  	
  void	
  *p	
  =	
  malloc(100);	
  
	
  	
  if	
  (!p)	
  {	
  
	
  	
  	
  	
  return;	
  
	
  	
  }	
  
	
  	
  if	
  (!ham())	
  {	
  
	
  	
  	
  	
  goto	
  exit;	
  
	
  	
  }	
  
	
  	
  egg();	
  
exit:	
  
	
  	
  free(p);	
  
}	
  
#	
  Cython	
  
	
  
def	
  spam():	
  
	
  	
  cdef	
  void	
  *p	
  =	
  malloc(100)	
  
	
  	
  if	
  p:	
  
	
  	
  	
  	
  	
  	
  try:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  not	
  ham():	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  return	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  egg()	
  
	
  	
  	
  	
  	
  	
  finally:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  free(p)	
  
Cythonの文法	
11
基本は
Python2 とほぼ同じ!	
def	
  qsort(L):	
  
	
   if	
  len(L)	
  <=	
  1:	
  
	
   return	
  L	
  	
  
	
   return	
  (	
  
	
  	
  	
  	
  	
  	
  	
  	
  qsort([lt	
  for	
  lt	
  in	
  L[1:]	
  if	
  lt	
  <	
  L[0]])	
  	
  
	
   +	
  [L[0]]	
  	
  
	
   +	
  qsort(	
  
	
   [ge	
  for	
  ge	
  in	
  L[1:]	
  if	
  ge	
  >=	
  L[0]]))	
http://code.activestate.com/recipes/66473-just-for-fun-quicksort-in-3-lines/
Cythonの関数・型定義	
12
かんたん	
cdef	
  class	
  Spam:	
  
	
  	
  	
  	
  cdef	
  double	
  attr1	
  
	
  	
  	
  	
  cdef	
  public	
  double	
  public_attr	
  
	
  	
  	
  	
  cdef	
  readonly	
  double	
  public_attr2	
  
	
  	
  	
  	
  	
  
	
  	
  	
  	
  def	
  ham(self):	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  self.attr1	
  
アーリーバインディング	
13
変数の型宣言
も
できる!	
def	
  spam(dict	
  d):	
  
	
  	
  	
  	
  return	
  len(d)	
  
型チェックは静
的・動的両方	
def	
  spam(dict	
  d):	
  
	
  	
  cdef	
  list	
  L	
  	
  
	
   L	
  =	
  d	
  
	
   #	
  コンパイルエラーに	
  
	
   #	
  ならない	
  
Cythonコードの最適化	
14
cdef	
  int	
  i	
  
for	
  i	
  in	
  range(100):	
  
	
  	
  	
  	
  …	
  
cdef	
  int	
  i	
  =	
  0	
  
while	
  i	
  <	
  100:	
  
	
  	
  	
  	
  …	
  
	
  	
  	
  	
  i	
  +=	
  1	
  
オブジェクトアクセスの最適化	
15
Cythonコード	
 生成されるCコード	
型宣言なし	
 item = obj[n]	
  
item = PyObject_GetItem(
obj, n)
	
  
型宣言あり	
cdef tuple obj
cdef int n
item = obj[n]	
  
item = PyTuple_GET_ITEM(
obj, n)	
  
C/C++ライブラリの利用	
16
#	
  Python.h の PyMem_Malloc() を宣言	
  
cdef	
  extern	
  from	
  "Python.h"	
  
	
  	
  	
  	
  void*	
  PyMem_Malloc(size_t	
  n)	
  
	
  
def	
  spam():	
  
	
  	
  	
  	
  cdef	
  void	
  *p	
  
	
  	
  	
  	
  p	
  =	
  PyMem_Malloc(100)	
  
	
  	
  	
  	
  if	
  not	
  p:	
  
	
  	
  	
  	
  	
  	
  	
  	
  raise	
  MemoryError()	
  
ヘッダファイルから関数や構造体をインクルード
定義済みライブラリ	
17
標準Cランタイム関数な
どは定義済み	
from	
  libc.math	
  cimport	
  sin	
  
	
  	
  
def	
  std_sin(x):	
  
	
  	
  	
  	
  return	
  sin(x*x)	
  
p 関数・構造体・定数など
をCythonで定義してあ
る
p cimport文でインポート
するだけで利用可能
定義済みライブラリ(抜粋)	
18
種類	
 モジュール名	
Python API	
 cpython.object	
 PyObject_XXXの定義	
python.dict	
 PyDict_XXXの定義	
…	
C標準ライブラリ	
 libc.stdio	
 stdio.hで定義された関数	
libc.stdlib	
 stdlib.hで定義された関数	
…	
C++標準ライブラリ	
 libcpp.list	
 std::listの定義	
libcpp.string	
 std::string の定義	
…	
numpy	
 numpy	
 numpy API の定義	
OpenMP	
 openmp	
 OpenMP API の定義	
Posix標準ライブラリ	
 posix.fcntl	
 fcntl.hで定義された関数	
…
C/C++のデータ型	
19
cdef キーワードで
変数宣言	
def	
  spam():	
  
	
  	
  	
  	
  cdef	
  double	
  value	
  
	
  	
  	
  	
  value	
  =	
  100.0	
  *	
  200	
  
	
  	
  	
  	
  return	
  value	
  
ポインタや配列も	
def	
  spam(s):	
  
	
  	
  	
  	
  cdef	
  char	
  p,*q	
  
	
  	
  	
  	
  p	
  =	
  s[0]	
  
	
  	
  	
  	
  q	
  =	
  &p	
  
	
  	
  	
  	
  return	
  q[0]	
  	
  	
  #	
  *qは不可	
  
自動型変換	
20
def	
  spam(n):	
  
	
  	
  	
  	
  cdef	
  int	
  number	
  
	
  	
  	
  	
  number	
  =	
  n	
  	
  
p Pythonオブジェクトを、C
のint型の値に変換
p 変換不能な場合は例外を
送出	
int	
  number	
  =	
  PyInt_AS_LONG(n)	
  
文字列の自動変換	
21
def	
  spam(L):	
  
	
  	
  	
  	
  cdef	
  char	
  *s	
  =	
  "ham"	
  
	
  	
  	
  	
  L.append(s)	
  
p 文字列 s を Pythonのstrオブジェクト
(Python3ではbytes)に変換
p strオブジェクト -> char * も変換される
GIL制御	
22
言語としてGILを
サポート	
p GIL: Global Interpreter Lock
p Pythonスクリプトが、複数のス
レッドで同時に実行されないよう
に制御する仕組み
p PythonのC APIを使わない処理
の間は、GILを開放すると並列
処理の効率が向上するケースも
with	
  nogil:	
  
	
  	
  	
  #GILを開放し、他のスレッド	
  
	
  	
  	
  #でPython実行を許可する	
 	
	
  	
  	
  f	
  =	
  fopen(fname,"w")	
  
	
  	
  	
  …	
  
C++サポート	
23
from	
  collections	
  import	
  defaultdict	
  
	
  	
  
def	
  freq(values):	
  
	
  	
  	
  	
  #	
  要素に、同じ値が何個あるか	
  
	
  	
  	
  	
  #	
  数え上げる	
  
	
  
	
   d	
  =	
  defaultdict(int)	
  
	
   for	
  v	
  in	
  values:	
  
	
   d[v]	
  +=	
  1	
  
#	
  distutils:	
  language	
  =	
  c++	
  
	
  
from	
  libcpp.map	
  cimport	
  map	
  
	
  	
  
def	
  freq(list	
  values):	
  
	
  	
  	
  	
  #	
  std::map を使用	
  
	
  	
  	
  	
  cdef	
  map[int,	
  int]	
  d	
  	
  
	
  	
  	
  	
  cdef	
  int	
  v	
  
	
  	
  
	
  	
  	
  	
  for	
  v	
  in	
  values:	
  
	
  	
  	
  	
  	
  	
  	
  	
  d[v]	
  +=	
  1	
  
Distutils:で、C++
ファイルの生成を指示
Cythonのビルド	
24
Cythonソースファイル
(*.pyx *.pyd *.pxi)
cythonコマンド	
Cソースファイル
(*.c *.cpp)
Cコンパイラ・リンカ
Python拡張モジュール
(*.so *.pyd)
Distutilsでビルド	
25
from	
  distutils.core	
  import	
  setup	
  
from	
  Cython.Build	
  import	
  cythonize	
  
	
  	
  
setup(	
  
	
  	
  name	
  =	
  "hello",	
  
	
  	
  ext_modules	
  =	
  cythonize(	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'hello.pyx'))	
  
通常の拡張モジュー
ルと同じく、setup.py
を作成	
setup.pyで
ビルド・インストール	
$	
  python	
  setup.py	
  build_ext	
  
$	
  python	
  setup.py	
  install	
  
対話コンソールでビルド	
26
pyximport.install()
で、pyxファイルを自
動的にビルドしてイ
ンポート	
#	
  hello.pyxをコンパイルし、	
  
#	
  拡張モジュールをインポートする	
  
>>>	
  import	
  pyximport	
  
>>>	
  pyximport.install()	
  
(None,pyximport.	
  …)	
  
>>>	
  import	
  hello	
  
	
  	
  
(コンパイル・リンクオプションを指定する場合には使えない)
CythonはPythonより速い?	
27
Pythonはインタープリ
タだから遅い	
Cythonはコンパイル
して実行するから速い
ベンチマーク	
28
def	
  newton(n):	
  
	
  	
  guess	
  =	
  n/2	
  
	
  	
  better	
  =	
  (guess	
  +	
  n/guess)/2	
  
	
  	
  while	
  better	
  !=	
  guess:	
  
	
  	
  	
  	
  guess	
  =	
  better	
  
	
  	
  	
  	
  better	
  =	
  (guess	
  +	
  n/guess)/2	
  
	
  	
  return	
  guess	
  
パフォーマンス比較	
29
$ python -m timeit -c 'import pyx_newton;pyx_newton.newton(10.**100)'
10000 loops, best of 3: 21.7 usecper loop
$ python -m timeit -c 'import py_newton;py_newton.newton(10.**100)'
10000 loops, best of 3: 36.3 usec per loop	
Python版	
Cython版	
(Python3.3.1/Cython 0.19.1)
Cython化だけでは速くならない	
30
Pythonインタープ
リタは優秀	
p  バイトコードインタープリタ
のオーバヘッドは確かにあ
るが…	
Pythonオブジェク
トの、動的な比較・
演算APIが問題	
p  PyNumber_TrueDivide、
PyObject_RichCompare
など
p  CythonもPythonも、同じ
APIを使って演算を行うの
で、大きな差は出ない
Cのデータ型で演算を行う	
31
def	
  newton(double	
  n):	
  
	
  	
  cdef	
  double	
  guess,	
  better	
  
	
  
	
  	
  guess	
  =	
  n/2	
  
	
  	
  better	
  =	
  (guess	
  +	
  n/guess)/2	
  
	
  	
  while	
  better	
  !=	
  guess:	
  
	
  	
  	
  	
  guess	
  =	
  better	
  
	
  	
  	
  	
  better	
  =	
  (guess	
  +	
  n/guess)/2	
  
	
  	
  return	
  guess	
  
32
21.7 usec	
36.3 usec	
Python版	
Cython版	
Cython(型指定)版	
100000 loops, best of 3: 2.89 usec per loop	
•  Cython版では、0除算でZeroDivisionError例外を送出するなどの処
理があるため、Pure C版より若干遅い
関数の呼び出しコスト	
33
def	
  tak(x,	
  y,	
  z):	
  
	
  	
  	
  	
  if	
  x	
  <=	
  y:	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  z	
  
	
  	
  	
  	
  return	
  tak(	
  
	
   tak(x-­‐1,	
  y,	
  z),	
  	
  
	
   tak(y-­‐1,	
  z,	
  x),	
  	
  
	
   tak(z-­‐1,	
  x,	
  y))	
  
34
Python版	
$ python -m timeit -s "import tak" "tak.tak(18, 9, 0)"
10 loops, best of 3: 2.74 sec per loop
Cython版	
$ python -m timeit -s "import tak" "tak.tak(18, 9, 0)"
10 loops, best of 3: 1.47 sec per loop
処理時間はほとんど関数呼び出し	
35
Pythonの関数オブ
ジェクトは重たい	
p 引数の動的な受け渡し
p フレームオブジェクトの作成
Cの関数を定義	
36
cdef	
  int	
  c_tak(int	
  x,	
  int	
  y,	
  int	
  z):	
  
	
  	
  	
  	
  if	
  x	
  <=	
  y:	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  z	
  
	
  	
  	
  	
  return	
  c_tak(	
  
	
   c_tak(x-­‐1,	
  y,	
  z),	
  	
  
	
   c_tak(y-­‐1,	
  z,	
  x),	
  	
  
	
   c_tak(z-­‐1,	
  x,	
  y))	
  
	
  
def	
  tak(x,	
  y,	
  z):	
  
	
  	
  	
  	
  return	
  c_tak(x,	
  y,	
  z)	
  
37
Python版	
$ python -m timeit -s "import tak" "tak.tak(18, 9, 0)"
10 loops, best of 3: 2.74 sec per loop
Cython版	
$ python -m timeit -s "import tak" "tak.tak(18, 9, 0)"
10 loops, best of 3: 1.47 sec per loop
Cython(cdef)版	
$ python -m timeit -s "import tak" "tak.tak(18, 9, 0)"
10 loops, best of 3: 36.9 msec per loop
C言語の関数	
38
できるだけC/C++の
関数を呼び出す	
p 呼び出しコスト:低
p インライン化も可能
p Pythonからは呼び出せない
ご清聴ありがとうございました	
39

Mais conteúdo relacionado

Mais procurados

0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)MasanoriSuganuma
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?Mr. Vengineer
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」ManaMurakami1
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説Hironori Washizaki
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~Hideki Tsunashima
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...Deep Learning JP
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたいTakuji Tahara
 
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライドMasatoshi Yoshida
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Shohei Hido
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話Yusuke Uchida
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised LearningまとめDeep Learning JP
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説Takateru Yamagishi
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門ryosuke-kojima
 

Mais procurados (20)

0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
NumPy闇入門
NumPy闇入門NumPy闇入門
NumPy闇入門
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
 
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド
駒場学部講義2018 「意識の神経科学と自由エネルギー原理」講義スライド
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 

Destaque

NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?Aki Ariga
 
Cython ことはじめ
Cython ことはじめCython ことはじめ
Cython ことはじめgion_XY
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれるKen'ichi Matsui
 
SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法Yusuke Kon
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開Seiya Tokui
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShellAmazon Web Services Japan
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Kimikazu Kato
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 

Destaque (14)

NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
Cython ことはじめ
Cython ことはじめCython ことはじめ
Cython ことはじめ
 
Random Forests
Random ForestsRandom Forests
Random Forests
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる
 
SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 

Semelhante a Introduction to cython

Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cythonfuzzysphere
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelereaseShiqiao Du
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携Tomoaki Shimizu
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputingNoboru Irieda
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門伸男 伊藤
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島Tomoaki Shimizu
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto studyNaoya Inada
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すAromaBlack
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23Masashi Shibata
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Tomoaki Shimizu
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12Takanori Suzuki
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.kiki utagawa
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验Ryan Poy
 

Semelhante a Introduction to cython (20)

Wrapping a C++ library with Cython
Wrapping a C++ library with CythonWrapping a C++ library with Cython
Wrapping a C++ library with Cython
 
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
 
PCL
PCLPCL
PCL
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto study
 
Boost Tour 1.50.0 All
Boost Tour 1.50.0 AllBoost Tour 1.50.0 All
Boost Tour 1.50.0 All
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
Boost tour 1_40_0
Boost tour 1_40_0Boost tour 1_40_0
Boost tour 1_40_0
 
C++14 Overview
C++14 OverviewC++14 Overview
C++14 Overview
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
 

Mais de Atsuo Ishimoto

NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】Atsuo Ishimoto
 
行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン行列演算とPythonの言語デザイン
行列演算とPythonの言語デザインAtsuo Ishimoto
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Atsuo Ishimoto
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティAtsuo Ishimoto
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Atsuo Ishimoto
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールAtsuo Ishimoto
 
Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみるAtsuo Ishimoto
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理Atsuo Ishimoto
 
Pythonのガベージコレクション
PythonのガベージコレクションPythonのガベージコレクション
PythonのガベージコレクションAtsuo Ishimoto
 
Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Atsuo Ishimoto
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3kAtsuo Ishimoto
 

Mais de Atsuo Ishimoto (14)

Pythonの紹介
Pythonの紹介Pythonの紹介
Pythonの紹介
 
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
 
行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン行列演算とPythonの言語デザイン
行列演算とPythonの言語デザイン
 
Django pgroonga
Django pgroongaDjango pgroonga
Django pgroonga
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
 
python.jpの使い方
python.jpの使い方python.jpの使い方
python.jpの使い方
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
 
Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみる
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理
 
Pythonのガベージコレクション
PythonのガベージコレクションPythonのガベージコレクション
Pythonのガベージコレクション
 
Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29Slide at PyCon mini JP on 2011/1/29
Slide at PyCon mini JP on 2011/1/29
 
String representation in py3k
String representation in py3kString representation in py3k
String representation in py3k
 

Último

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Último (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

Introduction to cython