{"id":3541,"date":"2025-09-12T11:12:57","date_gmt":"2025-09-12T09:12:57","guid":{"rendered":"https:\/\/neuraldesigner.com\/learning\/integrate-a-model-in-power-bi\/"},"modified":"2026-08-25T14:03:45","modified_gmt":"2026-08-25T12:03:45","slug":"integrate-a-model-in-power-bi","status":"publish","type":"learning","link":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/","title":{"rendered":"Use Neural Designer models in Microsoft Power BI"},"content":{"rendered":"<style>.ndb{width:100vw;margin-left:calc(50% - 50vw);background:#eeeeee;padding:22px 24px 14px;font-family:\"Outfit\",\"Roboto\",Arial,sans-serif;color:#1b2635}.ndb *{box-sizing:border-box}.ndb a{text-decoration:none}.ndb-wrap{width:min(100%,960px);margin:0 auto}.ndb-lead{font-size:18px;line-height:1.6;color:#3a4a5a;font-weight:300;margin:0 0 22px}.ndb-lead a{color:#2d799f;font-weight:600}.ndb-highlight{margin:0 0 36px;padding:28px 34px;border-radius:18px;background:linear-gradient(135deg,#56a1c8 0%,#245e80 100%);color:#fff;box-shadow:0 16px 34px rgba(30,83,116,.22)}.ndb-highlight p{margin:0;color:#fff;font-size:20px;line-height:1.5;font-weight:400}.ndb-highlight b{font-weight:800}.ndb-toc{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 42px;padding:0}.ndb-toc a{padding:10px 18px;background:#f2f2f2;border-radius:22px;color:#12354b!important;font-size:14px;font-weight:600;box-shadow:-6px -6px 12px rgba(255,255,255,.9),6px 6px 12px rgba(30,83,116,.10)}.ndb-toc a:hover{color:#2d799f!important}.ndb-card{margin:0 0 42px;padding:0;background:transparent;border-radius:0;box-shadow:none;scroll-margin-top:90px}.ndb-card h2{margin:0 0 20px;padding-bottom:12px;color:#001233;font-size:24px;font-weight:700;position:relative;border-bottom:1px solid #dbe5ec}.ndb-card h2:after{content:\"\";position:absolute;left:0;bottom:-1px;width:62px;height:3px;background:#56a1c8;border-radius:2px}.ndb-card p{margin:0 0 14px;font-size:16.5px;line-height:1.62;color:#33424f}.ndb-card a{color:#2d799f;font-weight:500}.ndb-card ul{margin:0 0 14px;padding-left:22px}.ndb-card li{margin:5px 0;font-size:16px;line-height:1.5;color:#33424f}.ndb-card img:not([src$=\".svg\"]):not([data-src$=\".svg\"]){display:block;width:auto;max-width:min(560px,100%);height:auto;margin:22px auto;border-radius:12px;box-shadow:0 12px 28px rgba(0,18,51,.12)}.ndb-card th img[src$=\".svg\"],.ndb-card th img[data-src$=\".svg\"],.ndb-card img[src$=\".svg\"],.ndb-card img[data-src$=\".svg\"]{display:inline-block;max-width:24px;height:auto;margin:0 6px -4px 0;box-shadow:none}.ndb-card table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;margin:22px 0;font-size:15px;background:#fbfcfd;border-radius:12px;overflow:hidden;box-shadow:0 10px 24px rgba(0,18,51,.08)}.ndb-card th,.ndb-card td{padding:11px 16px;border-bottom:1px solid #e6ecf0;text-align:left;vertical-align:top}.ndb-card thead th{background:#12354b;color:#fff;font-weight:600;text-align:center}.ndb-card tbody th{background:#e9f1f6;color:#12354b;font-weight:600}.ndb-card td{color:#33424f}.ndb-card table ul{margin:0;padding-left:18px}.ndb-card table li{font-size:14px}.ndb-card pre{margin:22px 0;padding:22px 24px;background:#0b1830!important;color:#e6eef5!important;border-radius:14px;overflow-x:auto;font-family:Consolas,Menlo,monospace;font-size:12.5px;line-height:1.5;white-space:pre}.ndb-card--accent{background:transparent}@media(max-width:820px){.ndb-card{padding:0}.ndb-card h2{font-size:21px}.ndb-toc{gap:8px}}@media(max-width:640px){.ndb{padding:12px 14px}}.ndb-card thead th{background:#12354b!important;color:#fff!important}.ndb-card tbody th{background:#e9f1f6!important;color:#12354b!important}.ndb-card td{background:#fbfcfd!important;color:#33424f!important}.ndb-card .mjx-chtml.MJXc-display{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:2px 0 8px}.ndb-card .mjx-chtml.MathJax_CHTML{font-size:18px!important}.ndb-card pre{background:#eceff2!important;color:#1b2635!important;border:1px solid #dfe4e9!important}.ndb-card pre *{color:#1b2635!important;background:transparent!important}<\/style><div class=\"ndb\"><div class=\"ndb-wrap\"><div class=\"ndb-lead\"><p>Although deploying a model once trained is essential to benefit from working with Machine Learning, it can also be one of the hardest tasks to accomplish.<\/p>\n<p>Neural Designer includes a series of functionalities that will help you implement this deployment by providing the outputs for a series of inputs of the code or mathematical expression of the model so that you can integrate it in a data pipeline or a Bussiness Intelligence application.<\/p>\n<p>This tutorial will export a Neural Designer model to Python and then integrate it in Power BI. To practice this example, download the free trial version of Neural Designer.<\/p>\n<p>To solve this application, the next steps are followed:<\/p>\n<ol style=\"font-size: 20px; background-color: #ffffff;\">\n<li style=\"font-size: 20px;\"><a href=\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/?elementor-preview=3541&amp;ver=1758793015#ExportToPython\">Export the model to Python<\/a>.<\/li>\n<li style=\"font-size: 20px;\"><a href=\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/?elementor-preview=3541&amp;ver=1758793015#IntegrateInPowerBI\">Integrate the model in Power BI<\/a>.<\/li>\n<\/ol>\n<p>The data for this application can be obtained from the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/10\/concrete_properties.csv\">concrete_properties.csv<\/a>\u00a0file. The final Power BI report is created during the integration steps below.<\/p>\n<\/div><div class=\"ndb-card\" id=\"ExportToPython\"><h2>Export the model to Python<\/h2><p>After training our approximation model as seen in the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/design-a-neural-network\/\">Build a Neural Network in 7 steps<\/a>\u00a0tutorial, we will proceed to export that model to Python. You will find the task at the bottom of the Task manager, under the Model deployment section.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/export_python_capture.webp\" width=\"30%\"  alt=\"Export Python Capture\"\/><\/p>\n<p>This option will allow you to save a .py file with your training model ready for use.<br \/>If you open this file in your Python editor, you will find some documentation on using it on top.<\/p>\n<p>\u00a0<\/p>\n<pre>Artificial Intelligence Techniques SL\nartelnics@artelnics.com\nYour model has been exported to this python file.\nYou can manage it with the 'NeuralNetwork' class.\nExample:\n\n\tmodel = NeuralNetwork()\n\tsample = [input_1, input_2, input_3, input_4, ...]\n\toutputs = model.calculate_output(sample)\n\n\tInputs Names:\n\t1 )cement\n\t2 )blast_furnace_slag\n\t3 )fly_ash\n\t4 )water\n\t5 )superplasticizer\n\t6 )coarse_aggregate\n\t7 )fine_aggregate\n\nYou can predict with a batch of samples using calculate_batch_output method\nIMPORTANT: input batch must be class 'numpy.ndarray' type\nExample_1:\n\tmodel = NeuralNetwork()\n\tinput_batch = np.array([[1, 2], [4, 5]], np.int32)\n\toutputs = model.calculate_batch_output(input_batch)\nExample_2:\n\tinput_batch = pd.DataFrame( {'col1': [1, 2], 'col2': [3, 4]})\n\toutputs = model.calculate_batch_output(input_batch.values)\n'''\n\nimport numpy as np\n\nclass NeuralNetwork:\n\n\tdef __init__(self):\n\n\t\tself.parameters_number = 10\n\n\tdef scaling_layer(self,inputs):\n\n\t\toutputs = [None] * 7\n\n\t\toutputs[0] = (inputs[0]-265.4440002)\/104.6699982\n\t\toutputs[1] = (inputs[1]-86.28520203)\/87.82649994\n\t\toutputs[2] = (inputs[2]-62.79529953)\/66.22769928\n\t\toutputs[3] = (inputs[3]-183.0599976)\/19.32859993\n\t\toutputs[4] = (inputs[4]-6.995759964)\/5.392280102\n\t\toutputs[5] = (inputs[5]-956.059021)\/83.8015976\n\t\toutputs[6] = (inputs[6]-764.3770142)\/73.12049866\n\n\t\treturn outputs;\n\n\n\tdef perceptron_layer_1(self,inputs):\n\n\t\tcombinations = [None] * 1\n\n\t\tcombinations[0] = -0.0483297 -0.611001*inputs[0] -0.456874*inputs[1] -0.261702*inputs[2] +0.0291907*inputs[3] -0.0406589*inputs[4] -0.132526*inputs[5] -0.149657*inputs[6]\n\n\t\tactivations = [None] * 1\n\t\tactivations[0] = np.tanh(combinations[0])\n\t\treturn activations;\n\n\n\tdef perceptron_layer_2(self,inputs):\n\n\t\tcombinations = [None] * 1\n\t\tcombinations[0] = -0.0484288 -2.26703*inputs[0]\n\t\tactivations = [None] * 1\n\t\tactivations[0] = combinations[0]\n\t\treturn activations;\n\n\n\tdef unscaling_layer(self,inputs):\n\n\t\toutputs = [None] * 1\n\t\toutputs[0] = inputs[0]*14.71109962+36.74860001\n\t\treturn outputs\n\n\n\tdef bounding_layer(self,inputs):\n\n\t\toutputs = [None] * 1\n\t\toutputs[0] = inputs[0]\n\t\treturn outputs\n\n\n\tdef calculate_output(self, inputs):\n\n\t\toutput_scaling_layer = self.scaling_layer(inputs)\n\t\toutput_perceptron_layer_1 = self.perceptron_layer_1(output_scaling_layer)\n\t\toutput_perceptron_layer_2 = self.perceptron_layer_2(output_perceptron_layer_1)\n\t\toutput_unscaling_layer = self.unscaling_layer(output_perceptron_layer_2)\n\t\toutput_bounding_layer = self.bounding_layer(output_unscaling_layer)\n\t\treturn output_bounding_layer\n\n\n\tdef calculate_batch_output(self, input_batch):\n\n\t\toutput = []\n\n\t\tfor i in range(input_batch.shape[0]):\n\n\t\t\tinputs = list(input_batch[i])\n\t\t\toutput_scaling_layer = self.scaling_layer(inputs)\n\t\t\toutput_perceptron_layer_1 = self.perceptron_layer_1(output_scaling_layer)\n\t\t\toutput_perceptron_layer_2 = self.perceptron_layer_2(output_perceptron_layer_1)\n\t\t\toutput_unscaling_layer = self.unscaling_layer(output_perceptron_layer_2)\n\t\t\toutput_bounding_layer = self.bounding_layer(output_unscaling_layer)\n\t\t\toutput = np.append(output,output_bounding_layer, axis=0)\n\n\t\treturn output\n     <\/pre>\n<p>Once we have this code, we can open Power BI to make the deployment.<\/p>\n<\/div><div class=\"ndb-card\" id=\"IntegrateInPowerBI\"><h2>Integrate the model in Power BI<\/h2><p>In this case, we will be implementing a Power BI report that shows the output calculated by the model for a series of input values and the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-deployment\/#DirectionalOutputs\">directional outputs<\/a>\u00a0given for those same values.<\/p>\n<p>We will be working with variables&#8217; parameters, so there is no need to load any dataset. To get the values of those parameters from the user, we will create a slider for each of the input variables.<\/p>\n<h3>Create input sliders with parameters<\/h3>\n<p>We will click on New Parameter on the modeling tab to create these sliders. There we will use the range of the variable and, as step, the value that gives us 100 steps for such range.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/what_if_parameter.webp\" width=\"30%\"  alt=\"What If Parameter\"\/><\/p>\n<p>Once we create the sliders for all the inputs, we stack them for easier access.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/power_bi_sliders.webp\" width=\"25%\" alt=\"Power Bi Sliders\"><\/p>\n<p>We will name the parameter fields as follows to later work with them in Python.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/slider_fields_powerbi.webp\" width=\"20%\"  alt=\"Slider Fields Power BI\"\/><\/p>\n<h3 data-start=\"1636\" data-end=\"1682\">Show the model output with a Python visual<\/h3>\n<p>To calculate the target value, we will be using the Python visual functionality, which allows us to embed a Python script in Power BI. We use the code exported by Neural Designer to calculate the output and, then we plot it so that it can be seen on our report.<br \/>The code added to the model is<\/p>\n<pre>import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport matplotlib.patheffects as path_effects\n\nmodel = NeuralNetwork()\n\n# Parameter point\ninput_parameters = [dataset.cement_parameter, dataset.blast_furnace_slag_parameter, dataset.fly_ash_parameter, dataset.water_parameter, dataset.superplasticizer_parameter, dataset.coarse_aggregate_parameter, dataset.fine_aggregate_parameter]\n\noutput_point = round(model.calculate_output(input_parameters)[0][0],2)\n\n\nfig = plt.figure(figsize=(60, 10))\nfig.patch.set_facecolor('#3A3A3A')\ntext = fig.text(0, 0.5, str(output_point) + ' MPa',\n                ha='left', va='center', size=500, color ='#d04f25')            \ntext.set_path_effects([path_effects.Normal()])\nplt.show()\n     <\/pre>\n<p>This way, after adding a text box with the name of the target variable, we get the Neural Network&#8217;s output.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_output.webp\" width=\"20%\"  alt=\"Power BI Output\"\/><\/p>\n<h3 data-start=\"2320\" data-end=\"2380\">Create directional output plots with a dropdown selector<\/h3>\n<p>Next, we will create the directional outputs for each of the inputs. To save some space, we will use a dropdown menu to select the input the user wants to visualize.<\/p>\n<p>First of all, we have to create a new data table with the names of the variables and the order we want them to appear in.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_inputs_table.webp\" width=\"30%\"  alt=\"Power BI Inputs Table\"\/><\/p>\n<p>Then, we create a dropdown slicer by clicking on the slicer icon in the visualization section and selecting the inputs column in the table we just created.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_select_inputs.webp\" width=\"20%\"  alt=\"Power BI Select Inputs\"\/><\/p>\n<p>Now, we will add another python visual to create the directional output plots. We will use all the inputs&#8217; parameters and the dropdown slicer as values for this visual.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_values_python_visual.webp\" width=\"20%\"  alt=\"Power BI Values Python Visual\"\/><\/p>\n<p>Just as we did while calculating the output, we paste the exported model and add some code to show the plots.<br \/>The code added to the model is the one that follows:<\/p>\n<pre>import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nmodel = NeuralNetwork()\n\npoints = 100\n\ncement_min = 102\ncement_max = 540\nblast_furnace_slag_min = 0\nblast_furnace_slag_max = 359.4\nfly_ash_min = 0\nfly_ash_max = 200.1\nwater_min = 121.8\nwater_max= 247\nsuperplasticizer_min = 0\nsuperplasticizer_max = 32.2\ncoarse_aggregate_min = 801\ncoarse_aggregate_max = 1145\nfine_aggregate_min = 594\nfine_aggregate_max = 992.6\n\ncement = np.full((1,points),dataset.cement_parameter, dtype = float)[0]\nblast_furnace_slag = np.full((1,points),dataset.blast_furnace_slag_parameter, dtype = float)[0]\nfly_ash = np.full((1,points),dataset.fly_ash_parameter, dtype = float)[0]\nwater = np.full((1,points),dataset.water_parameter, dtype = float)[0]\nsuperplasticizer = np.full((1,points),dataset.superplasticizer_parameter, dtype = float)[0]\ncoarse_aggregate = np.full((1,points),dataset.coarse_aggregate_parameter, dtype = float)[0]\nfine_aggregate = np.full((1,points),dataset.fine_aggregate_parameter, dtype = float)[0]\n\nif dataset.select_input[0] == 'Cement':\n    cement = np.arange(cement_min ,cement_max, (cement_max-cement_min)\/points)\nelif dataset.select_input[0] == 'Blast furnace slag':\n    blast_furnace_slag = np.arange(blast_furnace_slag_min ,blast_furnace_slag_max, (blast_furnace_slag_max-blast_furnace_slag_min)\/points)\nelif dataset.select_input[0] == 'Fly ash':\n    fly_ash = np.arange(fly_ash_min ,fly_ash_max, (fly_ash_max-fly_ash_min)\/points)\nelif dataset.select_input[0] == 'Water':\n    water = np.arange(water_min ,water_max, (water_max-water_min)\/points)\nelif dataset.select_input[0] == 'Superplasticizer':\n    superplasticizer = np.arange(superplasticizer_min ,superplasticizer_max, (superplasticizer_max-superplasticizer_min)\/points)\nelif dataset.select_input[0] == 'Coarse aggregate':\n    coarse_aggregate = np.arange(coarse_aggregate_min ,coarse_aggregate_max, (coarse_aggregate_max-coarse_aggregate_min)\/points)\nelif dataset.select_input[0] == 'Fine aggregate':\n    fine_aggregate = np.arange(fine_aggregate_min ,fine_aggregate_max, (fine_aggregate_max-fine_aggregate_min)\/points)\n\n\ndirectional_inputs = pd.DataFrame([cement, blast_furnace_slag, fly_ash, water, superplasticizer, coarse_aggregate, fine_aggregate]).T\ndirectional_inputs.columns = ['cement', 'blast_furnace_slag', 'fly_ash', 'water', 'superplasticizer', 'coarse_aggregate', 'fine_aggregate']\ncompressive_strength = model.calculate_batch_output(directional_inputs.values)\ncompressive_strength = pd.DataFrame(compressive_strength, columns=['compressive_strength'])\n\n\nif dataset.select_input[0] == 'Cement':\n    directional_output = pd.concat([directional_inputs.cement, compressive_strength], axis = 1)\n    input_point = dataset.cement_parameter\n    x_label = 'Cement (kg\/m3)'\nelif dataset.select_input[0] == 'Blast furnace slag':\n    directional_output = pd.concat([directional_inputs.blast_furnace_slag, compressive_strength], axis = 1)\n    input_point = dataset.blast_furnace_slag_parameter\n    x_label = 'Blast furnace slag (kg\/m3)'\nelif dataset.select_input[0] == 'Fly ash':\n    directional_output = pd.concat([directional_inputs.fly_ash, compressive_strength], axis = 1)\n    input_point = dataset.fly_ash_parameter\n    x_label = 'Fly ash (kg\/m3)'\nelif dataset.select_input[0] == 'Water':\n    directional_output = pd.concat([directional_inputs.water, compressive_strength], axis = 1)\n    input_point = dataset.water_parameter\n    x_label = 'Water (kg\/m3)'\nelif dataset.select_input[0] == 'Superplasticizer':\n    directional_output = pd.concat([directional_inputs.superplasticizer, compressive_strength], axis = 1)\n    input_point = dataset.superplasticizer_parameter\n    x_label = 'superplasticizer (kg\/m3)'\nelif dataset.select_input[0] == 'Coarse aggregate':\n    directional_output = pd.concat([directional_inputs.coarse_aggregate, compressive_strength], axis = 1)\n    input_point = dataset.coarse_aggregate_parameter\n    x_label = 'Coarse aggregate (kg\/m3)'\nelif dataset.select_input[0] == 'Fine aggregate':\n    directional_output = pd.concat([directional_inputs.fine_aggregate, compressive_strength], axis = 1)\n    input_point = dataset.fine_aggregate_parameter\n    x_label = 'Fine aggregate (kg\/m3)'\n\n\n# Parameter point\ninput_parameters = [dataset.cement_parameter, dataset.blast_furnace_slag_parameter, dataset.fly_ash_parameter, dataset.water_parameter, dataset.superplasticizer_parameter, dataset.coarse_aggregate_parameter, dataset.fine_aggregate_parameter]\n\noutput_point = model.calculate_output(input_parameters)\n\n\nfig = plt.figure()\nfig.patch.set_facecolor('#3A3A3A')\nfig.set_figwidth(7.68)\nfig.set_figheight(4)\nax = fig.add_subplot(111)\n\nax.patch.set_facecolor('#3A3A3A')\nax.set_axisbelow(True)\n# draw solid white grid lines\nplt.grid(color='grey', linestyle='dashed')\n# hide axis spines\nfor spine in ax.spines.values():\n    spine.set_visible(False)\n\n# hide top and right ticks\nax.xaxis.tick_bottom()\nax.yaxis.tick_left()\n\n# lighten ticks and labels\nax.tick_params(colors='grey', direction='out')\nfor tick in ax.get_xticklabels():\n    tick.set_color('w')\nfor tick in ax.get_yticklabels():\n    tick.set_color('w')\n    \n    \nax.plot(directional_output.iloc[:,0],directional_output.iloc[:,1], color='#55a1c8', linewidth=2)\nax.plot(input_point, output_point, 'o', color = '#d04f25')\nplt.xlabel(x_label, color = 'w')\nplt.ylabel(\"Compressive strength (MPa)\", color = 'w')\nplt.tight_layout()\n\nplt.show()\n\t<\/pre>\n<p>This will show us the directional output for the different input values selected in the dropdown menu.<br \/>We can now try changing the parameter values and watch how the visualization of the target&#8217;s values changes with the inputs.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_report.webp\" width=\"80%\"  alt=\"Power BI Report\"\/><\/p>\n<p>We can give the report the format we desire, and use it for a formal presentation or as a powerful Bussiness Intelligence tool.<\/p>\n<p>To learn more, see the next example:<\/p>\n<ul style=\"font-size: 20px; background-color: #ffffff;\">\n<li style=\"font-size: 20px;\"><a href=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/iris-flowers-classification\/\">Classification of iris flowers from sepal and petal dimensions<\/a>.<\/li>\n<\/ul>\n<\/div><\/div><\/div>","protected":false},"author":13,"featured_media":1699,"template":"","categories":[31],"tags":[36],"class_list":["post-3541","learning","type-learning","status-publish","has-post-thumbnail","hentry","category-user-guide","tag-tutorials"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Use Neural Designer models in Microsoft Power BI<\/title>\n<meta name=\"description\" content=\"Export a model built using Neural Designer to Python and then integrate it in Power BI.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use Neural Designer models in Microsoft Power BI\" \/>\n<meta property=\"og:description\" content=\"Export a model built using Neural Designer to Python and then integrate it in Power BI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/\" \/>\n<meta property=\"og:site_name\" content=\"Neural Designer\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T12:03:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1304\" \/>\n\t<meta property=\"og:image:height\" content=\"744\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@NeuralDesigner\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/\",\"name\":\"Use Neural Designer models in Microsoft Power BI\",\"isPartOf\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp\",\"datePublished\":\"2025-09-12T09:12:57+00:00\",\"dateModified\":\"2026-08-25T12:03:45+00:00\",\"description\":\"Export a model built using Neural Designer to Python and then integrate it in Power BI.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp\",\"width\":1304,\"height\":744,\"caption\":\"Power BI report\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.neuraldesigner.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning\",\"item\":\"https:\/\/www.neuraldesigner.com\/learning\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Use Neural Designer models in Microsoft Power BI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"name\":\"Neural Designer\",\"description\":\"Explainable AI Platform\",\"publisher\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.neuraldesigner.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\",\"name\":\"Neural Designer\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"width\":1024,\"height\":223,\"caption\":\"Neural Designer\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NeuralDesigner\",\"https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Use Neural Designer models in Microsoft Power BI","description":"Export a model built using Neural Designer to Python and then integrate it in Power BI.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/","og_locale":"en_US","og_type":"article","og_title":"Use Neural Designer models in Microsoft Power BI","og_description":"Export a model built using Neural Designer to Python and then integrate it in Power BI.","og_url":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/","og_site_name":"Neural Designer","article_modified_time":"2026-08-25T12:03:45+00:00","og_image":[{"width":1304,"height":744,"url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@NeuralDesigner","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/","url":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/","name":"Use Neural Designer models in Microsoft Power BI","isPartOf":{"@id":"https:\/\/www.neuraldesigner.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp","datePublished":"2025-09-12T09:12:57+00:00","dateModified":"2026-08-25T12:03:45+00:00","description":"Export a model built using Neural Designer to Python and then integrate it in Power BI.","breadcrumb":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#primaryimage","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/powerbi_report.webp","width":1304,"height":744,"caption":"Power BI report"},{"@type":"BreadcrumbList","@id":"https:\/\/www.neuraldesigner.com\/learning\/user-guide\/integrate-a-model-in-power-bi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.neuraldesigner.com\/"},{"@type":"ListItem","position":2,"name":"Learning","item":"https:\/\/www.neuraldesigner.com\/learning\/"},{"@type":"ListItem","position":3,"name":"Use Neural Designer models in Microsoft Power BI"}]},{"@type":"WebSite","@id":"https:\/\/www.neuraldesigner.com\/#website","url":"https:\/\/www.neuraldesigner.com\/","name":"Neural Designer","description":"Explainable AI Platform","publisher":{"@id":"https:\/\/www.neuraldesigner.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.neuraldesigner.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.neuraldesigner.com\/#organization","name":"Neural Designer","url":"https:\/\/www.neuraldesigner.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","width":1024,"height":223,"caption":"Neural Designer"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NeuralDesigner","https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning"}],"about":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/types\/learning"}],"author":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/users\/13"}],"version-history":[{"count":13,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3541\/revisions"}],"predecessor-version":[{"id":23695,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3541\/revisions\/23695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media\/1699"}],"wp:attachment":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media?parent=3541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/categories?post=3541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/tags?post=3541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}