diff --git a/tutorials/contextual_bandits/contextual_bandits_tutorial.ipynb b/tutorials/contextual_bandits/contextual_bandits_tutorial.ipynb index 985704cf..14775139 100644 --- a/tutorials/contextual_bandits/contextual_bandits_tutorial.ipynb +++ b/tutorials/contextual_bandits/contextual_bandits_tutorial.ipynb @@ -116,9 +116,6 @@ "from pearl.policy_learners.exploration_modules.contextual_bandits.ucb_exploration import (\n", " UCBExploration,\n", ")\n", - "from pearl.policy_learners.exploration_modules.contextual_bandits.thompson_sampling_exploration import (\n", - " ThompsonSamplingExplorationLinear,\n", - ")\n", "from pearl.policy_learners.contextual_bandits.neural_bandit import NeuralBandit\n", "from pearl.policy_learners.contextual_bandits.neural_linear_bandit import (\n", " NeuralLinearBandit,\n", @@ -188,7 +185,7 @@ }, "source": [ "## Contextual Bandits learners\n", - "The following sections describe the neural versions of SquareCB, LinUCB and LinTS implemented in Pearl.\n", + "The following sections describe the neural versions of SquareCB and LinUCB implemented in Pearl.\n", "\n", "## Contextual Bandits learners: SquareCB\n", "\n", @@ -772,292 +769,6 @@ "plt.show()" ] }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "QNUmNO77LNGR" - }, - "source": [ - "## Contextual Bandits learners: LinTS\n", - "\n", - "Lastly, we describe how to use the neural version of the LinTS algorithm with Pearl, namely, the algorithm which uses Thompson sampling exploration with neural architectures. LinTS sampling is closely related to the LinUCB algorithm, with a key modification that often improves its convergence in practice: to sample the score function from a probabilistic distribution, instead of fixing it deterministically. Practically, this often reduces over-exploring arms, since the score may be smaller than in the LinUCB algorithm.\n", - "\n", - "To use the LinTS algorithm in Pearl, we use the `NeuralLinearBandit` policy learner module with the exploration module set to `ThompsonSamplingExplorationLinear`:\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "_7Cpzoi3nVAw", - "output": { - "id": 3042723102529699, - "loadingStatus": "loaded" - }, - "outputId": "87e0a0b0-28fa-4c8a-cbac-ee9c20e1664c", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "episode 100, step 100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.020961137488484383\n", - "episode 200, step 200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.0526970699429512\n", - "episode 300, step 300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9854506850242615\n", - "episode 400, step 400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.010806530714035034\n", - "episode 500, step 500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.7375713586807251\n", - "episode 600, step 600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.024929175153374672\n", - "episode 700, step 700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9766018390655518\n", - "episode 800, step 800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0807243585586548\n", - "episode 900, step 900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0119878053665161\n", - "episode 1000, step 1000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0007097721099854\n", - "episode 1100, step 1100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0040653944015503\n", - "episode 1200, step 1200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.07569316029548645\n", - "episode 1300, step 1300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9727350473403931\n", - "episode 1400, step 1400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.19430816173553467\n", - "episode 1500, step 1500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.05057743936777115\n", - "episode 1600, step 1600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.00553958211094141\n", - "episode 1700, step 1700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.0703541487455368\n", - "episode 1800, step 1800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.14636090397834778\n", - "episode 1900, step 1900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.07935402542352676\n", - "episode 2000, step 2000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.023985743522644\n", - "episode 2100, step 2100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.1324350833892822\n", - "episode 2200, step 2200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8210602402687073\n", - "episode 2300, step 2300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9624233841896057\n", - "episode 2400, step 2400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.005582396872341633\n", - "episode 2500, step 2500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0484683513641357\n", - "episode 2600, step 2600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.049259066581726\n", - "episode 2700, step 2700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.077630877494812\n", - "episode 2800, step 2800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9105121493339539\n", - "episode 2900, step 2900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.08053679764270782\n", - "episode 3000, step 3000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.03890402242541313\n", - "episode 3100, step 3100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.3012276887893677\n", - "episode 3200, step 3200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.20752091705799103\n", - "episode 3300, step 3300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.1322668492794037\n", - "episode 3400, step 3400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0840274095535278\n", - "episode 3500, step 3500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.11411949247121811\n", - "episode 3600, step 3600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.003311038017273\n", - "episode 3700, step 3700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8837174773216248\n", - "episode 3800, step 3800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9702376127243042\n", - "episode 3900, step 3900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0013759136199951\n", - "episode 4000, step 4000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8858000636100769\n", - "episode 4100, step 4100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9844222664833069\n", - "episode 4200, step 4200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0125951766967773\n", - "episode 4300, step 4300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0284817218780518\n", - "episode 4400, step 4400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.011194109916687\n", - "episode 4500, step 4500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.177249789237976\n", - "episode 4600, step 4600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8406251072883606\n", - "episode 4700, step 4700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0049868822097778\n", - "episode 4800, step 4800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.03638936206698418\n", - "episode 4900, step 4900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9937539100646973\n", - "episode 5000, step 5000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9624293446540833\n", - "episode 5100, step 5100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9946296215057373\n", - "episode 5200, step 5200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.134511947631836\n", - "episode 5300, step 5300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0247375965118408\n", - "episode 5400, step 5400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9774132370948792\n", - "episode 5500, step 5500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.874535322189331\n", - "episode 5600, step 5600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.05181086063385\n", - "episode 5700, step 5700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0542775392532349\n", - "episode 5800, step 5800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.14627443253993988\n", - "episode 5900, step 5900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.036572955548763275\n", - "episode 6000, step 6000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0111520290374756\n", - "episode 6100, step 6100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9561424255371094\n", - "episode 6200, step 6200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.1624858379364014\n", - "episode 6300, step 6300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9728142023086548\n", - "episode 6400, step 6400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0822488069534302\n", - "episode 6500, step 6500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9815592765808105\n", - "episode 6600, step 6600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9197601079940796\n", - "episode 6700, step 6700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8579633235931396\n", - "episode 6800, step 6800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0904980897903442\n", - "episode 6900, step 6900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8806969523429871\n", - "episode 7000, step 7000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.032117486000061\n", - "episode 7100, step 7100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0412695407867432\n", - "episode 7200, step 7200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0804661512374878\n", - "episode 7300, step 7300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.1629976034164429\n", - "episode 7400, step 7400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.171493649482727\n", - "episode 7500, step 7500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0143102407455444\n", - "episode 7600, step 7600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9493852257728577\n", - "episode 7700, step 7700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0778377056121826\n", - "episode 7800, step 7800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9077131748199463\n", - "episode 7900, step 7900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.006361284293234348\n", - "episode 8000, step 8000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: -0.04209243506193161\n", - "episode 8100, step 8100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0234235525131226\n", - "episode 8200, step 8200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0164039134979248\n", - "episode 8300, step 8300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0006157159805298\n", - "episode 8400, step 8400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.14261546730995178\n", - "episode 8500, step 8500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9369093179702759\n", - "episode 8600, step 8600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9033534526824951\n", - "episode 8700, step 8700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0373884439468384\n", - "episode 8800, step 8800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0084037780761719\n", - "episode 8900, step 8900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.1025331020355225\n", - "episode 9000, step 9000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9050247073173523\n", - "episode 9100, step 9100, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9541915655136108\n", - "episode 9200, step 9200, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9997521042823792\n", - "episode 9300, step 9300, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0282511711120605\n", - "episode 9400, step 9400, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.8882954120635986\n", - "episode 9500, step 9500, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.0500359535217285\n", - "episode 9600, step 9600, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9564846754074097\n", - "episode 9700, step 9700, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9267009496688843\n", - "episode 9800, step 9800, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.9897744059562683\n", - "episode 9900, step 9900, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 1.1537010669708252\n", - "episode 10000, step 10000, agent=PearlAgent with NeuralLinearBandit, FIFOOffPolicyReplayBuffer, env=Contextual bandits with CB datasets\n", - "return: 0.06077141314744949\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Create a Neural LinTS pearl agent with one-hot action representation\n", - "\n", - "action_representation_module = OneHotActionTensorRepresentationModule(\n", - " max_number_actions= env._action_space.n,\n", - ")\n", - "\n", - "agent = PearlAgent(\n", - " policy_learner=NeuralLinearBandit(\n", - " feature_dim = env.observation_dim + env._action_space.n,\n", - " hidden_dims=[64, 16],\n", - " training_rounds=50,\n", - " action_representation_module=action_representation_module,\n", - " exploration_module=ThompsonSamplingExplorationLinear()\n", - " ),\n", - " replay_buffer=FIFOOffPolicyReplayBuffer(100_000),\n", - " device_id=-1,\n", - ")\n", - "\n", - "info = online_learning(\n", - " agent=agent,\n", - " env=env,\n", - " number_of_steps=number_of_steps,\n", - " print_every_x_steps=100,\n", - " record_period=record_period,\n", - " learn_after_episode=True,\n", - ")\n", - "\n", - "torch.save(info[\"return\"], \"LinTS-return.pt\")\n", - "plt.plot(record_period * np.arange(len(info[\"return\"])), info[\"return\"], label=\"LinTS\")\n", - "plt.xlabel(\"time step\")\n", - "plt.ylabel(\"return\")\n", - "plt.legend()\n", - "plt.show()" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -1066,15 +777,8 @@ }, "source": [ "## Summary\n", - "In this example, we showed how to use popular contextual bandits algorithms in Pearl. The figures that should be obtained upon running this code can be found at `tutorials/cb_algorithms/cb_algorithms.png`.\n" + "In this example, we showed how to use popular contextual bandits algorithms in Pearl." ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ANo74OTbLNGS" - }, - "source": [] } ], "metadata": { @@ -1087,29 +791,43 @@ "custom": { "cells": [], "metadata": { - "accelerator": "GPU", - "colab": { - "gpuType": "T4", - "include_colab_link": true, - "provenance": [] + "custom": { + "cells": [], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "include_colab_link": true, + "provenance": [] + }, + "fileHeader": "", + "fileUid": "4316417e-7688-45f2-a94f-24148bfc425e", + "isAdHoc": false, + "kernelspec": { + "display_name": "pearl (local)", + "language": "python", + "name": "pearl_local" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 }, "fileHeader": "", - "fileUid": "4316417e-7688-45f2-a94f-24148bfc425e", + "fileUid": "1158a851-91bb-437e-a391-aba92448f600", + "indentAmount": 2, "isAdHoc": false, - "kernelspec": { - "display_name": "pearl (local)", - "language": "python", - "name": "pearl_local" - }, "language_info": { - "name": "python" + "name": "plaintext" } }, "nbformat": 4, "nbformat_minor": 2 }, "fileHeader": "", - "fileUid": "1158a851-91bb-437e-a391-aba92448f600", + "fileUid": "06710d6d-2a6b-4a80-a1f7-31b8d3b7c146", "indentAmount": 2, "isAdHoc": false, "language_info": { @@ -1120,9 +838,14 @@ "nbformat_minor": 2 }, "fileHeader": "", - "fileUid": "06710d6d-2a6b-4a80-a1f7-31b8d3b7c146", + "fileUid": "e7c10986-b495-4f0d-ad5e-f1a8296807f4", "indentAmount": 2, "isAdHoc": false, + "kernelspec": { + "display_name": "pearl", + "language": "python", + "name": "bento_kernel_pearl" + }, "language_info": { "name": "plaintext" } @@ -1130,18 +853,7 @@ "nbformat": 4, "nbformat_minor": 2 }, - "fileHeader": "", - "fileUid": "e7c10986-b495-4f0d-ad5e-f1a8296807f4", - "indentAmount": 2, - "isAdHoc": false, - "kernelspec": { - "display_name": "pearl", - "language": "python", - "name": "bento_kernel_pearl" - }, - "language_info": { - "name": "plaintext" - } + "indentAmount": 2 }, "nbformat": 4, "nbformat_minor": 2