{"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-02-11T11:29:39","modified_gmt":"2026-02-11T10:29:39","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":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3541\" class=\"elementor elementor-3541\" data-elementor-post-type=\"learning\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6d73c0e1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6d73c0e1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-42295528\" data-id=\"42295528\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0186d64 elementor-widget elementor-widget-text-editor\" data-id=\"0186d64\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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><section><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><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><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32b6991 elementor-widget elementor-widget-text-editor\" data-id=\"32b6991\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>To solve this application, the next steps are followed:<\/p><ol style=\"font-size: 20px; background-color: #ffffff;\"><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><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><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-097ee38 elementor-widget elementor-widget-text-editor\" data-id=\"097ee38\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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 file can be downloaded from\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/files\/concrete_properties.pbix\" download=\"concrete_properties.pbix\">concrete_properties.pbix<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76d774e elementor-widget elementor-widget-text-editor\" data-id=\"76d774e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"ExportToPython\" style=\"font-family: Outfit, sans-serif; color: #242424;\">1. 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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/export_python_capture.webp\" width=\"30%\" \/><\/p><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>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f9d6416 elementor-widget elementor-widget-text-editor\" data-id=\"3f9d6416\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><section><h2 id=\"ExportToPython\"><span style=\"background-color: #333333; color: wheat; font-family: monospace, monospace; font-size: 14px; white-space-collapse: preserve;\">Artificial Intelligence Techniques SL<\/span><\/h2><pre>artelnics@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><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43d92ed elementor-widget elementor-widget-text-editor\" data-id=\"43d92ed\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Once we have this code, we can open Power BI to make the deployment.<\/p><h2 id=\"IntegrateInPowerBI\" style=\"font-family: Outfit, sans-serif; color: #242424;\">2. 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><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><h3>Create input sliders with parameters<\/h3><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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/what_if_parameter.webp\" width=\"30%\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b66dc8a elementor-widget elementor-widget-text-editor\" data-id=\"b66dc8a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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%\"><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f76b82e elementor-widget elementor-widget-text-editor\" data-id=\"f76b82e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>We will name the parameter fields as follows to later work with them in Python.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/slider_fields_powerbi.webp\" width=\"20%\" \/><\/p><h3 data-start=\"1636\" data-end=\"1682\">Show the model output with a Python visual<\/h3><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>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce09b19 elementor-widget elementor-widget-text-editor\" data-id=\"ce09b19\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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><p>This way, after adding a text box with the name of the target variable, we get the Neural Network&#8217;s output.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_output.webp\" width=\"20%\" \/><\/p><h3 data-start=\"2320\" data-end=\"2380\">Create directional output plots with a dropdown selector<\/h3><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>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d856b02 elementor-widget elementor-widget-text-editor\" data-id=\"d856b02\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_inputs_table.webp\" width=\"30%\" \/><\/p><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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_select_inputs.webp\" width=\"20%\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c5e794c elementor-widget elementor-widget-text-editor\" data-id=\"c5e794c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_values_python_visual.webp\" width=\"20%\" \/><\/p><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>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b660966 elementor-widget elementor-widget-text-editor\" data-id=\"b660966\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91a1f97 elementor-widget elementor-widget-text-editor\" data-id=\"91a1f97\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<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><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/powerbi_report.webp\" width=\"80%\" \/><\/p><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><p>To learn more, see the next example:<\/p><ul style=\"font-size: 20px; background-color: #ffffff;\"><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><\/ul><h2 style=\"font-family: Outfit, sans-serif; color: #242424;\">Related posts<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","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-02-11T10:29:39+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-02-11T10:29:39+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},{\"@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\":\"Explanable 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-02-11T10:29:39+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-02-11T10:29:39+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},{"@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":"Explanable 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":6,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3541\/revisions"}],"predecessor-version":[{"id":21873,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3541\/revisions\/21873"}],"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}]}}