{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/pipeline](https://github.com/huseinzol05/malaya-speech/tree/master/example/pipeline).\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Common way" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We write python code like," ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "\n", "def foo(x):\n", " a = x + 1\n", " return a\n", "\n", "foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is simple, x -> a(x) -> y, If I want to add b after a and b depends on a," ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "\n", "def foo(x):\n", " a = x + 1\n", " b = a + 2\n", " return b\n", "\n", "foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "x -> a(x) -> b(x) -> y, If I need both value from a, b, just simply returned a and b." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 4)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "\n", "def foo(x):\n", " a = x + 1\n", " b = a + 2\n", " return a, b\n", "\n", "foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "x -> a(x) -> y\n", "\n", "y -> b(x) -> y1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, if I want to make a branch, a -> b -> c, b -> d -> e," ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 4, 7, 3, 1)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "\n", "def foo(x):\n", " a = x + 1\n", " b = a + 2\n", " c = b + 3\n", " \n", " d = b - 1\n", " e = d - 2\n", " return a, b, c, d, e\n", "\n", "foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These still look simple, what if,\n", "\n", "`e` as element, `L` as list of elements,\n", "\n", "x\\[e\\] -> a(x)-> y\\[l\\] -> batch every 3 elements (l\\[e,e,e\\], ..) -> loop every element apply z(x) -> flatten.\n", "\n", "And do not forget, returned all steps." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n", " [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]],\n", " [(3, 1.0), (12, 4.0), (21, 7.0), (9, 9.0)],\n", " [3, 1.0, 12, 4.0, 21, 7.0, 9, 9.0])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 10\n", "\n", "def foo(x):\n", " \n", " def a(x):\n", " return [i for i in range(x)]\n", " \n", " y = a(x)\n", " \n", " def batch(x, batch_size):\n", " r = [x[i: i + batch_size] for i in range(0, len(x), batch_size)]\n", " return r\n", " \n", " batched = batch(y, 3)\n", " \n", " def z(x):\n", " return (sum(x), sum(x) / len(x))\n", " \n", " batched_z = [z(i) for i in batched]\n", " \n", " flatten = []\n", " for i in batched_z:\n", " flatten.extend(i)\n", " \n", " return y, batched, batched_z, flatten\n", "\n", "foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When the code grow, it is very hard to understand especially when we have multiple branches and elements to list and vice versa.\n", "\n", "So **malaya-speech Pipeline comes to help!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initiate pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, I want to do the same,\n", "\n", "x\\[e\\] -> a(x)-> y\\[l\\] -> batch every 3 elements (l\\[e,e,e\\], ..) -> loop every element apply z(x) -> flatten.\n", "\n", "Using malaya-speech Pipeline." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from malaya_speech import Pipeline\n", "\n", "p = Pipeline()\n", "\n", "def a(x):\n", " return [i for i in range(x)]\n", "\n", "def z(x):\n", " return (sum(x), sum(x) / len(x))\n", "\n", "pipeline = (\n", " p.map(a).batching(3).foreach_map(z).flatten()\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yep, simple as that! Do not worry, we will look into each interfaces later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pipeline visualization" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p.visualize()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So now, we can understand what our pipeline trying to do." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n", " 'batching': ([0, 1, 2], [3, 4, 5], [6, 7, 8], [9]),\n", " 'z': [(3, 1.0), (12, 4.0), (21, 7.0), (9, 9.0)],\n", " 'flatten': [3, 1.0, 12, 4.0, 21, 7.0, 9, 9.0]}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = p(x)\n", "result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the results are pretty same and malaya-speech Pipeline will returned dictionary type." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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TEz/OzaRxWKdOHFi2LBhc+fONTc3f/z48bVr16ysrMiuC8gZOG4X9CY+n3/p0qVjx46lpqba29uvXr36448/NjExIbuuHhGJRLGxsefPnw8PD6fT6YsWLVq3bp2DgwPZdQF5BbEL+kRmZuaxY8fCwsI4HI6Xl9fHH388e/ZsY2Njsut6DyKRKCEh4erVq9evX6+pqfHw8Fi1atX8+fPV1dXJLg3IN4hd0IdaW1ujo6PDw8Nv3brFZrMtLS0nTZo0adKkqVOntm1DI1OKi4tjYmJiYmLu379fX1/v4ODw8ccfz58/H1/qDYCeg9gF0sDj8R48eBAdHR0dHZ2fn6+iojJixIhRo0aNGjVq5MiR5G6F4PP5mZmZqampqampDx8+fPXqlbq6uq+vr5+f37Rp06ytrUmsDfRLELtA2srKymJiYpKTk1NTU/Py8kQikYmJiaOjo6Ojo729vaOjo52dnY6OTh+9ukAgePXqVW5ubn5+fl5eXl5eXm5ubmtrq7a2Nv4O8PX1HT16NJ1O76MCAIDYBWTicDiPHz9+/PgxTsDnz5/jFo5qamoWFhbm5uZmZmampqa6uro6Ojra2tr4VklJCW+joNFo+I5QKJRc4IfD4TQ3N9fX1zc0NODbyspKJpPJZDJfv35dVVUlFospFIqFhYWdnZ2Tk5Ozs/PIkSNtbW0pFAq5nwYYICB2gQwhCOL169cFBQWSlGQymeXl5XV1dQ0NDUKh8H0HVFdX19HRGTRokJmZmbm5uYWFhamp6ZAhQ+zt7dXU1PriLQDwThC7QG6w2eyGhoaGhgaBQNDY2IgQEggEN27cwK158GovnU5XU1NTU1PDq8ak90gDoCOIXSDfjh49umPHjtraWrILAaC74Cw1AACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKohdAACQKhrZBQDwfvh8fnNzs+Qhl8slCKKhoUEyRUFBgcFgkFEaAN1CIQiC7BoAeA/5+fkO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448/bjuFSqX6+flFRETAPrQB68mTJ76+vjweD2cuQkhBQcHa2jo/Px+WCtkE/ypyQywW79y5s91/JJFIFB0dvXbtWrKqAuR6+fLllClT2mYuQkgsFhcWFl65coXEwkAXIHblxsWLF58/fy4Wi9tNF4lEJ06c2LBhAylVARIxmUxfX182m902czGCILZt2yYUCkkpDHQN+u3KB4FA8NFHH7HZ7LdtFEpNTVVTU4NLHw4ctbW13t7epaWlHb+JMQ6HY25u7ubmJuXCwDvB2q58OHv2LJPJ7PgfjEKhUCgUPT29vXv3Ll++nJTaACn09PROnz4dEBBAoVDodHrHGQiC2LFjR2trq/RrA12DXWpygM/nW1paVlRUtP3HotFoQqHQ3t5+w4YNixcvVlFRIbFCQKKioqJffvnl5MmTQqGw3VYFKpV68ODBTz/9lKzaQKcgduXAr7/++p///Eey/U5RUVEgEIwcOfKrr74KDAykUCjklgdkQWNj49mzZ/ft24d7NUh+GOnp6b1+/VpVVZXU6sC/QOzKOi6Xa25uXldXhxCi0WgUCmXx4sWbNm1ycHAguzQgc1pbWy9duvTDDz/k5+fjr2cqlbpv377NmzeTXRr4PxC77TU2NrLZbA6H09LS0tTUJBAI8G1zczOfz297ixDicrnttp2JxeKOTfnodLqamlq7iQwGAx8NpqmpSaVS33YbHh6+f/9+hJC2tvb69evXrl07aNCgPnz/QP4RBBETE/P999/fv3+fIAgGg/HkyROxWIyXah6PhxdgDocjFArxgRAsFgufQNWu1wdCCD/VdoqqqqqSklLbKcrKyngzl4qKirKyspqaGp1O19DQoNFoeDnX0tJSVFRkMBgMBkNbW7uvPwEZNyBit6Ghoaampra2tq6urra2tra29s2bNywWq7GxkcVicTgcnLNsNruLNqZ4ScK3ksVOUVGxYx9xHJdtp0hiWkIkEkk6ReHFurGxUSwWd3owEKakpKShoaGpqamtrY3vaGhoaGlp6enp6enp6erqDho0SF9fX1dXV09Pr93/CtD/NDU1vXnzprq6ura2tqamprq6uqampqGhAa83sFgsFotVX1+Pl6tOR1BXV1dUVMSLq2QlAGdl29nwMt92SselFK+aoH8WdfwQx3qnL62pqclgMPAtvqOtra2vr6+np6evr29gYDBo0CC8YPfL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\n", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def a(x):\n", " return [i for i in range(x)]\n", "\n", "def left(x):\n", " return (sum(x), sum(x) / len(x))\n", "\n", "def right(x):\n", " return [i * i for i in x]\n", "\n", "p = Pipeline()\n", "batched = p.map(a).batching(3)\n", "pipe_left = batched.foreach_map(left)\n", "pipe_right = batched.foreach_map(right)\n", "combined = pipe_left.zip(pipe_right).flatten()\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n", " 'batching': ([0, 1, 2], [3, 4, 5], [6, 7, 8], [9]),\n", " 'left': [(3, 1.0), (12, 4.0), (21, 7.0), (9, 9.0)],\n", " 'right': [[0, 1, 4], [9, 16, 25], [36, 49, 64], [81]],\n", " 'zip': ([(3, 1.0), (12, 4.0), (21, 7.0), (9, 9.0)],\n", " [[0, 1, 4], [9, 16, 25], [36, 49, 64], [81]]),\n", " 'flatten': [(3, 1.0),\n", " (12, 4.0),\n", " (21, 7.0),\n", " (9, 9.0),\n", " [0, 1, 4],\n", " [9, 16, 25],\n", " [36, 49, 64],\n", " [81]]}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = p(x)\n", "result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interface" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### map\n", "\n", "`map` is simply apply a function for input." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'': 3}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.map(lambda x: x + 1)\n", "p(2)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'plus': 3}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.map(lambda x: x + 1, name = 'plus')\n", "p(2)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'x_plus': 5}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def x(a, b):\n", " return a + b\n", "\n", "p = Pipeline()\n", "p.map(x, b = 3, name = 'plus')\n", "p(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### batching\n", "\n", "`batching` is simply batch elements to size of N." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'batching': ([1, 2], [3, 4], [5])}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.batching(2)\n", "p([1,2,3,4,5])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'batching': (([1, 2], [3, 4]), ([5],))}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.batching(2).batching(2)\n", "p([1,2,3,4,5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, `batching` only returned last `batching` because the key in dictionary is duplicate. So to prevent any duplicate," ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'batching': ([1, 2], [3, 4], [5]),\n", " 'batching_second': (([1, 2], [3, 4]), ([5],))}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.batching(2).batching(2, name = 'second')\n", "p([1,2,3,4,5])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### foreach_map\n", "\n", "`foreach_map` is simply apply a function for each elements in a list." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4], 'x': [0, 1, 4, 9, 16]}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " return a * a\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').foreach_map(x)\n", "p(5)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).foreach_map(x)\n", "p(9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`foreach_map` also provide different methods to process the elements,\n", "\n", "```python\n", "class foreach_map(Pipeline):\n", " \"\"\" \n", " Apply a function to every element in a tuple in the stream.\n", "\n", " Parameters\n", " ----------\n", " func: callable\n", " method: str, optional (default='sync')\n", " method to process each elements.\n", "\n", " * ``'sync'`` - loop one-by-one to process.\n", " * ``'async'`` - async process all elements at the same time.\n", " * ``'thread'`` - multithreading level to process all elements at the same time. \n", " Default is 1 worker. Override `worker_size=n` to increase.\n", " * ``'process'`` - multiprocessing level to process all elements at the same time. \n", " Default is 1 worker. Override `worker_size=n` to increase.\n", "\n", " *args :\n", " The arguments to pass to the function.\n", " **kwargs:\n", " Keyword arguments to pass to func.\n", "```\n", "\n", "Default is `sync`. If,\n", "\n", "1. `async`, you need to install tornado,\n", "\n", "```bash\n", "pip3 install tornado\n", "```\n", "\n", "2. `thread`, you need to install dask,\n", "\n", "```bash\n", "pip3 install dask\n", "```\n", "\n", "**We only provided single-machine dask processing**.\n", "\n", "3. `process`, you need to install dask,\n", "\n", "```bash\n", "pip3 install dask\n", "```\n", "\n", "**We only provided single-machine dask processing**." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import time\n", "\n", "p = Pipeline()\n", "\n", "def x(a):\n", " time.sleep(1)\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).foreach_map(x)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.24 ms, sys: 1.35 ms, total: 2.59 ms\n", "Wall time: 5.01 s\n" ] }, { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "p(9)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " time.sleep(1)\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).foreach_map(x, method = 'async')" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.99 ms, sys: 1.63 ms, total: 3.61 ms\n", "Wall time: 5.01 s\n" ] }, { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "p(9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**asynchronous != concurrency**." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " time.sleep(1)\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).foreach_map(x, method = 'thread')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 9.2 ms, sys: 3.59 ms, total: 12.8 ms\n", "Wall time: 5.01 s\n" ] }, { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "p(9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try to increase the worker size, `worker_size=n`." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " time.sleep(1)\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2)\\\n", ".foreach_map(x, method = 'thread', worker_size = 5)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 7.07 ms, sys: 3.1 ms, total: 10.2 ms\n", "Wall time: 1.01 s\n" ] }, { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "p(9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**We do not suggest use threading level to process a very extensive function, so, use processing level instead**." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "def x(a):\n", " time.sleep(1)\n", " return sum(a)\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2)\\\n", ".foreach_map(x, method = 'process', worker_size = 5)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 28 ms, sys: 43.1 ms, total: 71.1 ms\n", "Wall time: 1.34 s\n" ] }, { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8]),\n", " 'x': [1, 5, 9, 13, 8]}" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "p(9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Perfecto!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### partition\n", "\n", "`partition` is simply to group multiple `emit` into N size of tuple. Each successful partition, N count will reset." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.partition(3).map(lambda x: sum(x), name = 'sum')\n", "p(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First emit nothing happened because `partition` only proceed if we `emit` after N size." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(2)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'partition': (1, 2, 3), 'sum': 6}" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(3)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'partition': (1, 2, 3), 'sum': 6}" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(4) # not yet, N count reset, returned last state" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'partition': (1, 2, 3), 'sum': 6}" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(5) # not yet, N count reset, returned last state" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'partition': (4, 5, 6), 'sum': 15}" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### sliding_window\n", "\n", "`partition` is simply to group multiple `emit` into N size of tuple." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (1,), 'sum': 1}" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.sliding_window(3).map(lambda x: sum(x), name = 'sum')\n", "p(1)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (1, 2), 'sum': 3}" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(2)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (1, 2, 3), 'sum': 6}" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(3)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (2, 3, 4), 'sum': 9}" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want exact size of N," ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "p.sliding_window(3, return_partial = False).map(lambda x: sum(x), name = 'sum')\n", "p(1)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(2)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (1, 2, 3), 'sum': 6}" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(3)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'sliding_window': (2, 3, 4), 'sum': 9}" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### flatten\n", "\n", "`flatten` simply to flatten nested list." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n", " 'batching': ([0, 1], [2, 3], [4, 5], [6, 7], [8, 9]),\n", " 'flatten': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).flatten()\n", "p(10)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n", " 'batching': (([0, 1], [2, 3], [4, 5]), ([6, 7], [8, 9])),\n", " 'flatten': [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]],\n", " 'flatten_nested': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "p.map(lambda x: [i for i in range(x)], name = 'generate').batching(2).batching(3).flatten().flatten(name = 'nested')\n", "p(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### zip\n", "\n", "`zip` is to combine 2 branches into 1 branch." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "left = p.map(lambda x: x + 1, name = 'left')\n", "right = p.map(lambda x: x + 10, name = 'right')\n", "left.zip(right).map(sum)\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'left': 3, 'right': 12, 'zip': (3, 12), 'sum': 15}" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(2)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "left = p.map(lambda x: [i + 1 for i in range(x)], name = 'generate_left')\n", "right = p.map(lambda x: [i + 10 for i in range(x)], name = 'generate_right')\n", "left.zip(right).flatten()\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate_left': [1, 2, 3, 4, 5],\n", " 'generate_right': [10, 11, 12, 13, 14],\n", " 'zip': ([1, 2, 3, 4, 5], [10, 11, 12, 13, 14]),\n", " 'flatten': [1, 2, 3, 4, 5, 10, 11, 12, 13, 14]}" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### foreach_zip\n", "\n", "`foreach_zip` same like `zip`, combine 2 branches into 1 branch, but will zip left and right hand sides for each elements." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "\n", "left = p.map(lambda x: [i + 1 for i in range(x)], name = 'generate_left')\n", "right = p.map(lambda x: [i + 10 for i in range(x)], name = 'generate_right')\n", "left.foreach_zip(right).foreach_map(sum)\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'generate_left': [1, 2, 3, 4, 5],\n", " 'generate_right': [10, 11, 12, 13, 14],\n", " 'foreach_zip': ((1, 10), (2, 11), (3, 12), (4, 13), (5, 14)),\n", " 'sum': [11, 13, 15, 17, 19]}" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p(5)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }