diff --git a/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb b/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb index 2ecc9d8..576b4ca 100644 --- a/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb +++ b/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb @@ -522,7 +522,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -709,7 +709,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -731,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -768,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -790,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -818,10 +818,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ + "\n", + " \n", + "# print(list_of_borders[:9])\n", + "# print(list_of_borders[-9:])\n", + "\n", + "\n", "class UniformSampleAndWeights(zfit.util.execution.SessionHolderMixin):\n", " def __call__(self, limits, dtype, n_to_produce):\n", " # n_to_produce = tf.cast(n_to_produce, dtype=tf.int32)\n", @@ -831,21 +837,29 @@ "# uniform = tfd.Uniform(low=low, high=high)\n", "# uniformjpsi = tfd.Uniform(low=tf.constant(3080, dtype=dtype), high=tf.constant(3112, dtype=dtype))\n", "# uniformpsi2s = tfd.Uniform(low=tf.constant(3670, dtype=dtype), high=tf.constant(3702, dtype=dtype))\n", - " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.07, dtype=dtype),\n", - " tf.constant(0.617, dtype=dtype),\n", - " tf.constant(0.07, dtype=dtype),\n", - " tf.constant(0.17, dtype=dtype),\n", - " tf.constant(0.07, dtype=dtype)]),\n", + "\n", + " list_of_borders = []\n", + " _p = []\n", + " splits = 10\n", + "\n", + " _ = np.linspace(x_min, x_max, splits)\n", + "\n", + " for i in range(splits):\n", + " list_of_borders.append(tf.constant(_[i], dtype=dtype))\n", + " _p.append(tf.constant(1/splits, dtype=dtype))\n", + " \n", + "# mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=_p[:(splits-1)]),\n", + "# components_distribution=tfd.Uniform(low=list_of_borders[:(splits-1)], \n", + "# high=list_of_borders[-(splits-1):]))\n", + " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.1, dtype=dtype),\n", + " tf.constant(0.7, dtype=dtype),\n", + " tf.constant(0.2, dtype=dtype)]),\n", " components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", - " tf.constant(3080, dtype=dtype),\n", - " tf.constant(3112, dtype=dtype),\n", - " tf.constant(3670, dtype=dtype),\n", - " tf.constant(3702, dtype=dtype)], \n", - " high=[tf.constant(3080, dtype=dtype),\n", - " tf.constant(3112, dtype=dtype), \n", - " tf.constant(3670, dtype=dtype),\n", - " tf.constant(3702, dtype=dtype),\n", - " tf.constant(x_max, dtype=dtype)]))\n", + " tf.constant(2800, dtype=dtype),\n", + " tf.constant(3550, dtype=dtype)], \n", + " high=[tf.constant(x_max, dtype=dtype),\n", + " tf.constant(3300, dtype=dtype), \n", + " tf.constant(3900, dtype=dtype)]))\n", "# mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " sample = mixture.sample((n_to_produce, 1))\n", @@ -863,7 +877,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -872,13 +886,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py:163: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use tf.cast instead.\n" + ] + }, + { + "ename": "InvalidArgumentError", + "evalue": "assertion failed: [32254] [1.1806250218058597e-06 1.1806250218058597e-06 1.1806250218058597e-06...] [8.2086369510094e-06 2.2747180268017141e-06 1.6044321221245944e-06...]\n\t [[node create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert (defined at c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py:294) ]]\n\nCaused by op 'create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert', defined at:\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n app.start()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n self.asyncio_loop.run_forever()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n self._run_once()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n handle._run()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\events.py\", line 88, in _run\n self._context.run(self._callback, *self._args)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in \n lambda f: self._run_callback(functools.partial(callback, future))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n ret = callback()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 781, in inner\n self.run()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 742, in run\n yielded = self.gen.send(value)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2848, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2874, in _run_cell\n return runner(coro)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3049, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3214, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3296, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 13, in \n sampler = total_f.create_sampler(n=event_stack)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 814, in create_sampler\n limits=limits, n=n, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 835, in _create_sampler_tensor\n sample = self._single_hook_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 877, in _single_hook_sample\n return self._hook_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basepdf.py\", line 491, in _hook_sample\n samples = super()._hook_sample(limits=limits, n=n, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 880, in _hook_sample\n return self._norm_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 884, in _norm_sample\n return self._limits_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 888, in _limits_sample\n return self._call_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 898, in _call_sample\n return self._fallback_sample(n=n, limits=limits)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 931, in _fallback_sample\n sample_and_weights_factory=self._sample_and_weights)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py\", line 346, in accept_reject_sample\n back_prop=False)[1] # backprop not needed here\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3556, in while_loop\n return_same_structure)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3087, in BuildLoop\n pred, body, original_loop_vars, loop_vars, shape_invariants)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3022, in _BuildLoop\n body_result = body(*packed_vars_for_body)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py\", line 294, in sample_body\n message=\"Not all weights are >= probs so the sampling \"\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\check_ops.py\", line 1023, in assert_greater_equal\n return control_flow_ops.Assert(condition, data, summarize=summarize)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\tf_should_use.py\", line 193, in wrapped\n return _add_should_use_warning(fn(*args, **kwargs))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 168, in Assert\n guarded_assert = cond(condition, no_op, true_assert, name=\"AssertGuard\")\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py\", line 507, in new_func\n return func(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 2108, in cond\n orig_res_f, res_f = context_f.BuildCondBranch(false_fn)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 1941, in BuildCondBranch\n original_result = fn()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 166, in true_assert\n condition, data, summarize, name=\"Assert\")\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\gen_logging_ops.py\", line 72, in _assert\n name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py\", line 788, in _apply_op_helper\n op_def=op_def)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py\", line 507, in new_func\n return func(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 3300, in create_op\n op_def=op_def)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 1801, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): assertion failed: [32254] [1.1806250218058597e-06 1.1806250218058597e-06 1.1806250218058597e-06...] [8.2086369510094e-06 2.2747180268017141e-06 1.6044321221245944e-06...]\n\t [[node create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert (defined at c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py:294) ]]\n", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1333\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1334\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1335\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[1;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[0;32m 1318\u001b[0m return self._call_tf_sessionrun(\n\u001b[1;32m-> 1319\u001b[1;33m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[0;32m 1320\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[1;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[0;32m 1406\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1407\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1408\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mInvalidArgumentError\u001b[0m: assertion failed: [32254] [1.1806250218058597e-06 1.1806250218058597e-06 1.1806250218058597e-06...] [8.2086369510094e-06 2.2747180268017141e-06 1.6044321221245944e-06...]\n\t [[{{node create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert}}]]", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mInvalidArgumentError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mcall\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcalls\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 25\u001b[1;33m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresample\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mevent_stack\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 26\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munstack_x\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[0msam\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\data.py\u001b[0m in \u001b[0;36mresample\u001b[1;34m(self, param_values, n)\u001b[0m\n\u001b[0;32m 637\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Cannot set a new `n` if not a Tensor-like object was given\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 638\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msession\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 639\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msample_holder\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minitializer\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 640\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_initial_resampled\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 641\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 927\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 928\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[1;32m--> 929\u001b[1;33m run_metadata_ptr)\n\u001b[0m\u001b[0;32m 930\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 931\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run\u001b[1;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1150\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1151\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[1;32m-> 1152\u001b[1;33m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[0;32m 1153\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1154\u001b[0m \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_run\u001b[1;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1326\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1327\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[1;32m-> 1328\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1329\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1330\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1346\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1347\u001b[0m \u001b[0mmessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0merror_interpolation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minterpolate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1348\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnode_def\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mop\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmessage\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1349\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1350\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mInvalidArgumentError\u001b[0m: assertion failed: [32254] [1.1806250218058597e-06 1.1806250218058597e-06 1.1806250218058597e-06...] [8.2086369510094e-06 2.2747180268017141e-06 1.6044321221245944e-06...]\n\t [[node create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert (defined at c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py:294) ]]\n\nCaused by op 'create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert', defined at:\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in \n app.launch_new_instance()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n app.start()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n self.io_loop.start()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n self.asyncio_loop.run_forever()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n self._run_once()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n handle._run()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\asyncio\\events.py\", line 88, in _run\n self._context.run(self._callback, *self._args)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in \n lambda f: self._run_callback(functools.partial(callback, future))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n ret = callback()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 781, in inner\n self.run()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 742, in run\n yielded = self.gen.send(value)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 357, in process_one\n yield gen.maybe_future(dispatch(*args))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 267, in dispatch_shell\n yield gen.maybe_future(handler(stream, idents, msg))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 534, in execute_request\n user_expressions, allow_stdin,\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n yielded = next(result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2848, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2874, in _run_cell\n return runner(coro)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 67, in _pseudo_sync_runner\n coro.send(None)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3049, in run_cell_async\n interactivity=interactivity, compiler=compiler, result=result)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3214, in run_ast_nodes\n if (yield from self.run_code(code, result)):\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3296, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"\", line 13, in \n sampler = total_f.create_sampler(n=event_stack)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 814, in create_sampler\n limits=limits, n=n, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 835, in _create_sampler_tensor\n sample = self._single_hook_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 877, in _single_hook_sample\n return self._hook_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basepdf.py\", line 491, in _hook_sample\n samples = super()._hook_sample(limits=limits, n=n, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 880, in _hook_sample\n return self._norm_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 884, in _norm_sample\n return self._limits_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 888, in _limits_sample\n return self._call_sample(n=n, limits=limits, name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 898, in _call_sample\n return self._fallback_sample(n=n, limits=limits)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\basemodel.py\", line 931, in _fallback_sample\n sample_and_weights_factory=self._sample_and_weights)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py\", line 346, in accept_reject_sample\n back_prop=False)[1] # backprop not needed here\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3556, in while_loop\n return_same_structure)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3087, in BuildLoop\n pred, body, original_loop_vars, loop_vars, shape_invariants)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 3022, in _BuildLoop\n body_result = body(*packed_vars_for_body)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py\", line 294, in sample_body\n message=\"Not all weights are >= probs so the sampling \"\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\check_ops.py\", line 1023, in assert_greater_equal\n return control_flow_ops.Assert(condition, data, summarize=summarize)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\tf_should_use.py\", line 193, in wrapped\n return _add_should_use_warning(fn(*args, **kwargs))\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 168, in Assert\n guarded_assert = cond(condition, no_op, true_assert, name=\"AssertGuard\")\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py\", line 507, in new_func\n return func(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 2108, in cond\n orig_res_f, res_f = context_f.BuildCondBranch(false_fn)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 1941, in BuildCondBranch\n original_result = fn()\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\control_flow_ops.py\", line 166, in true_assert\n condition, data, summarize, name=\"Assert\")\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\gen_logging_ops.py\", line 72, in _assert\n name=name)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py\", line 788, in _apply_op_helper\n op_def=op_def)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py\", line 507, in new_func\n return func(*args, **kwargs)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 3300, in create_op\n op_def=op_def)\n File \"c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\framework\\ops.py\", line 1801, in __init__\n self._traceback = tf_stack.extract_stack()\n\nInvalidArgumentError (see above for traceback): assertion failed: [32254] [1.1806250218058597e-06 1.1806250218058597e-06 1.1806250218058597e-06...] [8.2086369510094e-06 2.2747180268017141e-06 1.6044321221245944e-06...]\n\t [[node create_sampler/while/assert_greater_equal/Assert/AssertGuard/Assert (defined at c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\core\\sample.py:294) ]]\n" + ] + } + ], "source": [ - "zfit.run.numeric_checks = False \n", + "# zfit.run.numeric_checks = False \n", "\n", "nr_of_toys = 1\n", "nevents = int(pdg[\"number_of_decays\"])\n", @@ -976,7 +1022,7 @@ "# plt.plot(sam, calcs, '.')\n", "# plt.plot(test_q, calcs_test)\n", "# plt.yscale('log')\n", - "plt.ylim(0, 40000)\n", + "# plt.ylim(0, 40000)\n", "# plt.xlim(3080, 3110)\n", "\n", "plt.legend()\n", diff --git a/__pycache__/pdg_const.cpython-37.pyc b/__pycache__/pdg_const.cpython-37.pyc index 405403f..2bb8c92 100644 --- a/__pycache__/pdg_const.cpython-37.pyc +++ b/__pycache__/pdg_const.cpython-37.pyc Binary files differ diff --git a/data/zfit_toys/toy_0/0.pkl b/data/zfit_toys/toy_0/0.pkl index 4663bd5..49b4cfa 100644 --- a/data/zfit_toys/toy_0/0.pkl +++ b/data/zfit_toys/toy_0/0.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/1.pkl b/data/zfit_toys/toy_0/1.pkl index ba77ce8..7761382 100644 --- a/data/zfit_toys/toy_0/1.pkl +++ b/data/zfit_toys/toy_0/1.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/10.pkl b/data/zfit_toys/toy_0/10.pkl new file mode 100644 index 0000000..0a343a2 --- /dev/null +++ b/data/zfit_toys/toy_0/10.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/2.pkl b/data/zfit_toys/toy_0/2.pkl index eeeeec9..6cac02f 100644 --- a/data/zfit_toys/toy_0/2.pkl +++ b/data/zfit_toys/toy_0/2.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/3.pkl b/data/zfit_toys/toy_0/3.pkl index 22e4fb9..aecfe9d 100644 --- a/data/zfit_toys/toy_0/3.pkl +++ b/data/zfit_toys/toy_0/3.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/4.pkl b/data/zfit_toys/toy_0/4.pkl index de98288..45b15d3 100644 --- a/data/zfit_toys/toy_0/4.pkl +++ b/data/zfit_toys/toy_0/4.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/5.pkl b/data/zfit_toys/toy_0/5.pkl index b7223f4..1dbc810 100644 --- a/data/zfit_toys/toy_0/5.pkl +++ b/data/zfit_toys/toy_0/5.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/6.pkl b/data/zfit_toys/toy_0/6.pkl new file mode 100644 index 0000000..3a3d0eb --- /dev/null +++ b/data/zfit_toys/toy_0/6.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/7.pkl b/data/zfit_toys/toy_0/7.pkl new file mode 100644 index 0000000..4bf64a9 --- /dev/null +++ b/data/zfit_toys/toy_0/7.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/8.pkl b/data/zfit_toys/toy_0/8.pkl new file mode 100644 index 0000000..2ebd964 --- /dev/null +++ b/data/zfit_toys/toy_0/8.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/9.pkl b/data/zfit_toys/toy_0/9.pkl new file mode 100644 index 0000000..35fba40 --- /dev/null +++ b/data/zfit_toys/toy_0/9.pkl Binary files differ diff --git a/raremodel-nb.ipynb b/raremodel-nb.ipynb index 23798fb..55870af 100644 --- a/raremodel-nb.ipynb +++ b/raremodel-nb.ipynb @@ -16,7 +16,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py:57: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", + "C:\\Users\\sa_li\\.conda\\envs\\rmd_test\\lib\\site-packages\\zfit\\util\\execution.py:57: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", " warnings.warn(\"Not running on Linux. Determining available cpus for thread can fail\"\n" ] }, @@ -35,6 +35,10 @@ } ], "source": [ + "import os\n", + "\n", + "# os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\n", + "\n", "import numpy as np\n", "from pdg_const import pdg\n", "import matplotlib\n", @@ -414,7 +418,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "WARNING:tensorflow:From c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\ops\\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n", + "WARNING:tensorflow:From C:\\Users\\sa_li\\.conda\\envs\\rmd_test\\lib\\site-packages\\tensorflow\\python\\ops\\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Colocations handled automatically by placer.\n" ] @@ -428,7 +432,7 @@ "\n", "jpsi_m = zfit.Parameter(\"jpsi_m\", ztf.constant(jpsi_mass), floating = False)\n", "jpsi_w = zfit.Parameter(\"jpsi_w\", ztf.constant(jpsi_width), floating = False)\n", - "jpsi_p = zfit.Parameter(\"jpsi_p\", ztf.constant(jpsi_phase))\n", + "jpsi_p = zfit.Parameter(\"jpsi_p\", ztf.constant(jpsi_phase), floating = False)\n", "jpsi_s = zfit.Parameter(\"jpsi_s\", ztf.constant(jpsi_scale))\n", "\n", "#psi2s\n", @@ -437,7 +441,7 @@ "\n", "psi2s_m = zfit.Parameter(\"psi2s_m\", ztf.constant(psi2s_mass), floating = False)\n", "psi2s_w = zfit.Parameter(\"psi2s_w\", ztf.constant(psi2s_width), floating = False)\n", - "psi2s_p = zfit.Parameter(\"psi2s_p\", ztf.constant(psi2s_phase))\n", + "psi2s_p = zfit.Parameter(\"psi2s_p\", ztf.constant(psi2s_phase), floating = False)\n", "psi2s_s = zfit.Parameter(\"psi2s_s\", ztf.constant(psi2s_scale))\n", "\n", "#cusp\n", @@ -509,7 +513,7 @@ "\n", "# calcs = zfit.run(total_test_tf(x_part))\n", "\n", - "test_q = np.linspace(x_min, x_max, 2000000)\n", + "test_q = np.linspace(x_min, x_max, 200000)\n", "\n", "probs = total_f.pdf(test_q)\n", "\n", @@ -527,7 +531,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -555,6 +559,37 @@ ] }, { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "dtype = tf.float64\n", + "mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", + " tf.constant(0.965, dtype=dtype),\n", + " tf.constant(0.04, dtype=dtype),\n", + " tf.constant(0.03, dtype=dtype),\n", + " tf.constant(0.006, dtype=dtype)]),\n", + " components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", + " tf.constant(3092, dtype=dtype),\n", + " tf.constant(3682, dtype=dtype), \n", + " tf.constant(3070, dtype=dtype),\n", + " tf.constant(3660, dtype=dtype)], \n", + " high=[tf.constant(x_max, dtype=dtype),\n", + " tf.constant(3100, dtype=dtype), \n", + " tf.constant(3690, dtype=dtype),\n", + " tf.constant(3110, dtype=dtype), \n", + " tf.constant(3710, dtype=dtype)]))\n", + "\n", + "# probs = mixture.prob(test_q)\n", + "# probs_np = zfit.run(probs)\n", + "# probs_np *= np.max(calcs_test) / np.max(probs_np)\n", + "# plt.figure()\n", + "# plt.semilogy(test_q, probs_np,label=\"importance sampling\")\n", + "# plt.semilogy(test_q, calcs_test, label = 'pdf')\n" + ] + }, + { "cell_type": "markdown", "metadata": {}, "source": [ @@ -563,7 +598,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -576,7 +611,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -624,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -653,7 +688,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -670,7 +705,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -700,7 +735,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -709,7 +744,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -731,7 +766,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -768,7 +803,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -790,7 +825,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -818,7 +853,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -848,19 +883,34 @@ " list_of_borders.append(tf.constant(_[i], dtype=dtype))\n", " _p.append(tf.constant(1/splits, dtype=dtype))\n", " \n", - " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=_p[:(splits-1)]),\n", - " components_distribution=tfd.Uniform(low=list_of_borders[:(splits-1)], \n", - " high=list_of_borders[-(splits-1):]))\n", + "# mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=_p[:(splits-1)]),\n", + "# components_distribution=tfd.Uniform(low=list_of_borders[:(splits-1)], \n", + "# high=list_of_borders[-(splits-1):]))\n", + " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", + " tf.constant(0.95, dtype=dtype),\n", + " tf.constant(0.07, dtype=dtype),\n", + " tf.constant(0.025, dtype=dtype),\n", + " tf.constant(0.006, dtype=dtype)]),\n", + " components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", + " tf.constant(3093, dtype=dtype),\n", + " tf.constant(3683, dtype=dtype), \n", + " tf.constant(3070, dtype=dtype),\n", + " tf.constant(3660, dtype=dtype)], \n", + " high=[tf.constant(x_max, dtype=dtype),\n", + " tf.constant(3099, dtype=dtype), \n", + " tf.constant(3690, dtype=dtype),\n", + " tf.constant(3110, dtype=dtype), \n", + " tf.constant(3710, dtype=dtype)]))\n", "# mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " sample = mixture.sample((n_to_produce, 1))\n", "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", - " weights = mixture.prob(sample)\n", + " weights = mixture.prob(sample)[:,0]\n", "# weights = tf.broadcast_to(tf.constant(1., dtype=dtype), shape=(n_to_produce,))\n", " # sample = tf.expand_dims(sample, axis=-1)\n", "# print(sample, weights)\n", " \n", - " weights = tf.ones(shape=(n_to_produce,), dtype=dtype)\n", + "# weights = tf.ones(shape=(n_to_produce,), dtype=dtype)\n", " weights_max = None\n", " thresholds = tf.random_uniform(shape=(n_to_produce,), dtype=dtype)\n", " return sample, thresholds, weights, weights_max, n_to_produce" @@ -868,7 +918,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -877,7 +927,25 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# psi2s_mass" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# zfit.settings.set_verbosity(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, "metadata": { "scrolled": false }, @@ -887,16 +955,17 @@ "output_type": "stream", "text": [ "6/6\n", - "Time taken: 39 s\n", + "Time taken: 6 min, 55 s\n", "Projected time left: \n" ] } ], "source": [ - "zfit.run.numeric_checks = False \n", + "# zfit.run.numeric_checks = False \n", "\n", - "nr_of_toys = 1\n", + "nr_of_toys = 10\n", "nevents = int(pdg[\"number_of_decays\"])\n", + "nevents = pdg[\"number_of_decays\"]\n", "event_stack = 1000000\n", "# zfit.settings.set_verbosity(10)\n", "calls = int(nevents/event_stack + 1)\n", @@ -933,7 +1002,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -950,14 +1019,14 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Time to generate full toy: 39 s\n", + "Time to generate full toy: 415 s\n", "(5404696,)\n" ] } @@ -983,7 +1052,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -995,7 +1064,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1020,7 +1089,7 @@ "# plt.plot(sam, calcs, '.')\n", "# plt.plot(test_q, calcs_test)\n", "# plt.yscale('log')\n", - "plt.ylim(0, 40000)\n", + "plt.ylim(0, 1000)\n", "# plt.xlim(3080, 3110)\n", "\n", "plt.legend()\n", @@ -1030,7 +1099,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -1053,7 +1122,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# jpsi_width" + ] + }, + { + "cell_type": "code", + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -1069,9 +1147,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "------------------------------------------------------------------\n", + "| FCN = -8.534E+05 | Ncalls=31 (31 total) |\n", + "| EDM = 1.83E-05 (Goal: 5E-06) | up = 0.5 |\n", + "------------------------------------------------------------------\n", + "| Valid Min. | Valid Param. | Above EDM | Reached call limit |\n", + "------------------------------------------------------------------\n", + "| True | True | False | False |\n", + "------------------------------------------------------------------\n", + "| Hesse failed | Has cov. | Accurate | Pos. def. | Forced |\n", + "------------------------------------------------------------------\n", + "| False | True | True | True | False |\n", + "------------------------------------------------------------------\n", + "psi2s_s: ^{+3.6164112195259897}_{-3.6412375056684962}\n", + "jpsi_s: ^{+28.565826484711366}_{-28.76638576587415}\n", + "Function minimum: -853446.6101229072\n" + ] + } + ], "source": [ "nll = zfit.loss.UnbinnedNLL(model=total_f, data=data2, fit_range = (x_min, x_max))\n", "\n", @@ -1089,7 +1189,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -1101,16 +1201,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.clf()\n", "# plt.plot(x_part, calcs, '.')\n", "plt.plot(test_q, calcs_test, label = 'pdf')\n", "# plt.plot(test_q, res_y, label = 'res')\n", "plt.legend()\n", - "plt.ylim(0.0, 5e-4)\n", + "plt.ylim(0.0, 5e-6)\n", "# plt.yscale('log')\n", "# plt.xlim(3080, 3110)\n", "plt.savefig('test3.png')\n", @@ -1119,7 +1232,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1133,7 +1246,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -1154,10 +1267,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10173.339691942534\n", + "1237.0113581511123\n" + ] + } + ], + "source": [ + "print(zfit.run(jpsi_s))\n", + "print(zfit.run(psi2s_s))" + ] }, { "cell_type": "code", diff --git a/test.png b/test.png index 6f54082..fbd79cc 100644 --- a/test.png +++ b/test.png Binary files differ diff --git a/test2.png b/test2.png index 71fa046..f8bab4f 100644 --- a/test2.png +++ b/test2.png Binary files differ diff --git a/test3.png b/test3.png index 28316de..4e0eafe 100644 --- a/test3.png +++ b/test3.png Binary files differ