Month: July 2024
Error “Method ‘Control’ is not defined for class ‘matlab.graphics.controls.internal.Control'”
fig = figure(‘Name’, ‘test’);
t = tiledlayout(fig, 4, 4);
The latest instruction throw this strange error on one of my PC (the other one works fine)
Method ‘Control’ is not defined for class ‘matlab.graphics.controls.internal.Control’ or is removed from MATLAB’s search path.
Error in matlab.graphics.shape.internal.Button
Error in matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad
Error in matlab.graphics.controls.internal.PostUpdatePlugin>@()matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad(canvasParent)
Does anyone what is that about?fig = figure(‘Name’, ‘test’);
t = tiledlayout(fig, 4, 4);
The latest instruction throw this strange error on one of my PC (the other one works fine)
Method ‘Control’ is not defined for class ‘matlab.graphics.controls.internal.Control’ or is removed from MATLAB’s search path.
Error in matlab.graphics.shape.internal.Button
Error in matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad
Error in matlab.graphics.controls.internal.PostUpdatePlugin>@()matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad(canvasParent)
Does anyone what is that about? fig = figure(‘Name’, ‘test’);
t = tiledlayout(fig, 4, 4);
The latest instruction throw this strange error on one of my PC (the other one works fine)
Method ‘Control’ is not defined for class ‘matlab.graphics.controls.internal.Control’ or is removed from MATLAB’s search path.
Error in matlab.graphics.shape.internal.Button
Error in matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad
Error in matlab.graphics.controls.internal.PostUpdatePlugin>@()matlab.graphics.controls.internal.PostUpdatePlugin.doCacheLoad(canvasParent)
Does anyone what is that about? tiledlayout, error MATLAB Answers — New Questions
List audit report
Hello everyone,
I have a Sharepoint list that is updated by a group of users, I wonder if there is a way to know who was the last user to update it.
Is that possible?
Thank you,
Hello everyone, I have a Sharepoint list that is updated by a group of users, I wonder if there is a way to know who was the last user to update it. Is that possible? Thank you, Read More
Indexing option always index’s my clone of my C drive which is F, can’t index C: drive
I really don’t want to open the case to unplug the drive.
How do I make it index my main c: drive?
When I select for C:, indexing options select clone of my OS drive to index.
No wonder can not find anything in file manager searches
When I unselect F: and select C:, it reselects F:
I really don’t want to open the case to unplug the drive.How do I make it index my main c: drive?When I select for C:, indexing options select clone of my OS drive to index.No wonder can not find anything in file manager searchesWhen I unselect F: and select C:, it reselects F: Read More
Recording – Lowering Overhead Burden and Increasing Productivity of Medical Affairs Directors/Medica
“Recording – Lowering Overhead Burden and Increasing Productivity of Medical Affairs Directors/Medical Science Liaisons – Starter Series Round 2 Pharma Focus”
Copilot for Microsoft 365 is a digital assistant that can help Medical Affairs Directors and Medical Science Liaisons manage their work such as:
Streamline Presentations
Better prepare for KOL Engagements
Easily stay current with the latest publications and clinical trial data related to the disease area you support
Staying on top of team meetings
ISS Assessments
Clinical Trial Calls
In this webinar recording Microsoft’s Helen Guan and Michael Gannotti present how Copilot for Microsoft 365 can benefit medical affairs directors and medical science liaisons. Additionally, Helen takes viewers through two separate use cases with demos of addressing these professional needs.
To See the Entire Webinar Series click here.
Resources:
Presentation slide deck in PDF format
HLS Copilot Snacks (microsoft.com)
Copilot for Microsoft 365 – Microsoft Adoption
Copilot Success Kit – Microsoft Adoption
Copilot in Word help & learning (microsoft.com)
Copilot in PowerPoint help & learning (microsoft.com)
Copilot in OneNote help & learning (microsoft.com)
Copilot in Outlook help & learning (microsoft.com)
Copilot in Excel help & learning (microsoft.com)
Copilot in Microsoft Teams help & learning
Microsoft Copilot grounded in your work data
Copilot in Microsoft Loop help & learning
Welcome to Copilot in Windows – Microsoft Support
Copilot in Whiteboard help & learning (microsoft.com)
Welcome to Copilot in Forms – Microsoft Support
Learn about Copilot prompts – Microsoft Support
Copilot prompts Toolkit
Data, Privacy, and Security for Microsoft Copilot for Microsoft 365 | Microsoft Learn
To See the Entire Webinar Series click here.
Thanks for visiting – Michael Gannotti LinkedIn
Microsoft Tech Community – Latest Blogs –Read More
Syksyn Kumppanitunnit 2024
SYKSYN 2024 KUMPPANITUNNIT
Huomaattehan, että jo pidettyjen Kumppanituntien tallenteet löytyvät alta samasta rekisteröitymislinkistä noin kahden tunnin kuluttua Kumppanitunnin jälkeen. Kevään 2024 Kumppanituntien tallenteet löytyvät tästä linkistä.
Microsoftin tekniset Kumppanitunnit järjestetään Cloud Champion -sivustolla, josta ne ovat kätevästi saatavilla tallenteina pari tuntia live-lähetyksen jälkeen. Muistathan rekisteröityä Cloud Champion -alustalle ensimmäisellä kerralla, jonka jälkeen pääset aina sisältöön sekä tallenteisiin käsiksi. Pääset rekisteröitymään, “Register now”-kohdasta. Täytä tietosi ja valitse Distributor kohtaan – Other, mikäli et tiedät tukkurianne.
Kumppanitunti on joka toinen perjantai klo 10.00-11.00 järjestettävä Microsoftin tekninen kumppaniwebinaari, joka on tarkoitettu Microsoftin kumppaneille. Webinaarissa keskitymme Microsoftin ratkaisualueiden teknologioiden mielenkiintoisiin uutuuksiin. Microsoftin suomalaiset arkkitehdit, tuotepäälliköt ja teknologiastrategit ovat poimineet kiinnostavia ja hyödyllisiä aiheita, joita he vuorollaan esittelevät. Lisäksi luodaan alkuun lyhyt katsaus MAICPP-kumppaniohjelman uutisiin sekä tärkeisiin koulutuksiin. Webinaarissa on mahdollisuus esittää myös kysymyksiä aiheesta. Tee itsellesi toistuva kalenterivaraus ja muista ilmoittautua alla olevista linkeistä.
Alla on alustavat teemat syksylle 2024, joiden tarkka agenda päivitetään lähempänä esityspäivää, sekä lisätään linkit aiempien Kumppanituntien tallenteisiin.
16.8.2024 Microsoft AI- ja Copilot-strategian päivitys kumppaneille
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja: Vesa-Matti Paananen, teknologiajohtaja, Microsoft
30.8.2024 Tekoäly tukemassa ERP-ratkaisuja
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja: Tiia Kuokkanen, ratkaisuarkkitehti, Microsoft
13.9.2024 Tietoturva osana AI-governanssia
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
27.9.2024 Data-alustojen migraatio Microsoft Fabricilla
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
11.10.2024 Azure Open AI -ratkaisujen joustava kehitys ja kapasiteetin turvaaminen
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
25.10.2024 Tietoturva osana pilvimigraatiota
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
8.11.2024 Tietosuojapäivitys, vastuullinen tekoäly ja EU AI ACT
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
22.11.2024 Poimintoja Ignitestä – Kumppanitiimin tärpit
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
5.12.2024 Copilot for Microsoft 365 uudet ominaisuudet
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Huom! Torstai itsenäisyys päivän johdosta
Puhuja:
20.12.2024 Kumppanitunnin jouluspesiaali
Rekisteröidy tästä linkistä (linkki tulee lähempänä päivää).
Puhuja:
Löydät kevään 2024 Kumppanituntien tallenteet ja materiaalit tästä.
Microsoft Tech Community – Latest Blogs –Read More
MCC DaqHat and Raspberry Pi Guidance
We are in the process of building a data acquisitoin system using a remote Raspberry Pi, and 2 Daqhats from MCC-DAQ. I am wondering if anyone else has tried this configuration and if so is there any guidance that they would recommend?
-Matlab says that they don’t support these modules. I was pretty sure when we purchased it they acted like they did. I have been unable to find any reference to this within Mathlab or the Forums.
-MCC-DAQ acted like it was fairly straightforward. However, since starting this they have made it very difficult to communicate with them. I have not really found any material there either yet.
I apologize for this being a vague post but I don’t have many details to share yet.
Sincerely, PaulWe are in the process of building a data acquisitoin system using a remote Raspberry Pi, and 2 Daqhats from MCC-DAQ. I am wondering if anyone else has tried this configuration and if so is there any guidance that they would recommend?
-Matlab says that they don’t support these modules. I was pretty sure when we purchased it they acted like they did. I have been unable to find any reference to this within Mathlab or the Forums.
-MCC-DAQ acted like it was fairly straightforward. However, since starting this they have made it very difficult to communicate with them. I have not really found any material there either yet.
I apologize for this being a vague post but I don’t have many details to share yet.
Sincerely, Paul We are in the process of building a data acquisitoin system using a remote Raspberry Pi, and 2 Daqhats from MCC-DAQ. I am wondering if anyone else has tried this configuration and if so is there any guidance that they would recommend?
-Matlab says that they don’t support these modules. I was pretty sure when we purchased it they acted like they did. I have been unable to find any reference to this within Mathlab or the Forums.
-MCC-DAQ acted like it was fairly straightforward. However, since starting this they have made it very difficult to communicate with them. I have not really found any material there either yet.
I apologize for this being a vague post but I don’t have many details to share yet.
Sincerely, Paul raspberry pi, daqhat MATLAB Answers — New Questions
Simscape multibody: How to simulate a cylinder rolling down an irregular surface
Hello to all,
I am a beginner to using simulink and I am trying to use simscape to model a cylinder rolling down an irregularly shaped incline. I used the documentation on how to model a wheel rolling down a straight incline to make my model (https://nl.mathworks.com/help/sm/ug/model-a-rolling-wheel.html) but I replaced the brick solid with a custom file.
Model in the custom file:
When I simulate the cylinder it does not behave like I would expect with the cylinder sort of "hovering" over the concave areas whilst flailing and drifting around.
From what I have read, it seems this has to do with the convex hull representation of the object that the contact force block uses. However, I am not sure how to fix this. Is there any way of specifying the block not to use convex hull? Or how could I go about fixing this model?
Any help is appreciated :)Hello to all,
I am a beginner to using simulink and I am trying to use simscape to model a cylinder rolling down an irregularly shaped incline. I used the documentation on how to model a wheel rolling down a straight incline to make my model (https://nl.mathworks.com/help/sm/ug/model-a-rolling-wheel.html) but I replaced the brick solid with a custom file.
Model in the custom file:
When I simulate the cylinder it does not behave like I would expect with the cylinder sort of "hovering" over the concave areas whilst flailing and drifting around.
From what I have read, it seems this has to do with the convex hull representation of the object that the contact force block uses. However, I am not sure how to fix this. Is there any way of specifying the block not to use convex hull? Or how could I go about fixing this model?
Any help is appreciated 🙂 Hello to all,
I am a beginner to using simulink and I am trying to use simscape to model a cylinder rolling down an irregularly shaped incline. I used the documentation on how to model a wheel rolling down a straight incline to make my model (https://nl.mathworks.com/help/sm/ug/model-a-rolling-wheel.html) but I replaced the brick solid with a custom file.
Model in the custom file:
When I simulate the cylinder it does not behave like I would expect with the cylinder sort of "hovering" over the concave areas whilst flailing and drifting around.
From what I have read, it seems this has to do with the convex hull representation of the object that the contact force block uses. However, I am not sure how to fix this. Is there any way of specifying the block not to use convex hull? Or how could I go about fixing this model?
Any help is appreciated 🙂 simscape, roll, simulink MATLAB Answers — New Questions
Test Exceptions and Mask Contraints within the TestManager
Hi,
i want to test my module under test using a test harness and testmanager combined with a test assesment. Additional to "normal" test cases, i also want to do out of range tests, or invalid mask inputs (contraints protected) or setting unvalid inputs for signals.
I found the openExample(‘matlab/VerifyErrorTestInputValidationOfAFunctionExample’) example, which is kind of what i want to do, but i want to integrate it into my test manager to automatically run several different tests.
An example, I do have a simulink subsystem, which has a mask parameter called a, which needs to be a postive number and is protected by a mask constraint. In my first test step i enter value 5 for this mask, in the next test i want to add a -5. I do expect the mask contraint exception to be thworn and it will be thrown but i want to add this expected exception to my test manager as a valid test that has passed when the correct exception has happened.
How can i do that?Hi,
i want to test my module under test using a test harness and testmanager combined with a test assesment. Additional to "normal" test cases, i also want to do out of range tests, or invalid mask inputs (contraints protected) or setting unvalid inputs for signals.
I found the openExample(‘matlab/VerifyErrorTestInputValidationOfAFunctionExample’) example, which is kind of what i want to do, but i want to integrate it into my test manager to automatically run several different tests.
An example, I do have a simulink subsystem, which has a mask parameter called a, which needs to be a postive number and is protected by a mask constraint. In my first test step i enter value 5 for this mask, in the next test i want to add a -5. I do expect the mask contraint exception to be thworn and it will be thrown but i want to add this expected exception to my test manager as a valid test that has passed when the correct exception has happened.
How can i do that? Hi,
i want to test my module under test using a test harness and testmanager combined with a test assesment. Additional to "normal" test cases, i also want to do out of range tests, or invalid mask inputs (contraints protected) or setting unvalid inputs for signals.
I found the openExample(‘matlab/VerifyErrorTestInputValidationOfAFunctionExample’) example, which is kind of what i want to do, but i want to integrate it into my test manager to automatically run several different tests.
An example, I do have a simulink subsystem, which has a mask parameter called a, which needs to be a postive number and is protected by a mask constraint. In my first test step i enter value 5 for this mask, in the next test i want to add a -5. I do expect the mask contraint exception to be thworn and it will be thrown but i want to add this expected exception to my test manager as a valid test that has passed when the correct exception has happened.
How can i do that? testmanager simulink exception outofrange mask MATLAB Answers — New Questions
Download of Matlab software.
I want to download the matlab software, but I am unable to verify my university, since I am directed to another university’s portal. Kindly help-guide me.I want to download the matlab software, but I am unable to verify my university, since I am directed to another university’s portal. Kindly help-guide me. I want to download the matlab software, but I am unable to verify my university, since I am directed to another university’s portal. Kindly help-guide me. – MATLAB Answers — New Questions
Creating Logic App to Identify Low Storage Devices from Intune
Hello everyone,
I’m seeking some assistance with creating a Logic App. I need to identify devices in Intune that have 5GB or less of available space and receive an email with the details of these devices, including their names.
Is this achievable?
Hello everyone, I’m seeking some assistance with creating a Logic App. I need to identify devices in Intune that have 5GB or less of available space and receive an email with the details of these devices, including their names.Is this achievable? Read More
Windows Defender Advanced Threat Protection Service failed to start
Good Day,
I have one PC Microsoft Windows 11 Enterprise couldn’t be onboarded because Windows Defender Advanced Threat Protection Network Detection and Response could not be started. Event ID 101 is being logged under Microsoft-Windows-SENSE/Operational with below error “Windows Defender Advanced Threat Protection Network Detection and Response executable failed to start. Failure code: 0x8007051A”
Thanks
Good Day,I have one PC Microsoft Windows 11 Enterprise couldn’t be onboarded because Windows Defender Advanced Threat Protection Network Detection and Response could not be started. Event ID 101 is being logged under Microsoft-Windows-SENSE/Operational with below error “Windows Defender Advanced Threat Protection Network Detection and Response executable failed to start. Failure code: 0x8007051A” Thanks Read More
Outlook Prints Current Date Instead of Start and End Date for the MS Purview Calendar Type Files
Hi Team,
We are facing the below issue with MS Purview Calendar Type Files While Opening it in the Outlook Application, Outlook Prints the Current Date Instead of the Start and End Date for the MS Purview Calendar Type Files all other normal Calendar File Show the Date Proper.
You can find more details on it using the below link that we have already generated in the Microsoft Community.
Ticket Generated in the Microsoft Community
Please help me out with this, and suggest if there is any solution to resolve it.
Hi Team,We are facing the below issue with MS Purview Calendar Type Files While Opening it in the Outlook Application, Outlook Prints the Current Date Instead of the Start and End Date for the MS Purview Calendar Type Files all other normal Calendar File Show the Date Proper. You can find more details on it using the below link that we have already generated in the Microsoft Community.Ticket Generated in the Microsoft Community Please help me out with this, and suggest if there is any solution to resolve it. Read More
Unable to add account in outlook in Mac computer
Hello
Please i need your help on this issue.
One of my customer is unable to add account in outlook in Mac computer error says account exist already. If he signs into Windows system with the same account it shows the account is there i.e. we can see the account.
If he signs into outlook web we can still see that the email account is there meaning it has actually been added
But does not show up in outlook in the Mac computer.
Hello Please i need your help on this issue. One of my customer is unable to add account in outlook in Mac computer error says account exist already. If he signs into Windows system with the same account it shows the account is there i.e. we can see the account.If he signs into outlook web we can still see that the email account is there meaning it has actually been addedBut does not show up in outlook in the Mac computer. Read More
Can M365 Copilot Business Users Still Use GPT Builder for Custom GPTs?
Hi everyone,
I’ve come across some conflicting information and I need some clarity. I’m a Microsoft 365 Copilot Business user and I’m trying to figure out if I can still use the GPT Builder to create custom GPTs.
From what I understand, only the consumer version, “Copilot Pro,” has had the GPT Builder functionality shut down. Here’s what I’ve gathered:
Copilot Pro: This subscription is tied to a simple Microsoft account and is primarily for private users. Microsoft has indeed disabled the GPT Builder for these users.Copilot for Microsoft 365: This can be added to a Microsoft 365 Business account on a per-user basis. From my understanding, business customers can still utilize the GPT Builder.
Currently, when I try to create a custom GPT via the web interface as a business user, I no longer see the option available, similar to the experience of private consumers.
Could anyone confirm if as a Microsoft 365 Copilot Business user, I still have access to the GPT Builder for creating custom GPTs? Any official documentation or personal experiences would be greatly appreciated!
Thanks in advance!
Hi everyone,I’ve come across some conflicting information and I need some clarity. I’m a Microsoft 365 Copilot Business user and I’m trying to figure out if I can still use the GPT Builder to create custom GPTs.From what I understand, only the consumer version, “Copilot Pro,” has had the GPT Builder functionality shut down. Here’s what I’ve gathered:Copilot Pro: This subscription is tied to a simple Microsoft account and is primarily for private users. Microsoft has indeed disabled the GPT Builder for these users.Copilot for Microsoft 365: This can be added to a Microsoft 365 Business account on a per-user basis. From my understanding, business customers can still utilize the GPT Builder. Currently, when I try to create a custom GPT via the web interface as a business user, I no longer see the option available, similar to the experience of private consumers.Could anyone confirm if as a Microsoft 365 Copilot Business user, I still have access to the GPT Builder for creating custom GPTs? Any official documentation or personal experiences would be greatly appreciated! Thanks in advance! Read More
No option to remove personal email from the computer
Hello
Please i need your help on this issue.
There is no option to remove personal email from the computer
I tried to follow these steps is not working
Certainly! Here are instructions on how to remove a personal email from your computer:
1. Windows Settings Method:
o Go to Start > Settings > Accounts > Email & accounts.
o Sign out of your personal account if it’s listed there.
o If you don’t see a “Remove” button, click on “Manage” instead.
o Log into your Microsoft account under “Device & activity.”
o Disable this work computer from accessing your email account.
before we use to have the option to disconnect the email address but now is saying manage and when clicked on manage nothing comes out of it.
Hello Please i need your help on this issue. There is no option to remove personal email from the computerI tried to follow these steps is not workingCertainly! Here are instructions on how to remove a personal email from your computer:1. Windows Settings Method:o Go to Start > Settings > Accounts > Email & accounts.o Sign out of your personal account if it’s listed there.o If you don’t see a “Remove” button, click on “Manage” instead.o Log into your Microsoft account under “Device & activity.”o Disable this work computer from accessing your email account.before we use to have the option to disconnect the email address but now is saying manage and when clicked on manage nothing comes out of it. Read More
How we can force the user to sign in with their work account to use Bing Copilot.
How we can force the user to sign in with their work account to use Bing Copilot, due to security risks / DLP issues etc.
How we can force the user to sign in with their work account to use Bing Copilot, due to security risks / DLP issues etc. Read More
DataFormat.Error: We couldn’t parse the input provided as a Date value. Details: Unknown
Hi all, I’m using Power Query Editor in Excel to edit my data. I’m getting a DataFormat error when I try to expand a merged table if I merged on two columns. It doesn’t happen with any data if I merge on one column only, and always happens if I try to merge on two columns.
All my data is in its correct format, and it doesn’t matter if I’m trying to expand a date column or not (the column I’m trying to pull through is a character column).
Does anybody have any idea why this might be happening and how to prevent it?
Thanks
Hi all, I’m using Power Query Editor in Excel to edit my data. I’m getting a DataFormat error when I try to expand a merged table if I merged on two columns. It doesn’t happen with any data if I merge on one column only, and always happens if I try to merge on two columns. All my data is in its correct format, and it doesn’t matter if I’m trying to expand a date column or not (the column I’m trying to pull through is a character column). Does anybody have any idea why this might be happening and how to prevent it? Thanks Read More
How Microsoft is empowering organizations: News and updates from FinOps X 2024
Last year, I shared a broad set of updates that showcased how Microsoft is embracing FinOps practitioners through education, product improvements, and innovative solutions that help organizations achieve more. This year, at FinOps X, we shared the first steps in a transformative vision to help accelerate FinOps and empower stakeholders across the organization with AI-powered experiences like Copilot and Microsoft Fabric. Whether you’re an engineer working in the Azure portal or part of a business or finance team collaborating in Microsoft 365 or analyzing data in Power BI, Microsoft Cloud has the tools you need to accelerate business value for your cloud investments.
I’m about to take you on a whirlwind tour of updates to products, solutions, and services from across Microsoft over the past few months. Some of these were announced at FinOps X and some are new. But let me start with the biggest announcements, which I’ll touch on in more detail throughout the blog post.
Leverage new resources to learn about FinOps and supporting Microsoft tools and services.
Estimate costs before you deploy virtual machines.
Export cost and usage data using FOCUS 1.0 in Microsoft Cost Management.
Ingest FinOps data into Microsoft Fabric to empower business and finance with self-serve analytics.
Accelerate FinOps efforts with Microsoft Copilot in the Azure portal and Microsoft Fabric.
Of course, these are just teasers. Read on to learn more and don’t forget to check out the video below to see the power of Copilot and Microsoft Fabric in action!
Empowering engineers
Empowering people always starts with education, so to kick things off, I’d like to share new learning resources like the Get started with FinOps learning module for those new to FinOps and the Adopt FinOps on Azure learning module that introduces the FinOps capabilities and helps you get started. And once you’re ready to jump into the tools, check out the interactive guides for a walk through of the products and solutions you’ll need as you implement FinOps.
If you’re looking for more, talk to your Microsoft account team and leverage the FinOps offerings from Microsoft Services. As a FinOps Certified Service Provider, Microsoft offers a broad range of services that span every corner of FinOps and more, but just to give you an idea, here are some of the ones you might be interested in:
Strategic planning
FinOps assessment
FinOps strategy planning
FinOps operations
Educate and asses
Azure cost optimization
Azure cost optimization assessment
FinOps technical implementation
Technical implementation
FinOps technical implementation
Azure cost optimization
Next, let’s jump into the portal where you can now drill into the estimated cost of virtual machines before you deploy. This brings the power and transparency of the Azure pricing calculator directly into the Azure portal to give you a complete, upfront picture of your pay-as-you-go virtual machine costs. Stay tuned as this new experience gets rolled out to other services and account types.
And in case you missed the general availability announcement at KubeCon, you’ll also find new smart views for Azure Kubernetes Service (AKS) in Cost analysis where you can get more transparency and drill into AKS clusters to view idle, used, and system costs of each resource or the compute, network, and storage costs of each namespace. With these additional insights, engineers can optimize their AKS costs more efficiently, maximizing the benefits of running their workloads on shared infrastructure.
And speaking of optimization, there’s a ton to share, starting with new and updated tools in Azure Advisor to help you implement proven practices from the Well-Architected Framework (WAF). You’ll find updates to the Cost optimization workbook, which gives you a holistic view of your environment to optimize rates and reduce waste, and discover new well-architected and mission-critical assessments directly from Advisor. Each self-service assessment provides guidelines as recommendations, which can be managed and tracked over time. And if you’re looking for a more holistic view of FinOps, you can also leverage the FinOps review assessment.
You’ll also find a broad range of rate optimization updates, like configuring auto-renewal for reservations at purchase time and new RBAC roles for savings plans, but I’m especially excited about expanded savings plan and reservation offers. I wish I could share more about the new offers that are in the works, but you’ll have to stay tuned.
New reservation offers for:
SQL Database Hyperscale (2 SKUs)
SQL Managed Instance (4 SKUs)
Microsoft Fabric
Microsoft Defender for Cloud
Savings Plan for Compute adds support for:
Azure Container Apps
Azure Spring Apps
But FinOps isn’t just about cost. With the expansion of the FinOps Framework to also cover cloud sustainability, I have to call out the preview release of Azure Carbon Optimization earlier this year, where engineers can monitor, track, and analyze emission trends at the resource level from the Azure portal. And with efficiency recommendations that help optimize carbon emissions, Azure Carbon Optimization provides the foundational tools you need to get started on your cloud sustainability journey.
And whether you’re learning about or looking for solutions to automate and implement FinOps capabilities in the Microsoft Cloud, the FinOps toolkit helps kick-start your FinOps journey with starter kits, scripts, and more. Next week you’ll find new and updated tools, like the Azure Optimization Engine for custom recommendations, updates to the FinOps hubs data ingestion engine to support managed exports and organizations with multi-tenant environments, and updates to the Implementing FinOps guide to align with the FinOps Framework 2024 updates.
Empowering business and finance
Looking beyond engineers, we’re also exploring new ways to empower business and finance teams in the tools they use outside of the Azure portal.
And the first step is getting Microsoft Cloud data into these tools through capabilities like Cost Management exports, which offer no-code data ingestion with enhanced security and 5 new datasets, making it easier to get the data you need into a central reporting tool. The exports preview was first launched in November and we’re happy to share a streamlined create experience where you can select a template covering all the datasets you need as well as an extended self-service data export for the past 7 years. You can export data for the last 13 months from the Azure portal. To go back further, you can use the Exports Execute API or the Start-FinOpsCostExport PowerShell command in the FinOps toolkit.
And perhaps one of the most exciting and anticipated datasets you can export is cost and usage data aligned to the FinOps Open Cost and Usage Specification (FOCUS) schema. As the first cloud provider to implement FOCUS in November 2023, we’ve seen incredible adoption and interest. Organizations of all shapes and sizes are exporting FOCUS data and migrating their reports and alerts. As one of the key leaders in the development of FOCUS, seeing this has been inspiring. And now, you can also export cost and usage data with FOCUS 1.0 to get the latest specification enhancements. Along with this, the next release of the FinOps toolkit will include updated Power BI reports to support your FOCUS 1.0 exports.
And to truly democratize FinOps and empower business and finance teams, leverage Microsoft Fabric to enable self-serve analytics, connect to your existing internal data sources, and streamline some of the most complex FinOps reports and alerts on top of FOCUS 1.0 and other datasets, including carbon emissions. By linking Cost Management exports and enabling Microsoft Azure Emissions Insights in Microsoft Fabric, you can tell the full FinOps story, from cost to usage to carbon and tying it all back to business value to quantify cloud ROI by leveraging your existing business data, like application telemetry.
Accelerating FinOps with AI
And of course, it wouldn’t be a Microsoft update without AI :beaming_face_with_smiling_eyes: But instead of walking you through it all, I’ll share a short video which demonstrates what you can do today with Microsoft Copilot in the Azure portal or in Microsoft Fabric, powered by both your cloud and business data joined together in one powerful place.
Next steps
I hope you’re as excited as I am about the new capabilities available in the Azure portal and the potential of what you can do with Microsoft Fabric. We first hinted at the potential Microsoft Fabric could bring in November, but this is just the beginning. I’ve never been as excited about what the future holds as I am today. Stay tuned for more updates on the FinOps blog.
Microsoft Tech Community – Latest Blogs –Read More
Fine-tuning Florence-2 for VQA (Visual Question Answering) using the Azure ML Python SDK/and MLflow
Released by Microsoft in mid-June 2024 under an MIT license, Florence-2 is less than 1B in size (0.23B for the base model and 0.77B for the large model) and is efficient for vision and vision-language tasks (OCR, captioning, object detection, instance segmentation, and so on).
All of Florence-2’s weights are publicly available, so you can fine-tune it quickly and easily. However, many people struggle with fine-tuning the latest SLM/multi-modal models, including Florence-2, in Azure ML studio. So, we want to walk through a step-by-step guide on how to quickly and easily train and serve from end-to-end in Azure ML.
1. Training preparation
1.1. Preliminaries: Azure ML Python SDK v2
Azure ML Python SDK v2 is easy to use once you get the hang of it. When an MLClient instance is created to manipulate AzureML, the operation corresponding to the asset is executed asynchronously through the create_or_update function. Please see code snippets below.
1.2. Data asset
Model training/validation datasets can be uploaded directly locally, or registered as your Azure ML workspace Data asset. Data asset enables versioning of your data, allowing you to track changes to your dataset and revert to previous versions when necessary. This maintains data quality and ensures reproducibility of data analysis.
Data assets are created by referencing data files or directories stored in Datastore. Datastore represents a location that stores external data and can be connected to various Azure data storage services such as Azure Blob Storage, Azure File Share, Azure Data Lake Storage, and OneLake. When you create an Azure ML workspace, four datastores (workspaceworkingdirectory, workspaceartifactstore, workspacefilestore, workspaceblobstore) are automatically created by default. Among these, workspaceblobstore is Azure Blob Storage, which is used by default when storing model training data or large files.
1.3. Environment asset
Azure ML defines Environment Asset in which your code will run. We can use the built-in environment or build a custom environment using Conda specification or Docker image. The pros and cons of Conda and Docker are as follows.
Conda environment
Advantages
Simple environment setup: The Conda environment file (conda.yml) is mainly used to specify Python packages and Conda packages. The file format is simple and easy to understand, and is suitable for specifying package and version information.
Quick setup: The Conda environment automatically manages dependencies and resolves conflicts, so setup is relatively quick and easy.
Lightweight environment: Conda environments can be lighter than Docker images because they only install specific packages.
Disadvantages
Limited flexibility: Because the Conda environment focuses on Python packages and Conda packages, it is difficult to handle more complex system-level dependencies.
Portability limitations: The Conda environment consists primarily of Python and Conda packages, making it difficult to include other languages or more complex system components.
Docker environment
Advantages
High flexibility: Docker allows you to define a complete environment, including all necessary packages and tools, starting at the operating system level. May contain system dependencies, custom settings, non-Python packages, etc.
Portability: Docker images run the same everywhere, ensuring environment consistency. This significantly improves reproducibility and portability.
Complex environment setup: With Docker, you can set up an environment containing complex applications or multiple services.
Disadvantages
Complex setup: Building and managing Docker images can be more complex than setting up a Conda environment. You need to write a Dockerfile and include all required dependencies.
Build time: Building a Docker image for the first time can take a long time, especially if the dependency installation process is complex.
In Azure ML, it is important to choose the appropriate method based on the requirements of your project. For simple Python projects, the Conda environment may be sufficient, but if you need complex system dependencies, the Docker environment may be more appropriate. The easiest and fastest way to create a custom Docker image is to make minor modifications to the curated environment. Below is an example.
Select acft-hf-nlp-gpu in the cured environment tab. (Of course, you can choose a different environment.)
Copy the Dockerfile and requirements.txt and modify them as needed.
The code snippet below is the result of modifying the Dockerfile.
FROM mcr.microsoft.com/aifx/acpt/stable-ubuntu2004-cu118-py38-torch222:biweekly.202406.2
USER root
RUN apt-get update && apt-get -y upgrade
RUN pip install –upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt –no-cache-dir
RUN python -m nltk.downloader punkt
RUN MAX_JOBS=4 pip install flash-attn==2.5.9.post1 –no-build-isolation
2. Training
2.1. Training Script with MLflow
Some people may think that they need to make significant changes to their existing training scripts or that the Mlflow toolkit is mandatory, but this is not true. If you are comfortable with your existing training environment, you don’t need to adopt Mlflow. Nevertheless, Mlflow is a toolkit that makes training and deploying models on Azure ML very convenient, so we are going to briefly explain it in this post.
In the your training script, Use mlflow.start_run() to start an experiment in MLflow, and mlflow.end_run() to end the experiment when it is finished. Wrapping it in with syntax eliminates the need to explicitly call end_run(). You can perform mlflow logging inside an mlflow block, our training script uses mlflow.log_params(), mlflow.log_metric(), and mlflow.log_image(). For more information, please see here.
import mlflow
…
with mlflow.start_run() as run:
mlflow.log_params({
“epochs”: epochs,
“train_batch_size”: args.train_batch_size,
“eval_batch_size”: args.eval_batch_size,
“seed”: args.seed,
“lr_scheduler_type”: args.lr_scheduler_type,
“grad_accum_steps”: grad_accum_steps,
“num_training_steps”: num_training_steps,
“num_warmup_steps”: num_warmup_steps,
})
# Your training code
for epoch in range(epochs):
train_loss = 0.0
optimizer.zero_grad()
for step, (inputs, answers) in enumerate(tqdm(train_loader, desc=f”Training Epoch {epoch + 1}/{epochs}”)):
…
mlflow.log_metric(“train_loss”, train_loss)
mlflow.log_metric(“learning_rate”, learning_rate)
mlflow.log_metric(“progress”, progress)
…
if (step + 1) % save_steps == 0:
# Log image
idx = random.randrange(len(val_dataset))
val_img = val_dataset[idx][-1]
result = run_example(“DocVQA”, ‘What do you see in this image?’, val_dataset[idx][-1])
val_img_result = create_image_with_text(val_img, json.dumps(result))
mlflow.log_image(val_img_result, key=”DocVQA”, step=step)
[Caution] Florence-2 is a recently released model and does not support mlflow.transformers.log_model() as of July 2, 2024, when this article is being written! Therefore, you must save the model with the traditional save_pretrained().
Currently, when saving with save_pretrained(), additional dependency codes required for model inference are not saved together. So, you need to force it to be saved. See below for a code snippet reflecting these two caveats.
model.save_pretrained(model_dir)
processor.save_pretrained(model_dir)
## Should include configuration_florence2.py, modeling_florence2.py, and processing_florence2.py
dependencies_dir = “dependencies”
shutil.copytree(dependencies_dir, model_dir, dirs_exist_ok=True)
2.2. Create a Compute Cluster and Training Job
Once you have finished writing and debugging the training script, you can create a training job. As a baseline, you can use Standard_NC24ads_A100_v4 with one NVIDIA A100 GPU. Provisioning a LowPriority VM costs just $0.74 per hour in the US East region in July 2024.
The command() function is one of the Azure ML main functions used to define and run training tasks. This function specifies the training script and its required environment settings, and allows the job to be run on Azure ML’s compute resources.
from azure.ai.ml import command
from azure.ai.ml import Input
from azure.ai.ml.entities import ResourceConfiguration
job = command(
inputs=dict(
#train_dir=Input(type=”uri_folder”, path=DATA_DIR), # Get data from local path
train_dir=Input(path=f”{AZURE_DATA_NAME}@latest”), # Get data from Data asset
epoch=d[‘train’][‘epoch’],
train_batch_size=d[‘train’][‘train_batch_size’],
eval_batch_size=d[‘train’][‘eval_batch_size’],
model_dir=d[‘train’][‘model_dir’]
),
code=”./src_train”, # local path where the code is stored
compute=azure_compute_cluster_name,
command=”python train_mlflow.py –train_dir ${{inputs.train_dir}} –epochs ${{inputs.epoch}} –train_batch_size ${{inputs.train_batch_size}} –eval_batch_size ${{inputs.eval_batch_size}} –model_dir ${{inputs.model_dir}}”,
#environment=”azureml://registries/azureml/environments/acft-hf-nlp-gpu/versions/61″, # Use built-in Environment asset
environment=f”{azure_env_name}@latest”,
distribution={
“type”: “PyTorch”,
“process_count_per_instance”: 1, # For multi-gpu training set this to an integer value more than 1
},
)
returned_job = ml_client.jobs.create_or_update(job)
ml_client.jobs.stream(returned_job.name)
2.3. Check your Training job
Check whether model training is progressing normally through Jobs Asset.
Overview tab allows you to view your overall training history. Params are parameters registered in mlflow.log_params() in our training script.
Metrics tab allows you to view the metrics registered with mlflow.log_metric() at a glance.
Images tab allows you to view images saved with mlflow.log_image(). We recommend that you save the inference results as an image to check whether the model training is progressing well.
Outputs + logs tab checks and monitors your model training infrastructure, containers, and code for issues.
system_logs folder records all key activities and events related to the Training cluster, data assets, hosted tools, etc.
user_logs folder mainly plays an important role in storing logs and other files created by users within the training script, increasing transparency of the training process and facilitating debugging and monitoring. This allows users to see a detailed record of the training process and identify and resolve issues when necessary.
3. Serving
Once the model training is complete, let’s deploy it to the hosting server. If you saved it with MLflow log_model(), you can deploy it directly with Mlflow, but in the current transformer and mlflow version, we used the traditional way of saving the model, so we need to deploy it with the custom option.
3.1. Inference script
You only need to define two functions, init() and run(), and write them freely. Although you cannot pass arguments to the init() function directly, you can pass the necessary information during initialization through environment variables or configuration files.
import os
import re
import json
import torch
import base64
import logging
from io import BytesIO
from PIL import Image
from transformers import AutoTokenizer, AutoProcessor, BitsAndBytesConfig, get_scheduler
from transformers import AutoModelForCausalLM, AutoProcessor
from PIL import Image, ImageDraw, ImageFont
device = torch.device(“cuda” if torch.cuda.is_available() else “cpu”)
def run_example_base64(task_prompt, text_input, base64_image, params):
max_new_tokens = params[“max_new_tokens”]
num_beams = params[“num_beams”]
image = Image.open(BytesIO(base64.b64decode(base64_image)))
prompt = task_prompt + text_input
# Ensure the image is in RGB mode
if image.mode != “RGB”:
image = image.convert(“RGB”)
inputs = processor(text=prompt, images=image, return_tensors=”pt”).to(device)
generated_ids = model.generate(
input_ids=inputs[“input_ids”],
pixel_values=inputs[“pixel_values”],
max_new_tokens=max_new_tokens,
num_beams=num_beams
)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
parsed_answer = processor.post_process_generation(generated_text, task=task_prompt, image_size=(image.width, image.height))
return parsed_answer
def init():
“””
This function is called when the container is initialized/started, typically after create/update of the deployment.
You can write the logic here to perform init operations like caching the model in memory
“””
global model
global processor
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# Please provide your model’s folder name if there is one
model_name_or_path = os.path.join(
os.getenv(“AZUREML_MODEL_DIR”), “outputs”
)
model_kwargs = dict(
trust_remote_code=True,
revision=”refs/pr/6″,
device_map=device
)
processor_kwargs = dict(
trust_remote_code=True,
revision=”refs/pr/6″
)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, **model_kwargs)
processor = AutoProcessor.from_pretrained(model_name_or_path, **processor_kwargs)
logging.info(“Loaded model.”)
def run(json_data: str):
logging.info(“Request received”)
data = json.loads(json_data)
task_prompt = data[“task_prompt”]
text_input = data[“text_input”]
base64_image = data[“image_input”]
params = data[‘params’]
generated_text = run_example_base64(task_prompt, text_input, base64_image, params)
json_result = {“result”: str(generated_text)}
return json_result
3.2. Register Model
Register with the Model class of azure.ai.ml.entities. Enter the model’s path and name when registering and use with ml_client.models.create_or_update().
def get_or_create_model_asset(ml_client, model_name, job_name, model_dir=”outputs”, model_type=”custom_model”, update=False):
try:
latest_model_version = max([int(m.version) for m in ml_client.models.list(name=model_name)])
if update:
raise ResourceExistsError(‘Found Model asset, but will update the Model.’)
else:
model_asset = ml_client.models.get(name=model_name, version=latest_model_version)
print(f”Found Model asset: {model_name}. Will not create again”)
except (ResourceNotFoundError, ResourceExistsError) as e:
print(f”Exception: {e}”)
model_path = f”azureml://jobs/{job_name}/outputs/artifacts/paths/{model_dir}/”
run_model = Model(
name=model_name,
path=model_path,
description=”Model created from run.”,
type=model_type # mlflow_model, custom_model, triton_model
)
model_asset = ml_client.models.create_or_update(run_model)
print(f”Created Model asset: {model_name}”)
return model_asset
3.3. Environment asset
This is the same as the Environment asset introduced in the previous section. However, model serving requires additional settings for web hosting, so please refer to the code snippet below.
FROM mcr.microsoft.com/aifx/acpt/stable-ubuntu2004-cu118-py38-torch222:biweekly.202406.2
# Install pip dependencies
COPY requirements.txt .
RUN pip install -r requirements.txt –no-cache-dir
RUN MAX_JOBS=4 pip install flash-attn==2.5.9.post1 –no-build-isolation
# Inference requirements
COPY –from=mcr.microsoft.com/azureml/o16n-base/python-assets:20230419.v1 /artifacts /var/
RUN /var/requirements/install_system_requirements.sh && \
cp /var/configuration/rsyslog.conf /etc/rsyslog.conf && \
cp /var/configuration/nginx.conf /etc/nginx/sites-available/app && \
ln -sf /etc/nginx/sites-available/app /etc/nginx/sites-enabled/app && \
rm -f /etc/nginx/sites-enabled/default
ENV SVDIR=/var/runit
ENV WORKER_TIMEOUT=400
EXPOSE 5001 8883 8888
# support Deepspeed launcher requirement of passwordless ssh login
RUN apt-get update
RUN apt-get install -y openssh-server openssh-client
3.4. Create an Endpoint
An endpoint refers to an HTTP(S) URL that makes the model accessible from the outside. Endpoint can have multiple deployments, which allows traffic to be distributed across multiple deployments. Endpoint does the following:
API interface provided: Endpoint provides a URL to receive model prediction requests through a RESTful API.
Traffic routing: Endpoint distributes traffic across multiple deployments. This allows you to implement A/B testing or canary deployment strategies.
Scalability: Endpoint supports scaling across multiple deployments and can be load balanced across additional deployments as traffic increases.
Security Management: Endpoints secure models through authentication and authorization. You can control access using API keys or Microsoft Entra ID.
The code snippet is below. Note that this process does not provision a compute cluster yet.
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
IdentityConfiguration,
ManagedIdentityConfiguration,
)
# Check if the endpoint already exists in the workspace
try:
endpoint = ml_client.online_endpoints.get(azure_endpoint_name)
print(“—Endpoint already exists—“)
except:
# Create an online endpoint if it doesn’t exist
endpoint = ManagedOnlineEndpoint(
name=azure_endpoint_name,
description=f”Test endpoint for {model.name}”,
)
# Trigger the endpoint creation
try:
ml_client.begin_create_or_update(endpoint).wait()
print(“\n—Endpoint created successfully—\n”)
except Exception as err:
raise RuntimeError(
f”Endpoint creation failed. Detailed Response:\n{err}”
) from err
3.5. Create a Deployment
Deployment is the instance that actually run the model. Multiple deployments can be connected to an endpoint, and each deployment contains a model, environment, compute resources, infrastructure settings, and more. Deployment does the following:
Manage resources: The deployment manages the computing resources needed to run the model. You can set up resources like CPU, GPU, and memory.
Versioning: Deployments can manage different versions of a model. This makes it easy to roll back to a previous version or deploy a new version.
Monitoring and logging: We can monitor the logs and performance of running models. This helps you detect and resolve issues.
The code snippet is below. Note that this takes a lot of time as a GPU cluster must be provisioned and the serving environment must be built.
from azure.ai.ml.entities import (
OnlineRequestSettings,
CodeConfiguration,
ManagedOnlineDeployment,
ProbeSettings,
Environment
)
deployment = ManagedOnlineDeployment(
name=azure_deployment_name,
endpoint_name=azure_endpoint_name,
model=model,
instance_type=azure_serving_cluster_size,
instance_count=1,
#code_configuration=code_configuration,
environment = env,
scoring_script=”score.py”,
code_path=”./src_serve”,
#environment_variables=deployment_env_vars,
request_settings=OnlineRequestSettings(max_concurrent_requests_per_instance=3,
request_timeout_ms=90000, max_queue_wait_ms=60000),
liveness_probe=ProbeSettings(
failure_threshold=30,
success_threshold=1,
period=100,
initial_delay=500,
),
readiness_probe=ProbeSettings(
failure_threshold=30,
success_threshold=1,
period=100,
initial_delay=500,
),
)
# Trigger the deployment creation
try:
ml_client.begin_create_or_update(deployment).wait()
print(“\n—Deployment created successfully—\n”)
except Exception as err:
raise RuntimeError(
f”Deployment creation failed. Detailed Response:\n{err}”
) from err
endpoint.traffic = {azure_deployment_name: 100}
endpoint_poller = ml_client.online_endpoints.begin_create_or_update(endpoint)
[Tip] Please specify and deploy the liveness probe settings directly to check if the model deployment container is running normally. When debugging, it is recommended to set a high initial_delay and a high failure_threshold and high period for error log analysis. Please check ProbeSettings() in the code above.
4. Invocation
We finally succeeded in serving the Florence-2 model. Try using the code below to perform model inference.
import os
import json
import base64
with open(‘./DocumentVQA_Test_01.jpg’, ‘rb’) as img:
base64_img = base64.b64encode(img.read()).decode(‘utf-8’)
sample = {
“task_prompt”: “DocVQA”,
“image_input”: base64_img,
“text_input”: “What do you see in this image”,
“params”: {
“max_new_tokens”: 512,
“num_beams”: 3
}
}
test_src_dir = “./inference-test”
os.makedirs(test_src_dir, exist_ok=True)
print(f”test script directory: {test_src_dir}”)
sample_data_path = os.path.join(test_src_dir, “sample-request.json”)
with open(sample_data_path, “w”) as f:
json.dump(sample, f)
result = ml_client.online_endpoints.invoke(
endpoint_name=azure_endpoint_name,
deployment_name=azure_deployment_name,
request_file=sample_data_path,
)
result_json = json.loads(result)
print(result_json[‘result’])
It is a good strategy to perform LLM latency/throughput benchmarking before deploying the model in earnest. Benchmark the following metrics as a baseline.
metrics = {
‘threads’: num_threads,
‘duration’: duration,
‘throughput’: throughput,
‘avg_sec’: avg_latency,
‘std_sec’: time_std_sec,
‘p95_sec’: time_p95_sec,
‘p99_sec’: time_p99_sec
}
We have published the code to do this post end-to-end at https://github.com/Azure/azure-llm-fine-tuning/tree/main/florence2-VQA.
We hope this tutorial will help you fine-tune and deploy modern models, including the Florence-2 model, in Azure ML Studio.
References
Hugging Face blog – Fine-tuning Florence-2
Fine-tune SLM Phi-3 using Azure ML
Hands-on labs – LLM Fine-tuning/serving with Azure ML
Microsoft Tech Community – Latest Blogs –Read More
Speeding up updateOccupancy() function
I am trying to write a Mapping module where I ingest LIDAR data from a simulated sensor and create a 2D occupancy map using the Update2DMap function:
function [map] = Update2DMap(map, pose, points, hitProbUpdate, passProbUpdate)
% The map is then updated based on the where the ray intersects the
% world
tic
sensorPos = [pose(1) pose(2)];
for i = 1 : size(points, 1)
point = points(i,:);
% Calculate points which a LIDAR ray passes through and the end
% point
[endPoints, midPoints] = raycast(map, sensorPos, point);
% Update the points in the map where the ray has passed through as
% unoccupied therefore reduce their occupancy value
updateOccupancy(map, midPoints, passProbUpdate, ‘grid’);
% End point indicates it has hit an obstacle therefore the
% occupancy values should increase
updateOccupancy(map, endPoints, hitProbUpdate, ‘grid’);
end
toc % Currently takes ~3 seconds to complete this loop
end
Where:
map – 2D occupancy map being updated
pose – pose vector (x, y, theta)
points – n x 2 position vector
hitProbUpdate – probabilty change when an obstacle is detected
passProbUpdate – probabilty change when an obstacle is not detected
I am currently processing a position vector which dimensins ~9000 x 3 and this function is my bottleneck where the tic/toc pair show to complete the for-loop takes around 2-3 seconds which is very slow when plotting.
I’ve tried using parfor loops and seeing if there are ways to use my GPU but neither produces any significant speed increase.
I’m relatively new to using the Navigation/Mapping Toolbox so I wanted to reach out to the community in case anyone has advice on how to speed up my updating function.
Many thanks!I am trying to write a Mapping module where I ingest LIDAR data from a simulated sensor and create a 2D occupancy map using the Update2DMap function:
function [map] = Update2DMap(map, pose, points, hitProbUpdate, passProbUpdate)
% The map is then updated based on the where the ray intersects the
% world
tic
sensorPos = [pose(1) pose(2)];
for i = 1 : size(points, 1)
point = points(i,:);
% Calculate points which a LIDAR ray passes through and the end
% point
[endPoints, midPoints] = raycast(map, sensorPos, point);
% Update the points in the map where the ray has passed through as
% unoccupied therefore reduce their occupancy value
updateOccupancy(map, midPoints, passProbUpdate, ‘grid’);
% End point indicates it has hit an obstacle therefore the
% occupancy values should increase
updateOccupancy(map, endPoints, hitProbUpdate, ‘grid’);
end
toc % Currently takes ~3 seconds to complete this loop
end
Where:
map – 2D occupancy map being updated
pose – pose vector (x, y, theta)
points – n x 2 position vector
hitProbUpdate – probabilty change when an obstacle is detected
passProbUpdate – probabilty change when an obstacle is not detected
I am currently processing a position vector which dimensins ~9000 x 3 and this function is my bottleneck where the tic/toc pair show to complete the for-loop takes around 2-3 seconds which is very slow when plotting.
I’ve tried using parfor loops and seeing if there are ways to use my GPU but neither produces any significant speed increase.
I’m relatively new to using the Navigation/Mapping Toolbox so I wanted to reach out to the community in case anyone has advice on how to speed up my updating function.
Many thanks! I am trying to write a Mapping module where I ingest LIDAR data from a simulated sensor and create a 2D occupancy map using the Update2DMap function:
function [map] = Update2DMap(map, pose, points, hitProbUpdate, passProbUpdate)
% The map is then updated based on the where the ray intersects the
% world
tic
sensorPos = [pose(1) pose(2)];
for i = 1 : size(points, 1)
point = points(i,:);
% Calculate points which a LIDAR ray passes through and the end
% point
[endPoints, midPoints] = raycast(map, sensorPos, point);
% Update the points in the map where the ray has passed through as
% unoccupied therefore reduce their occupancy value
updateOccupancy(map, midPoints, passProbUpdate, ‘grid’);
% End point indicates it has hit an obstacle therefore the
% occupancy values should increase
updateOccupancy(map, endPoints, hitProbUpdate, ‘grid’);
end
toc % Currently takes ~3 seconds to complete this loop
end
Where:
map – 2D occupancy map being updated
pose – pose vector (x, y, theta)
points – n x 2 position vector
hitProbUpdate – probabilty change when an obstacle is detected
passProbUpdate – probabilty change when an obstacle is not detected
I am currently processing a position vector which dimensins ~9000 x 3 and this function is my bottleneck where the tic/toc pair show to complete the for-loop takes around 2-3 seconds which is very slow when plotting.
I’ve tried using parfor loops and seeing if there are ways to use my GPU but neither produces any significant speed increase.
I’m relatively new to using the Navigation/Mapping Toolbox so I wanted to reach out to the community in case anyone has advice on how to speed up my updating function.
Many thanks! mapping, lidar, occupancy, speed MATLAB Answers — New Questions