diff --git a/guide/02-api-overview/release_notes_231.ipynb b/guide/02-api-overview/release_notes_231.ipynb new file mode 100644 index 0000000000..b7e8edabae --- /dev/null +++ b/guide/02-api-overview/release_notes_231.ipynb @@ -0,0 +1,951 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "38657f92", + "metadata": {}, + "source": [ + "# What's new in version 2.3.1\n", + "\n", + "## New\n", + "\n", + "### [Guides](../)\n", + "* [Deep Learning](../)\n", + " * [2D Computer Vision](../)\n", + " * [Pixel Classification](../)\n", + " * [Finetune Segment Anything Model (SAM) using SamLoRA](/guide/finetune-sam-using-samlora/)\n", + " * [NLP](../)\n", + " * [Use Mistral LLM for Text Classification and Entity Recognition](/guide/use-mistral-llm-for-text-classification-and-entity-recognition/)\n", + " \n", + "#### [`arcgis.learn`](/python/api-reference/arcgis.learn.toc.html)\n", + "* Adds _extensibility_ support to the module and allows for customization of pre-processing and post-processing\n", + "* Adds fine-tuning of geospatial datasets with _Prithvi_ models\n", + "* [Pixel Classification Models](/python/api-reference/arcgis.learn.toc.html#pixel-classification-models)\n", + " * New model:\n", + " * [`ClimaX`](/python/api-reference/arcgis.learn.toc.html#climax)\n", + " * [`MMSegmentation`](/python/api-reference/arcgis.learn.toc.html#mmsegmentation)\n", + " * adds the _seq_len_ argument for use with composite bands from different timestamps\n", + "\n", + "## Fixes\n", + "\n", + "#### [`arcgis.gis`](/python/api-reference/arcgis.gis.toc.html)\n", + "* [`ContentManager`](/python/api-reference/arcgis.gis.toc.html#contentmanager)\n", + " * [`clone_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.clone_items)\n", + " * Fixes error when cloning Survey123 Form items with multibyte character encoding\n", + "#### [`arcgis.features`](/python/api-reference/arcgis.features.toc.html)\n", + " * Fixes BUG-000167300 where incorrect referencing of spatial references internally causes failures using _parquet_ files with ArcGIS Pro\n", + " \n", + " \n", + "#### [`arcgis.learn`](/python/api-reference/arcgis.learn.toc.html) \n", + "* [Object Detection Models](/python/api-reference/arcgis.learn.toc.html#object-detection-models)\n", + " * Fixes internal return values for metrics with:\n", + " * [`RetinaNet`](/python/api-reference/arcgis.learn.toc.html#retinanet)\n", + " * [`YOLOv3`](/python/api-reference/arcgis.learn.toc.html#yolov3)\n", + " * [`YOLOv3`](/python/api-reference/arcgis.learn.toc.html#yolov3)\n", + " * Fixes performance issue when training models with large image sizes\n", + "* [Unstructured Text Models](/python/api-reference/arcgis.learn.toc.html#unstructured-text-models)\n", + " * [arcgis.learn.text module](/python/api-reference/arcgis.learn.toc.html#arcgis-learn-text-module)\n", + " * [`EntityRecognizer`](/python/api-reference/arcgis.learn.text.html#arcgis.learn.text.EntityRecognizer)\n", + " * Fixes support for CSV data input" + ] + }, + { + "cell_type": "markdown", + "id": "a7a42416", + "metadata": {}, + "source": [ + "# What's new in version 2.3.0.3\n", + "* Updates internal dependency version for _requests_ library" + ] + }, + { + "cell_type": "markdown", + "id": "d44e1341", + "metadata": {}, + "source": [ + "# What's new in version 2.3.0.2\n", + "#### [`arcgis.gis`](/python/api-reference/arcgis.gis.toc.html)\n", + "* Removed incorrect messaging regarding deprecations\n", + "* [`ContentManager`](/python/api-reference/arcgis.gis.toc.html#contentmanager)\n", + " * [`clone_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.clone_items)\n", + " * Fixes error and messaging with cloning Dashboard items when using the _item_mapping_ argument" + ] + }, + { + "cell_type": "markdown", + "id": "3da5d7d1", + "metadata": {}, + "source": [ + "# What's new in version 2.3.0.1\n", + "\n", + "#### [`arcgis.gis`](/python/api-reference/arcgis.gis.toc.html)\n", + "* [`ContentManager`](/python/api-reference/arcgis.gis.toc.html#contentmanager)\n", + " * [`clone_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.clone_items)\n", + " * Fixes error resulting from supporting views structure with cloning Survey123 Form items\n", + " \n", + "#### [`arcgis.learn`](/python/api-reference/arcgis.learn.toc.html)\n", + "* [Object Classification Models](/python/api-reference/arcgis.learn.toc.html#object-classification-models)\n", + " * [`FeatureClassifier`](/python/api-reference/arcgis.learn.toc.html#featureclassifier)\n", + " * [`fit()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.FeatureClassifier.fit)\n", + " * Fixes `KeyError` when inferencing with a model using a _tensorflow_ backend\n", + "* [Object Tracking Models](/python/api-reference/arcgis.learn.toc.html#object-tracking-models)\n", + " * [`SiamMask`](/python/api-reference/arcgis.learn.toc.html#siammask)\n", + " * Fixes load failures to full motion video in ArcGIS Pro with saved models " + ] + }, + { + "cell_type": "markdown", + "id": "c34e7960", + "metadata": {}, + "source": [ + "# What's new in version 2.3.0\n", + "> **Note:** Includes all updates since the release of version 2.2.0\n", + "\n", + "## New\n", + "* New implementation for sharing to fully align with REST API best practices:\n", + " * [SharingManager](/python/api-reference/arcgis.gis.toc.html#sharingmanager) - for managing [Item](/python/api-reference/arcgis.gis.toc.html#item) sharing\n", + " * [SharingGroupManager](/python/api-reference/arcgis.gis.toc.html#sharinggroupmanager) - for managing [Item](/python/api-reference/arcgis.gis.toc.html#item) sharing to [Groups](/python/api-reference/arcgis.gis.toc.html#group)\n", + "* New implementation for Folder management:\n", + " * [Folders](/python/api-reference/arcgis.gis.toc.html#folders)\n", + " * [Folder](/python/api-reference/arcgis.gis.toc.html#folder)\n", + " * [`add()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis._impl._content_manager.Folder.add)\n", + " * uses streaming for performance improvements when adding items\n", + "* Adds management capability for Partnered Collaborations\n", + "* [`arcgis.apps.survey23`](/python/api-reference/arcgis.apps.survey123.html)\n", + " * Adds support to:\n", + " * publish *Survey123* survey items based on [**ArcGIS Survey123 Ideas 968118**](https://community.esri.com/t5/arcgis-survey123-ideas/publish-surveys-using-python/idi-p/968118)\n", + " * add, update, and delete webhooks based on [**ArcGIS Survey123 Question 1234777**](https://community.esri.com/t5/arcgis-survey123-questions/s123-how-to-manage-s123-webhook-through-api-for/m-p/1234777#M46219)\n", + "* Adds support for [3D Tile Layers](https://pro.arcgis.com/en/pro-app/latest/help/mapping/layer-properties/work-with-3d-tiles-layers.htm)\n", + "\n", + "\n", + "### [Guides](../)\n", + "* [Deep Learning](../)\n", + " * [2D Computer Vision](../)\n", + " * [Other Imagery Topics](../)\n", + " * [How SR3 super-resolution works](../guide/how-sr3-works/)\n", + " * [3D Computer Vision](../)\n", + " * [Point cloud classfication using RandLA-Net](../guide//point-cloud-classification-using-randlanet/)\n", + " * [Point cloud classfication using SQN](../guide//point-cloud-classification-using-sqn/)\n", + "* [Content Management](../)\n", + " * [Cloning and Troubleshooting Complex Items](../guide/cloning-complex-apps)\n", + "\n", + " \n", + "### [Samples](/python/samples/)\n", + "* [Deep Learning](/python/samples)\n", + " * [2D Computer Vision](/python/samples)\n", + " * [Pixel Classification](/python/samples)\n", + " * [Mangrove forest monitoring using deep learning](/python/samples/mangrove-forest-monitoring-using-deep-learning)\n", + " * [Using Pre-trained Models](/python/samples)\n", + " * [Cloud removal using pretrained deep learning model and raster function](/python/samples/cloud-removal-using-pretrained-deep-learning-model-and-raster-function/)\n", + " * [Time Series Forecasting](/python/samples)\n", + " * [Forecasting power consumption in Tetouan City using Deep Learning Time Series techniques](/python/samples/forecasting-daily-power-consumption-using-deep-learning-timeseries/)\n", + "\n", + "### Module Changes\n", + "\n", + "#### [`arcgis.gis`](/python/api-reference/arcgis.gis.toc.html)\n", + "* Adds support for [*Data Pipeline*](https://doc.arcgis.com/en/data-pipelines/latest/get-started/about-data-pipelines.htm) items\n", + "* Adds classes:\n", + " * [`SharingManager`](/python/api-reference/arcgis.gis.toc.html#sharingmanager)\n", + " * [`SharingGroupManager`](/python/api-reference/arcgis.gis.toc.html#sharinggroupmanager)\n", + " * [`Folders`](/python/api-reference/arcgis.gis.toc.html#folders)\n", + " * [`Folder`](/python/api-reference/arcgis.gis.toc.html#folder)\n", + "* [`GIS`](/python/api-reference/arcgis.gis.toc.html#gis)\n", + " * ENH-000160434 - Adds support for string datatype to the *verify_cert* parameter to accomodate certificate updates\n", + "* [`User`](/python/api-reference/arcgis.gis.toc.html#user)\n", + " * [`report()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.User.report)\n", + " * Adds parameter:\n", + " * *time_aggregate*\n", + " * Adds code snippet\n", + " * Adds parameter options for *report_type*\n", + " * `serviceUsages`\n", + " * `itemUsages`\n", + "* [`UserManager`](/python/api-reference/arcgis.gis.toc.html#usermanager)\n", + " * [`send_notification()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.UserManager.send_notification)\n", + " * Adds deprecation message when using method on ArcGIS Enteprise in response to [**Public Repo Issue #1642**](https://github.com/Esri/arcgis-python-api/issues/1642)\n", + " * [`user_groups()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.User.user_groups)\n", + " * Adds support for returning more than 20 values\n", + "* [`ContentManager`](/python/api-reference/arcgis.gis.toc.html#contentmanager)\n", + " * New properties:\n", + " * [`folders`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.folders)\n", + " * [`clone_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.clone_items)\n", + " * Adds support for *Data Pipeline* items\n", + " * Adds error messaging when cloning items that do not support the *item_mapping* argument\n", + " * [`search()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.search)\n", + " * Adds parameter to address [**Public Repo Issue #1413**](https://github.com/Esri/arcgis-python-api/issues/1413):\n", + " * *filter*\n", + " * [`advanced_search()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.advanced_search)\n", + " * Adds parameter to address [**Public Repo Issue #1413**](https://github.com/Esri/arcgis-python-api/issues/1413):\n", + " * *filter*\n", + "* [`Item`](/python/api-reference/arcgis.gis.toc.html#item)\n", + " * Adds deprecation warnings for removal in future release of:\n", + " * [`share()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.share)\n", + " * [`shared_with`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.shared_with)\n", + " * Adds properties:\n", + " * [`sharing`]()\n", + " * Adds methods:\n", + " * [`can_reassign()`](/python//api-reference/arcgis.gis.toc.html#arcgis.gis.Item.can_reassign)\n", + " * [`related_items(()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.related_items)\n", + " * Adds paging support\n", + " * [`delete()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.delete)\n", + " * Adds support for *permanent* argument to permanently delete items from organizations opted into Recycle Bin functionality\n", + " * [`update()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.update)\n", + " * Adds error messaging when run on file type items if the *item_properties* is missing a fileName value\n", + " * [`publish()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.publish)\n", + " * Adds *future* parameter to allow for running asynchronously\n", + "* [`Group`](/python/api-reference/arcgis.gis.toc.html#group)\n", + " * [`remove_users()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Group.remove_users)\n", + " * Updates documentation for *usernames* parameter\n", + " * [`notify()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Group.notify)\n", + " * Adds message indicating method is not supported with ArcGIS Enterprise\n", + "* [`CategorySchemaManager`](/python/api-reference/arcgis.gis.toc.html#categoryschemamanager)\n", + " * Adds property\n", + " * [`schema_paths`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.CategorySchemaManager.schema_paths)\n", + "* [`GroupManager`](/python/api-reference/arcgis.gis.toc.html#groupmanager)\n", + " * [`create()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.GroupManager.create)\n", + " * Adds deprecation note for use of *autojoin* parameter in favor of *auto_join*\n", + "\n", + "#### [`arcgis.gis Enumerations`](/python/api-reference/arcgis.gis.toc.html#enumerations)\n", + "* [`ItemTypeEnum`](/python/api-reference/arcgis.gis.toc.html#itemtypeenum)\n", + " * Adds support for new item types:\n", + " * *TILES_PACKAGE_3D*\n", + " * *TILES_SERVICE_3D*\n", + "\n", + "#### [`arcgis.gis.admin`](/python/api-reference/arcgis.gis.admin.html#)\n", + "* Adds class:\n", + " * Response to BUG-000154442:\n", + " * [`PartneredCollabManager`](/python/api-reference/arcgis.gis.admin.html#partneredcollabmanager)\n", + " * [`PartneredCollaboration`](/python/api-reference/arcgis.gis.admin.html#partneredcollaboration)\n", + "* Updates `scheduled_tasks()` methods on all admin classes to return list of [*Task*](/python/api-reference/arcgis.gis.tasks.html#task) objects:\n", + " * *AGOlAdminManager*\n", + " * *PortalAdminManager*\n", + " * *KubernetesAdmin*\n", + "* [`AGOLUsageReports`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.AGOLUsageReports)\n", + " * Adds caching to various methods for performance improvement\n", + "* [`PortalAdminManager`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.PortalAdminManager)\n", + " * Adds method:\n", + " * [`content()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.PortalAdminManager.content)\n", + "* [`AGOLAdminManager`](/python/api-reference/arcgis.gis.admin.html#agoladminmanager)\n", + " * Adds method:\n", + " * [`content()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.AGOLAdminManager.content)\n", + " * Adds property:\n", + " * [`partnered_collaboration`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.AGOLAdminManager.partnered_collaboration)\n", + "* [`MapSettings`](/python/api-reference/arcgis.gis.admin.html#mapsettings)\n", + " * Adds properties:\n", + " * [`use_3d_basemaps`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.MapSettings.use_3D_basemaps)\n", + " * [`update_basemap_gallery()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.MapSettings.update_basemap_gallery)\n", + " * Adds check to both remove deprecated basemaps and update any new basemaps added to group shared with basemap group\n", + "* [`System`](/python/api-reference/arcgis.gis.admin.html#system)\n", + " * Adds support for *limits* functionality:\n", + " * getting - [`limits`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.System.limits)\n", + " * setting - [`set_limits()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.System.set_limits)\n", + "* [`SystemManager`](/python/api-reference/arcgis.gis.admin.html#systemmanager) - *Kubernetes*\n", + " * Updates [`properties`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.kubernetes.SystemManager.properties) setter to allow for additional publishers and control of process timeouts\n", + "* [`CreditManager`](/python/api-reference/arcgis.gis.admin.html#creditmanager)\n", + " * Adds code snippets for:\n", + " * object initialization: [`CreditManager`](/python/api-reference/arcgis.gis.admin.html#creditmanager)\n", + " * [`allocate()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.CreditManager.allocate)\n", + " * [`credit_usage()`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.CreditManager.credit_usage)\n", + "\n", + "#### [`arcgis.gis.server`](/python/api-reference/arcgis.gis.server.html)\n", + "* [`Service`](/python/api-reference/arcgis.gis.server.html#service)\n", + " * [`edit()`](/python/api-reference/arcgis.gis.server.html#arcgis.gis.server.Service.edit)\n", + " * Adds parameter:\n", + " * *future* - to allow aychnronous processing\n", + "\n", + "#### [`arcgis.gis.workflowmanager`](/python/api-reference/arcgis.gis.workflowmanager.html)\n", + "* [`Job_Manager`](/python/api-reference/arcgis.gis.workflowmanager.html#jobmanager)\n", + " * Adds method:\n", + " * [`statistics()`](/python/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.JobManager.statistics)\n", + " * [`update()`](/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.JobManager.update)\n", + " * Adds parameter:\n", + " * *allow_running_step_id*\n", + "* [`Job`](/python/api-reference/arcgis.gis.workflowmanager.html#job)\n", + " * Adds method:\n", + " * [`add_hold()`](/python/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.Job.add_hold)\n", + " * [`update_step()`](/python/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.Job.update_step)\n", + " * Adds code snippet\n", + "\n", + "#### [`arcgis.gis.tasks`](/python/api-reference/arcgis.gis.tasks.html)\n", + "* [`TaskManager`](/python/api-reference/arcgis.gis.tasks.html#taskmanager)\n", + " * [`create()`](/python/api-reference/arcgis.gis.tasks.html#arcgis.gis.tasks.TaskManager.create)\n", + " * Adds parameter documentation:\n", + " * *task_url*\n", + " * Updates parameter documentation for:\n", + " * *cron*\n", + " * *parameters*\n", + " * [`search()`](/python/api-reference/arcgis.gis.tasks.html#arcgis.gis.tasks.TaskManager.search)\n", + " * Adds options for *types* parameter\n", + "\n", + "#### [`arcgis.features`](/python/api-reference/arcgis.features.toc.html)\n", + "* Adds class:\n", + " * [`OrientedImageryLayer`](/python/api-reference/arcgis.features.toc.html#oriented-imagery-layer)\n", + "* refactor of *query()* methods with internal processing performance improvements\n", + "* [`FeatureLayer`](/python/api-reference/arcgis.features.toc.html#featurelayer)\n", + " * Adds method:\n", + " * [`query_3d()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayer.query_3d)\n", + " * [`edit_features()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayer.edit_features)\n", + " * Runs internal operations asynchronously when applicable for performance improvements\n", + " * [`append()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayer.append)\n", + " * Updates documentation in *upload_format* to indicate how to determine supported formats\n", + "* *Spatially Enabled DataFrame* - [`GeoAccessor`](/python/api-reference/arcgis.features.toc.html#geoaccessor)\n", + " * Adds support to *time only* objects to align with ArcPy and ArcGIS Enterprise\n", + "* [`FeatureLayerCollection`](/python/api-reference/arcgis.features.toc.html#featurelayercollection)\n", + " * Adds code snippets and explanations for initializing objects\n", + " * [`extract_changes()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayerCollection.extract_changes)\n", + " * Adds code snippet and description text for *servergen* parameter\n", + " * Adds code snippet for *layer_servergen* parameter\n", + "\n", + "#### [`arcgis.features.managers`](/python/api-reference/arcgis.features.managers.html#)\n", + "* Adds reference documentation:\n", + " * [`TraceConfigurationsManager`](/python/api-reference/arcgis.features.managers.html#traceconfigurationsmanager)\n", + "* [`FeatureLayerCollectionManager`](/python/api-reference/arcgis.features.managers.html#featurelayercollectionmanager)\n", + " * Adds method:\n", + " * [`swap_view()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.FeatureLayerCollectionManager.swap_view)\n", + " * [`create_view()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.FeatureLayerCollectionManager.create_view)\n", + " * Adds parameters:\n", + " * `visibile_fields`\n", + " * `query`\n", + "* [`SyncManager`](/python/api-reference/arcgis.features.managers.html#syncmanager)\n", + " * [`synchronize()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.SyncManager.synchronize)\n", + " * Adds reference documentation\n", + "* [`UtilityNetworkManager`](/python/api-reference/arcgis.features.managers.html#utilitynetworkmanager)\n", + " * Updates reference documentation for numerous method and property descriptions\n", + " * Adds note on *user_type* requirements\n", + "* [`TopographicProductionManager`](/python/api-reference/arcgis.features.managers.html#topographicproductionmanager)\n", + " * [`generate_product()`](/python/api-reference/arcgis.features.managers.html#arcgis.features._topographic.TopographicProductionManager.generate_product)\n", + " * Adds *parameter*\n", + " * *output_settings*\n", + " * Updates parameter documentation with code snippets\n", + " * *version*\n", + "* [`TraceConfiguration`](/python/api-reference/arcgis.features.managers.html#traceconfiguration)\n", + " * Adds property to initializer:\n", + " * *use_digitized_direction*\n", + " * *synthesize_geometry*\n", + "* [`ParcelFabricManager`](/python/api-reference/arcgis.features.managers.html#parcelfabricmanager)\n", + " * [`divide()`](/python/api-reference/arcgis.features.managers.html#arcgis.features._parcel.ParcelFabricManager.divide)\n", + " * Adds parameter:\n", + " * *divide_associated_lines*\n", + "\n", + "#### [`arcgis.features.analysis`](/python/api-reference/arcgis.features.analysis.html)\n", + "* Adds function documentation:\n", + " * [`generate_tesselation()`](/python/api-reference/arcgis.features.analysis.html#generate-tessellation)\n", + " \n", + "#### [`arcgis.features.analyze_patterns`](/python/api-reference/arcgis.features.analyze_patterns.html)\n", + "* Adds function:\n", + " * [`calculate_composite_index()`](/python/api-reference/arcgis.features.analyze_patterns.html#calculate-composite-index)\n", + "* [`find_point_clusters()`](/python/api-reference/arcgis.features.analyze_patterns.html#find-point-clusters)\n", + " * Adds parameter:\n", + " * *method*\n", + " * *sensitivity*\n", + " * *time_field*\n", + " * *search_time_interval*\n", + " * *search_time_unit*\n", + " * Updates documentation to clarify implementation details\n", + "* [`find_outliers()`](/python/api-reference/arcgis.features.analyze_patterns.html#find-outliers)\n", + " * Adds *randomGenerator* seeding option for the *context* argument\n", + "\n", + "#### [`arcgis.features.find_locations`](/python/api-reference/arcgis.features.find_locations.html)\n", + "* [`find_similiar_locations()`](/python/api-reference/arcgis.features.find_locations.html#find-similar-locations)\n", + " * Adds parameters:\n", + " * *criteria_fields*\n", + "\n", + "#### [`arcgis.features.summarize_data`](/python/api-reference/arcgis.features.summarize_data.html)\n", + "* [`join_features()`](/python/api-reference/arcgis.features.summarize_data.html#join-features)\n", + " * Adds support to return count only by using *COUNT* for *statisticType* and *None* for *onStatisticField*\n", + "\n", + "#### [`arcgis.features.manage_data`](/python/api-reference/arcgis.features.manage_data.html)\n", + "* [`extract_data()`](/python/api-reference/arcgis.features.manage_data.html#extract-data)\n", + " * Adds parameter:\n", + " * *context*\n", + "* [`derive_new_locations()`](/python/api-reference/arcgis.features.find_locations.html#derive-new-locations)\n", + " * Adds parameter table documentation\n", + "\n", + "#### [`arcgis.raster`](/python/api-reference/arcgis.raster.toc.html#)\n", + "* Adds `estimate` parameter to appropriate methods to approximate credit cost of operations in ArcGIS Online\n", + "* [`ImageryLayer`](/python/api-reference/arcgis.raster.toc.html#imagerylayer)\n", + " * Adds support for *Tiled Imagery Layer* items\n", + " * Adds method:\n", + " * [`find_images()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.find_images)\n", + " * [`image_to_map()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.image_to_map)\n", + " * [`map_to_image()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.map_to_image)\n", + " * [`get_image_url()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.get_image_url)\n", + " * [`image_to_map_multiray()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.image_to_map_multiray)\n", + " * [`measure_from_image()`](/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.measure_from_image)\n", + "* [`RasterCollection`](/python/api-reference/arcgis.raster.toc.html#rastercollection)\n", + " * Adds support for more STAC datasets:\n", + " * Adds *context* parameter to:\n", + " * [`from_stac_api()`](/python/api-reference/arcgis.raster.toc.html#arcgis.raster.RasterCollection.from_stac_api)\n", + " * See also *stac_api* parameter description\n", + " * [`from_stac_catalog()`](/python/api-reference/arcgis.raster.toc.html#arcgis.raster.RasterCollection.from_stac_catalog)\n", + " * See also *stac_catalog* parameter description\n", + "* [`Raster`](/python/api-reference/arcgis.raster.toc.html#raster)\n", + " * Adds support for more STAC datasets:\n", + " * Adds *context* parameter:\n", + " * [`from_stac_item()`](/python/api-reference/arcgis.raster.toc.html#arcgis.raster.Raster.from_stac_item)\n", + " * See also *stac_item* parameter description\n", + "\n", + "#### [`arcgis.raster.analytics`](/python/api-reference/arcgis.raster.analytics.html#)\n", + "* Adds `estimate` parameter to all functions to approximate credit cost of operations in ArcGIS Online\n", + "* New functions:\n", + " * [`locate_regions()`](/python/api-reference/arcgis.raster.analytics.html#locate-regions)\n", + " * [`transfer_files()`](/python/api-reference/arcgis.raster.analytics.html#transfer-files)\n", + " * [`tabulate_area()`](/python/api-reference/arcgis.raster.analytics.html#tabulate_area)\n", + " * [`zonal_geometry_as_table()`](/python/api-reference/arcgis.raster.analytics.html#zonal_geometry_as_table)\n", + "* [`create_viewshed()`](/python/api-reference/arcgis.raster.analytics.html#create-viewshed)\n", + " * Adds new parameters:\n", + " * *vertical_error*\n", + " * *refractivity_coefficient*\n", + " * *horizontal_start_angle*\n", + " * *horizontal_end_angle*\n", + " * *vertical_upper_angle*\n", + " * *vertical_lower_angle*\n", + "* [`summarize_raster_within()`](/python/api-reference/arcgis.raster.analytics.html#summarize-raster-within)\n", + " * Adds options for *statistic_type* argument:\n", + " * *MAJORITY_COUNT*\n", + " * *MAJORITY_PERCENT*\n", + " * *MINORITY_COUNT*\n", + " * *MINORITY_PERCENT*\n", + "* [`zonal_statistics_as_table()`](/python/api-reference/arcgis.raster.analytics.html#zonal-statistic-as-table)\n", + " * Adds options for *statistic_type* argument\n", + " * *MAJORITY_COUNT*\n", + " * *MAJORITY_PERCENT*\n", + " * *MINORITY_COUNT*\n", + " * *MINORITY_PERCENT*\n", + " * *MAJORITY_VALUE_COUNT_PERCENT*\n", + " * *MINORITY_VALUE_COUNT_PERCENT*\n", + " \n", + "#### [`arcgis.raster.functions`](/python/api-reference/arcgis.raster.functions.html)\n", + "* Adds function:\n", + " * [`create_color_composite()`](/python/api-reference/arcgis.raster.functions.html#create-color-composite)\n", + "* [`remap()`](/python/api-reference/arcgis.raster.functions.html#remap)\n", + " * Adds parameter:\n", + " * *replacement_value*\n", + "\n", + "#### [`arcgis.raster.functions.gbl`](/python/api-reference/arcgis.raster.functions.gbl.html)\n", + "* [`zonal_statistics()`](/python/api-reference/arcgis.raster.functions.gbl.html#zonal-statistics)\n", + " * Adds options for *statistic_type* argument\n", + " * *MAJORITY_COUNT*\n", + " * *MAJORITY_PERCENT*\n", + " * *MINORITY_COUNT*\n", + " * *MINORITY_PERCENT*\n", + "\n", + "#### [`arcgis.raster.orthomapping`](/python/api-reference/arcgis.raster.orthomapping.html)\n", + "* Adds error messaging when attempting to create an item from one which is not an Orthomapping Project\n", + "* Adds support for managing *projects* and *missions*\n", + " * [`Mission`](/python/api-reference/arcgis.raster.orthomapping.html#mission)\n", + " * Adds method:\n", + " * [`delete_product()`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster._mission.Mission.delete_product)\n", + " * [`reset()`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster._mission.Mission.reset)\n", + " * [`delete()`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster._mission.Mission.delete)\n", + " * [`Project`](/python/api-reference/arcgis.raster.orthomapping.html#project)\n", + " * Adds method:\n", + " * [`delete()`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster.orthomapping.Project.delete)\n", + "\n", + "#### [`arcgis.network`](/python/api-reference/arcgis.network.toc.html)\n", + "* Adds class:\n", + " * [`NetworkDatasetLayer`](/python/api-reference/arcgis.network.toc.html#networkdatasetlayer)\n", + " * [`LocateSettings`](/python/api-reference/arcgis.network.toc.html#locatesettings)\n", + "* Adds enumeration:\n", + " * [`ToleranceUnits`](/python/api-reference/arcgis.network.toc.html#toleranceunits)\n", + " * [`SolverType`](/python/api-reference/arcgis.network.toc.html#solvertype)\n", + "* Adds function:\n", + " * [`publish_routing_services()`](/python/api-reference/arcgis.network.toc.html#publish-routing-services)\n", + "* Adds parameter documentation to `solve()` methods:\n", + " * `locate_settings`\n", + " * `return_empty_results`\n", + "* [`ServiceAreaLayer`](/python/api-reference/arcgis.network.toc.html#servicearealayer)\n", + " * [`solve_service_area()`](/python/api-reference/arcgis.network.toc.html#arcgis.network.ServiceAreaLayer.solve_service_area)\n", + " * Adds parameter documentation:\n", + " * *include_source_information_on_lines*\n", + "\n", + "#### [`arcgis.network.analysis`](api-reference/arcgis.network.analysis.html)\n", + "* Adds function:\n", + " * [`get_tool_info()`](/python/api-reference/arcgis.network.analysis.html#get-tool-info)\n", + "* Adds parameter documentation for these parameters to all tools:\n", + " * *ignore_network_location_fields*\n", + " * *locate_settings*\n", + "* Adds parameter documentation for these parameters to all tools except `edit_vehicle_routing_problem` and `solve_vehicle_routing_problem`\n", + " * *accumulate attributes*\n", + " * *ignore_invalid_locations*\n", + "* Adds parameter documentation to `generate_service_areas()`\n", + " * *exclude_sources_from_polygon_generation*\n", + "\n", + "#### [`arcgis.notebook`](https://next.sites.afd.arcgis.com/python/api-reference/arcgis.notebook.html)\n", + " * [`execute_notebook()`](/python/api-reference/arcgis.notebook.html#execute-notebook)\n", + " * adds ability to cancel asynchronous job\n", + "\n", + "#### [`arcgis.geometry.functions`](/python/api-reference/arcgis.geometry.functions.html)\n", + "* Reorganized API Reference table of contents\n", + " * Adds *Enumerations* and *Functions* subheadings\n", + "* Adds class:\n", + " * [`GeometryJob`](/python/api-reference/arcgis.geometry.functions.html#geometryjob)\n", + "\n", + "#### [`arcgis.graph`](/python/api-reference/arcgis.graph.html)\n", + "* [`KnowledgeGraph`](/python/api-reference/arcgis.graph.html#knowledgegraph)\n", + "* Adds methods:\n", + " * [`sync_data_model()`](/python/api-reference/arcgis.graph.html#arcgis.graph.KnowledgeGraph.sync_data_model)\n", + " * [`graph_property_index_adds()`](/python/api-reference/arcgis.graph.html#arcgis.graph.KnowledgeGraph.graph_property_index_adds)\n", + " * [`graph_property_index_deletes()`](/python/api-reference/arcgis.graph.html#arcgis.graph.KnowledgeGraph.graph_property_index_deletes)\n", + " * [`constraint_rule_adds()`](/python/api-reference/arcgis.graph.html#arcgis.graph.KnowledgeGraph.constraint_rule_adds)\n", + " * [`constraint_rule_deletes()`](/python/api-reference/arcgis.graph.html#arcgis.graph.KnowledgeGraph.constraint_rule_deletes)\n", + "\n", + "#### [`arcgis.mapping`](/python/api-reference/arcgis.mapping.toc.html)\n", + "* refactor of *query()* methods with internal processing performance improvements\n", + "* [Working with 2D Maps](/python/api-reference/arcgis.mapping.toc.html#working-with-2d-maps)\n", + " * [`OfflineMapAreaManager`](/python/api-reference/arcgis.mapping.toc.html#offlinemapareamanager)\n", + " * Updates reference documentation with important notes and links regarding Web Map configuration\n", + " * Extends code snippets\n", + "* [Working with 3D Maps](/python/api-reference/arcgis.mapping.toc.html#working-with-3d-maps)\n", + " * Adds class:\n", + " * [`Tiles3DLayer`](/python/api-reference/arcgis.mapping.toc.html#tiles3dlayer)\n", + " \n", + "#### [`arcgis.apps`](/python/api-reference/arcgis.apps.html)\n", + "* [`storymap`](/python/api-reference/arcgis.apps.storymap.html)\n", + " * Adds classes:\n", + " * [`Briefing`](/python/api-reference/arcgis.apps.storymap.html#briefing)\n", + " * [`Code`](/python/api-reference/arcgis.apps.storymap.html#code)\n", + " * [`Table`](/python/api-reference/arcgis.apps.storymap.html#table)\n", + " * [`ExpressMap`](/python/api-reference/arcgis.apps.storymap.html#expressmap)\n", + " * [`Block`](/python/api-reference/arcgis.apps.storymap.html#block)\n", + " * [`Collection`](/python/api-reference/arcgis.apps.storymap.html#collection)\n", + " * Adds enumerations:\n", + " * [`Language`](/python/api-reference/arcgis.apps.storymap.html#language)\n", + " * [`TextStyles`](/python/api-reference/arcgis.apps.storymap.html#textstyles)\n", + " * [`SlideLayout`](/python/api-reference/arcgis.apps.storymap.html#slidelayout)\n", + " * [`SlideSubLayout`](/python/api-reference/arcgis.apps.storymap.html#slidesublayout)\n", + " * [`Storymap`](/python/api-reference/arcgis.apps.storymap.html#storymap)\n", + " * Adds deprecation note for following members in favor of *content_list* property:\n", + " * [`get()`](/python/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story.StoryMap.get)\n", + " * [`nodes`](/python/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story.StoryMap.nodes)\n", + " * [`duplicate()`](/python/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story.StoryMap.duplicate)\n", + " * Updates internal processing so identical workflows used for ArcGIS Online and ArcGIS Enterprise\n", + " * [`Text`](/python/api-reference/arcgis.apps.storymap.html#text)\n", + " * Adds methods:\n", + " * [`add_attachment()`](/python/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story_content.Text.add_attachment)\n", + " * [`remove_attachment()`](/python/api-reference/arcgis.apps.storymap.html#arcgis.apps.storymap.story_content.Text.remove_attachment)\n", + "* [`survey123`](/python/api-reference/arcgis.apps.survey123.html) \n", + " * [`Survey`](/python/api-reference/arcgis.apps.survey123.html#survey)\n", + " * Adds method:\n", + " * [`publish()`](/python/api-reference/arcgis.apps.survey123.html#arcgis.apps.survey123.Survey.publish)\n", + " * [`add_webhook()`](/python/api-reference/arcgis.apps.survey123.html#arcgis.apps.survey123.Survey.add_webhook)\n", + " * [`delete_webhook()`](/python/api-reference/arcgis.apps.survey123.html#arcgis.apps.survey123.Survey.delete_webhook)\n", + " * [`update_webhook()`](/python/api-reference/arcgis.apps.survey123.html#arcgis.apps.survey123.Survey.update_webhook)\n", + " * [`generate_report()`](/python/api-reference/arcgis.apps.survey123.html#arcgis.apps.survey123.Survey.generate_report)\n", + " * Adds links to detailed documentation\n", + "* [`expbuilder`](/python/api-reference/arcgis.apps.expbuilder.html)\n", + " * Performance improvements upon imports:\n", + " * Enhances templates to use separate files for storage\n", + " * Adds *lazy loading* to all imports in module\n", + " * Adds warning to indicate if template is newer than the ArcGIS Enteprise \n", + " * [`WebExperience`](/python/api-reference/arcgis.apps.expbuilder.html#webexperience)\n", + " * [`clone()`](/api-reference/arcgis.apps.expbuilder.html#arcgis.apps.expbuilder.expbuilder.WebExperience.clone)\n", + " * Adds deprecation message as items are now supported with *ContentManager.clone_items()*\n", + " \n", + "#### [`arcgis.learn`](/python/api-reference/arcgis.learn.toc.html)\n", + "* Adds error checking when *predict()* method run on unsupported multrispectral data\n", + "* Adds error messaging when *sensitive_feature* argument is not of correct type when using `fairness_score()` method\n", + "* [Data Preparation Methods](/python/api-reference/arcgis.learn.toc.html#data-preparation-methods)\n", + " * [`prepare_data()`](/python/api-reference/arcgis.learn.toc.html#prepare-data)\n", + " * Updates *channels_of_interest* documentation description for PSETAE model\n", + " * Adds support for the *num_workers* argument for:\n", + " * [`ChangeDetector`](/python/api-reference/arcgis.learn.toc.html#changedetector)\n", + " * [`Pix2Pix`](/python/api-reference/arcgis.learn.toc.html#pix2pix)\n", + " * [`Pix2PixHD`](/python/api-reference/arcgis.learn.toc.html#pix2pixhd)\n", + " * [`SiamMask`](/python/api-reference/arcgis.learn.toc.html#siammask)\n", + "* [Automated Machine Learning](/python/api-reference/arcgis.learn.toc.html#automated-machine-learning)\n", + " * [`AutoML`](/python/api-reference/arcgis.learn.toc.html#automl)\n", + " * [`predict()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.AutoML.predict)\n", + " * Adds support for remote deep learning package items\n", + " * [`DETReg`](/python/api-reference/arcgis.learn.toc.html#detreg)\n", + " * Updates documentation to indicate support for *resnet50* backbone only\n", + " * [`EfficientDET`](/python/api-reference/arcgis.learn.toc.html#efficientdet)\n", + " * Adds default information to *backbone* parameter documentation\n", + "* [Pixel Classification Models](/python/api-reference/arcgis.learn.toc.html#pixel-classification-models)\n", + " * New models:\n", + " * [`SamLoRA`](/python/api-reference/arcgis.learn.toc.html#samlora)\n", + " * Integrates *prithivi* fine-tuning models\n", + " * *prithivi100m_burn_scar*\n", + " * *prithivi100_crop_classification*\n", + " * *prithivi100m_sen1floods*\n", + " * *prithivi100m*\n", + " * Updates *mIOU* calculation to use entire dataset rather than per image\n", + " * [`MMSegmentation`](/python/api-reference/arcgis.learn.toc.html#mmsegmentation)\n", + " * Adds transformer based model support for:\n", + " * *mask2former*\n", + "* [Image Translation Models](/python/api-reference/arcgis.learn.toc.html#image-translation-models)\n", + " * [`SuperResolution`](/python/api-reference/arcgis.learn.toc.html#superresolution)\n", + " * Integrates support for *SR3_UiVT* backbone with optional initialization parameters\n", + " * *patch_size*\n", + " * *embed_dim*\n", + " * *depth*\n", + " * *num_heads*\n", + " * *mlp_ratio*\n", + " * *qkv_bias*\n", + "* [3d Models](/python/api-reference/arcgis.learn.toc/?highlight=pointcloud#d-models)\n", + " * Adds `focal_loss` option when initializing:\n", + " * *PointCNN*\n", + " * *SQNSeg*\n", + " * *RandLANet*\n", + "* [Feature, Tabular, anad Timeseries models](/python/api-reference/arcgis.learn.toc.html#feature-tabular-and-timeseries-models)\n", + " * [`TimeSeriesModel`](/python/api-reference/arcgis.learn.toc.html#timeseriesmodel)\n", + " * [`show_results()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.TimeSeriesModel.show_results)\n", + " * Adds documentation about experimental support for multivariate time series\n", + "* [Unstructured Text Models](/python/api-reference/arcgis.learn.toc.html#unstructured-text-models)\n", + " * [arcgis.learn.text module](/python/api-reference/arcgis.learn.toc.html#arcgis-learn-text-module)\n", + " * Adds *LLM* backbone support to text analysis models:\n", + " * *EntityRecognizer*\n", + " * *SequenceToSequence*\n", + " * *TextClassifier*\n", + " * Adds support for *Mistral* to:\n", + " * *TextClassifier*\n", + " * *EntityRecognizer*\n", + " * [`EntityRecognizer`](/python/api-reference/arcgis.learn.text.html#entityrecognizer)\n", + " * Adds support for *CSV* files" + ] + }, + { + "cell_type": "markdown", + "id": "77145505", + "metadata": {}, + "source": [ + "## Fixes\n", + "\n", + "### [Guides](../)\n", + "* [Install and set up](../)\n", + " * [Docker](../guide/docker)\n", + " * Updates to instructions\n", + " * [Google Colaboratory](../guide/install-google-colab)\n", + " * Updates to instructions\n", + "* [Deep Learning](../)\n", + " * [2D Computer Vision](../)\n", + " * [Object Detection](../)\n", + " * [YOLOv3 Object Detector](../guide/yolov3-object-detector)\n", + " * updates information regarding COCO pretrained weights\n", + " * [3D Computer Vision](../)\n", + " * [Point Cloud Segmentation using PointCNN](../guide/point-cloud-segmentation-using-pointcnn/)\n", + " * general content updates\n", + " \n", + "### [Samples](/python/samples/)\n", + "* [Deep Learning](/python/samples)\n", + " * [3D Computer Vision](/python/samples)\n", + " * Updates data for [Classification of SfM-derived point clouds using deep learning](/python/samples/classification-of-sfm-derived-point-clouds-using-deep-learning/)\n", + "\n", + "### Module Changes\n", + "\n", + "#### [`arcgis.gis`](/python/api-reference/arcgis.gis.toc.html)\n", + "* [`GIS`](/python/api-reference/arcgis.gis.toc.html#gis)\n", + " * Fixes BUG-000164527 where `A general error occurred` message is returned when invalid credentials entered for initialization\n", + "* [`Item`](/python/api-reference/arcgis.gis.toc.html#item)\n", + " * [`share()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.share)\n", + " * Fixes BUG-000158847 whereitem was not properly sharing to a *Shared update* group \n", + " * [`metadata`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.metadata)\n", + " * Fixes issues with writing to directories that caused IO errors during clone operations\n", + "* [`ContentManager`](/python/api-reference/arcgis.gis.toc.html#contentmanager)\n", + " * [`clone_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.ContentManager.clone_items)\n", + " * Fixes BUG-000162768 where `ItemCreateException` returned when Unicode characters in the name\n", + " * Fixes BUG-000163916 where cloning multiple *Survey123* items simultaneously failed with permissions error\n", + " * Fixes BUG-000161757 where web maps embedded in *Suvery123* form questions failed to clone\n", + " * Fixes issue where *StoryMap* items with *ExpressMap* componenets caused method to run in a loop\n", + "* [`Group`](/python/api-reference/arcgis.gis.toc.html#group)\n", + " * [`add_users()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.Group.add_users)\n", + " * Fixes BUG-000158059 where incorrect parameter name of *admin* appeared in code snippet\n", + "* [`User`](/python/api-reference/arcgis.gis.toc.html#user)\n", + " * [`report()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.User.report)\n", + " * Fixes `ValueError` when using *weekly* or *monthly* for *duration* argument\n", + "* [`UserManager`](/python/api-reference/arcgis.gis.toc.html#usermanager)\n", + " * [`org_search()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.UserManager.org_search)\n", + " * Fixes issue where *exclude=True* returned system account users\n", + "\n", + "#### [`arcgis.gis.admin`](/python/api-reference/arcgis.gis.admin.html)\n", + "* [`DataStoreMetricsManager`](/python/api-reference/arcgis.gis.admin.html#datastoremetricsmanager)\n", + " * [`feature_storage`](/python/api-reference/arcgis.gis.admin.html#arcgis.gis.admin.DataStoreMetricsManager.feature_storage)\n", + " * Fixes percentage values with M1-M4 storage types\n", + "\n", + "#### [`arcgis.gis.server`](/python/api-reference/arcgis.gis.server.html)\n", + "* [`LogManager`](/python/api-reference/arcgis.gis.server.html#logmanager)\n", + " * [`query()`](/python/api-reference/arcgis.gis.server.html#arcgis.gis.server.LogManager.query)\n", + " * Fixes [**Public Repo Issue #1722**](https://github.com/Esri/arcgis-python-api/issues/1722) where `KeyError 'hasMore'` returned on older releases of ArcGIS Enterprise\n", + "* [`ServerManager`](/python/api-reference/arcgis.gis.server.html#servermanager)\n", + " * [`get()`](/python/api-reference/arcgis.gis.server.html#arcgis.gis.server.ServerManager.get)\n", + " * Fixes error where error returned on certain *Server* roles\n", + "\n", + "#### [`arcgis.gis.nb`](/python/api-reference/arcgis.gis.nb.html) \n", + "* [`NotebookManager`](/python/api-reference/arcgis.gis.nb.html#notebookmanager)\n", + " * [`execute_notebook()`](/python/api-reference/arcgis.gis.nb.html#arcgis.gis.nb.NotebookManager.execute_notebook)\n", + " * Fixes issue where incorrect job id was returned from asynchronous execution\n", + "\n", + "#### [`arcgis.gis.tasks`](/python/api-reference/arcgis.gis.tasks.html)\n", + "* [`TaskManager`]()\n", + " * [`create()`]()\n", + " * Fixes `NameError` returned in notebooks created with *task_type=ExecuteNotebook*\n", + "\n", + "#### [`arcgis.gis.sharing`](/python/api-reference/arcgis.gis.sharing.html)\n", + "* [`MarketPlaceManager`](/python/api-reference/arcgis.gis.sharing.html#marketplacemanager)\n", + " * [`purchase()`](/python/api-reference/arcgis.gis.sharing.html#arcgis.gis.sharing.MarketPlaceManager.purchase)\n", + " * Fixes BUG-000164179 where method fails with `\"Exception: purchaser org id not specified (Error Code: 400)\"`\n", + " \n", + "#### [`arcgis.features`](/python/api-reference/arcgis.features.toc.html)\n", + "* [`FeatureLayer`](/python/api-reference/arcgis.features.toc.html#featurelayer) \n", + " * [`query()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayer.query)\n", + " * Fixes `AttributeError` with *GeoArray* when setting *as_df=True*\n", + " * Fixes issue where results returned as a dictionary instead of *FeatureSet*\n", + " * Fixes issue where *return_count_only=True* failing to return integer\n", + " * [`edit_features()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayer.edit_features)\n", + " * Fixes [**Public Repo Issue #1768**](https://github.com/Esri/arcgis-python-api/issues/1768) issue where Pandas *NaT* values in date fields are updated to 0 instead of None\n", + "* [`FeatureLayerCollection`](/python/api-reference/arcgis.features.toc.html#featurelayercollection)\n", + " * [`extract_changes()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.FeatureLayerCollection.extract_changes)\n", + " * Fixes BUG-000156249 documentation error with *serverGen* value types\n", + "* [`Spatially Enabled DataFrame`](/python/api-reference/arcgis.features.toc.html#geoaccessor) (_GeoAccessor_)\n", + " * [`plot()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoAccessor.plot)\n", + " * Fixes issue with mapping of layers containing following field types:\n", + " * *esriFieldTypeBigInteger*\n", + " * *esriFieldTypeDateOnly*\n", + " * *esriFieldTypeTimeOnly*\n", + " * *esriFieldTypeTimestampOffset*\n", + " * Fixes rendering to be based upon layer rendering information\n", + " * [`to_featureclass()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoAccessor.to_featureclass)\n", + " * Fixes errors when using versions prior to ArcGIS Enteprise 11.1 for *Int64* support\n", + " * [`to_featurelayer()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoAccessor.to_featurelayer)\n", + " * Fixes [**Public Repo Issue #1700**](https://github.com/Esri/arcgis-python-api/issues/1700) where *overwrite=True* created duplicate layers\n", + " * Fixes error in boolean handling for NA values\n", + " * [`to_featureset()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoAccessor.to_featureset)\n", + " * Fixes [**Public Repo Issue #1693**](https://github.com/Esri/arcgis-python-api/issues/1693) where multiple date fields resulted in all dates set to the last date value\n", + " * [`set_geometry()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoAccessor.set_geometry)\n", + " * Fixes [**Public Repo Issue #1754**](https://github.com/Esri/arcgis-python-api/issues/1754) where *sr* argument was not set properly\n", + " * Fixes issue with reprojecting occurring after multiple calls to method\n", + "* [`GeoSeriesAccessor`](/python/api-reference/arcgis.features.toc.html#geoseriesaccessor) (`geom` namespace on `SHAPE` column)\n", + " * [`equals()`](/python/api-reference/arcgis.features.toc.html#arcgis.features.GeoSeriesAccessor.equals)\n", + " * Fixes [**Public Repo Issue #1767**](https://github.com/Esri/arcgis-python-api/issues/1767) where method always returned *None*\n", + "* [`FeatureSet`](/python/api-reference/arcgis.features.toc.html#featureset)\n", + " * Fixes initialization of objects when only one feature is present\n", + " \n", + "#### [`arcgis.features.managers`](/python/api-reference/arcgis.features.managers.html) \n", + "* Fixes internal representation of GUID values on Oracle and PostgreSQL databases for:\n", + " * [`VersionManager`](/python/api-reference/arcgis.features.managers.html#versionmanager) \n", + " * [`UtilityNetworkManager`](/python/api-reference/arcgis.features.managers.html#utilitynetworkmanager)\n", + "* [`FeatureLayerCollectionManager`](/python/api-reference/arcgis.features.managers.html#featurelayercollectionmanager)\n", + " * [`overwrite()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.FeatureLayerCollectionManager.overwrite)\n", + " * Fixes BUG-000160121 by adding error message when attempting to use local files to overwrite from ArcGIS Online notebooks\n", + " * Fixes internal logic for checking file size limits\n", + " * [`create_view()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.FeatureLayerCollectionManager.create_view)\n", + " * Updates documentation to clarify *overwrite* parameter functionality\n", + " * Fixes BUG-000162549 where method returns an empty view from Feature Layer items published from Survey123\n", + " * Fixes incorrect output for tags leading to an array appearing instead of individual strings\n", + "* [`AttachmentManager`](/python/api-reference/arcgis.features.managers.html#attachmentmanager)\n", + " * [`add()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.AttachmentManager.add)\n", + " * Fixes issue with certain binary files being rejected \n", + "* [`WebHoookServiceManager`](/python/api-reference/arcgis.features.managers.html#webhookservicemanager)\n", + " * Fixes BUG-000164125 :\n", + " * [`create()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.WebHookServiceManager.create)\n", + " * Fixes `KeyError: 'globalId'` error\n", + " * [`list()`](/python/api-reference/arcgis.features.managers.html#arcgis.features.managers.WebHookServiceManager.list)\n", + " * Fixes `TypeError` on object created with *url* argument using */webhooks* endpoint\n", + "\n", + "#### [`arcgis.features.find_locations`](/python/api-reference/arcgis.features.find_locations.html)\n", + "* [`find_existing_locations()`](/python/api-reference/arcgis.features.find_locations.html#find-existing-locations)\n", + " * Fixes incorrect parameter type documentation for *expressions*\n", + "\n", + "#### [`arcgis.features.manage_data`](/python/api-reference/arcgis.features.manage_data.html)\n", + "* [`extract_data()`](/python/api-reference/arcgis.features.manage_data.html#extract-data)\n", + " * Fixes documentation issue with invalid output when using *output_name* argument extracting to CSV or File Geodatabase\n", + " * Fixes wrong parameter type documentation for:\n", + " * *input_layers*\n", + " * *extent*\n", + "\n", + "#### [`arcgis.features.summarize_data`](/python/api-reference/arcgis.features.summarize_data.html)\n", + "* Removes incorrect method from website Table of Contents\n", + " * *describe_dataset()*\n", + "* [`join_features()`](/python/api-reference/arcgis.features.summarize_data.html#join-features)\n", + " * Fixes formatting issues with parameter table:\n", + " * *spatial_relationship_distance*\n", + " * *spatial_relationship_distance_units*\n", + "\n", + "#### [`arcgis.raster`](/python/api-reference/arcgis.raster.toc.html)\n", + "* [`ImageryLayer`](/python/api-reference/arcgis.raster.toc.html#imagerylayer)\n", + " * Fixes `TypeError` and `lerc` error when rendering tilesonly services\n", + " * [`render_tilesonly_layer()`](/python/api-reference/arcgis.raster.toc.html#arcgis.raster.ImageryLayer.render_tilesonly_layer)\n", + " * Fixes issue with layer saved from function not displaying properly\n", + "\n", + "#### [`arcgis.raster.analytics`](/python/api-reference/arcgis.raster.analytics.html)\n", + "* [`train_classifier()`](/python/api-reference/arcgis.raster.analytics.html#train-classifier)\n", + " * Fixes failure on ArcGIS Online when using unsupported parameter when should still run\n", + "\n", + "#### [`arcgis.raster.functions`](/python/api-reference/arcgis.raster.functions.html)\n", + "* [`clip()`](/python/api-reference/arcgis.raster.functions.html#clip)\n", + " * Fixes issue where *clip_outside=False* was being ignored\n", + "\n", + "#### [`arcgis.raster.functions.gbl`](/python/api-reference/arcgis.raster.functions.gbl.html)\n", + "* Fixes iussue where *Distance* functions were using incorrect default sizes when writing to cloud stores\n", + "\n", + "#### [`arcgis.raster.orthomapping`](/python/api-reference/arcgis.raster.orthomapping.html)\n", + "* Fix to guarantee project names are unique\n", + "* Fixes to issues when input is an image collection rather than a mission for:\n", + " * [`generate_orthomosaic`](/python/api-reference/arcgis.raster.orthomapping.html#generate-orthomosaic)\n", + " * [`reset_image_collection`](/python/api-reference/arcgis.raster.orthomapping.html#reset-image-collection)\n", + "* [`Project`](/python/api-reference/arcgis.raster.orthomapping.html#project)\n", + " * [`add_mission()`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster.orthomapping.Project.add_mission)\n", + " * Fixes `RuntimeError` failing to add mission when method is not provided GPS info\n", + "* [`Mission`](/python/api-reference/arcgis.raster.orthomapping.html#mission)\n", + " * [`products`](/python/api-reference/arcgis.raster.orthomapping.html#arcgis.raster._mission.Mission.products)\n", + " * Fixes failure to return properties if any *Item* is None\n", + "* [`query_camera_info()`](/python/api-reference/arcgis.raster.orthomapping.html#query_camera_info)\n", + " * Fixes issue with dictionary input as the *camera_query* argument\n", + "\n", + "#### [`arcgis.geocoding`](/python/api-reference/arcgis.geocoding.html)\n", + "* [`PlacesAPI`](/python/api-reference/arcgis.geocoding.html#placesapi)\n", + " * Fixes issue where *categories* parameter value was ignored\n", + " * [`search_by_extent()`](/python/api-reference/arcgis.geocoding.html#arcgis.geocoding.PlacesAPI.search_by_extent)\n", + " * [`search_by_radius()`](/python/api-reference/arcgis.geocoding.html#arcgis.geocoding.PlacesAPI.search_by_radius)\n", + "\n", + "#### [`arcgis.geoenrichment`](/python/api-reference/arcgis.geoenrichment.html)\n", + "* [`enrich()`](/python/api-reference/arcgis.geoenrichment.html#enrich)\n", + " * Fixes error in general code execution with certain *standard_geography_query* input\n", + " \n", + "#### [`arcgis.geometry.functions`](/python/api-reference/arcgis.geometry.functions.html#functions)\n", + "* Fixes BUG-000154257 where some functions returned a `The opertion was attempted on an empty geometry 400 error` when proper formatting not used for *offset_units* argument\n", + "\n", + "#### [`arcgis.mapping`](/python/api-reference/arcgis.mapping.toc.html)\n", + "* [Working with 2D Maps](/python/api-reference/arcgis.mapping.toc.html#working-with-2d-maps)\n", + " * [`WebMap`](/python/api-reference/arcgis.mapping.toc.html#webmap)\n", + " * [`move_to_basemap()`]()\n", + " * Fixes [**Public Repo Issue #1739**](https://github.com/Esri/arcgis-python-api/issues/1739) unsupported layer type error when moving `VectorTileOnly` type basemaps\n", + " * [`basemap_title()`](/python/api-reference/arcgis.mapping.toc.html#arcgis.mapping.WebMap.basemap_title)\n", + " * Fixes [**Public Repo Issue #1763**](https://github.com/Esri/arcgis-python-api/issues/1763) where entering *None* for method sets title to null\n", + " * [`OfflineMapAreaManager`](/python/api-reference/arcgis.mapping.toc.html#offlinemapareamanager)\n", + " * [`offline_properties`](/python/api-reference/arcgis.mapping.toc.html#arcgis.mapping.OfflineMapAreaManager.offline_properties)\n", + " * Fixes `KeyError` when attempting to set properties\n", + "\n", + "#### [`arcgis.apps`](/python/api-reference/arcgis.apps.html)\n", + "* [`expbuilder`](/python/api-reference/arcgis.apps.expbuilder.html)\n", + " * [`WebExperience`](/python/api-reference/arcgis.apps.expbuilder.html#webexperience)\n", + " * [`clone()`](/python/api-reference/arcgis.apps.expbuilder.html#arcgis.apps.expbuilder.expbuilder.WebExperience.clone)\n", + " * Updates handling of *item_mapping*\n", + " * [`save()`](/python/api-reference/arcgis.apps.expbuilder.html#arcgis.apps.expbuilder.expbuilder.WebExperience.clone)\n", + " * Fixes errors on saving new experiences\n", + "* [`hub`](/python/api-reference/arcgis.apps.hub.html)\n", + " * [`SiteManager`](/python/api-reference/arcgis.apps.hub.html#sitemanager)\n", + " * [`clone()`](/python/api-reference/arcgis.apps.hub.html#arcgis.apps.hub.sites.SiteManager.clone)\n", + " * Fixes BUG-000163652 where ouput hub site was invalid\n", + "\n", + "#### [`arcgis.learn`](/python/api-reference/arcgis.learn.toc.html)\n", + "* [Data Preparation Methods](/python/api-reference/arcgis.learn.toc.html#data-preparation-methods)\n", + " * [`estimate_batch_size()`](/python/api-reference/arcgis.learn.toc.html#estimate-batch-size)\n", + " * Fixes issue where method overestimates in evaluation mode for some Object Detection models\n", + " * [`Transform3d`](/python/api-reference/arcgis.learn.toc.html#transform3d)\n", + " * Fixes *jitter* values to be float only\n", + "* [Automated Machine Learning](/python/api-reference/arcgis.learn.toc.html#automated-machine-learning)\n", + " * [`AutoDL`](/python/api-reference/arcgis.learn.toc.html#autodl)\n", + " * Fixes error initialzing object when no *network* argument provided\n", + " * [`AutoML`](/python/api-reference/arcgis.learn.toc.html#automl)\n", + " * [`fit()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.AutoML.fit)\n", + " * Fixes `AttributeError` with metapack environment for regression\n", + " * [`predict()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.AutoML.predict)\n", + " * Fixes issue when *output_layer_name* already exists\n", + " * [`score()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.AutoML.score)\n", + " * Fixes issue where negative value is returned with *eval_metric* set to _mse_ or _rmse_ on the data\n", + " * [`fairness_score()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.AutoML.fairness_score)\n", + " * Fixes `IndexingError: Unalignable boolean Series provided as indexer` error with regression models \n", + " * [`ImageryModel`](/python/api-reference/arcgis.learn.toc.html#imagerymodel)\n", + " * [`save()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.ImageryModel.save)\n", + " * Fixes issue where method was not printing the saved path\n", + "* [Object Classification Models](/python/api-reference/arcgis.learn.toc.html#object-classification-models)\n", + " * [`FeatureClassifier`](/python/api-reference/arcgis.learn.toc.html#featureclassifier)\n", + " * Fixes crashing errors with *tensorflow* backend and specifying a backbone\n", + " * Fixes `` with *timm* backbones\n", + " * [`predict()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.FeatureClassifier.predict)\n", + " * Fixes `TypeError` when *visualize=True* with *timm* backbones\n", + " * [`fit()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.FeatureClassifier.fit)\n", + " * Fixes `ValueError: Expreted more than 1 value per channel when training...` error when run on data preparted with a *batch_size* of 1\n", + " * [`save()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.FeatureClassifier.save)\n", + " * Fixes failure when using transformer models and *tflite* framework\n", + "* [Object Detection Models](/python/api-reference/arcgis.learn.toc.html#object-detection-models)\n", + " * Fixes warning messages when initializing objects\n", + " * Fixes training failures for models when run on multiple-GPU machines\n", + " * Fixes issues with *timm* backbnones not working for:\n", + " * *SingleShotDetector*\n", + " * *RetinaNet*\n", + " * *FasterRCNN*\n", + " * [`DETReg`](/python/api-reference/arcgis.learn.toc.html#detreg)\n", + " * [`fit()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.DETReg.fit)\n", + " * Fixes `ValueError` when model is trained with consecutive runs\n", + " * [`EfficientDET`](/python/api-reference/arcgis.learn.toc.html#efficientdet)\n", + " * [`fit()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.EfficientDet.fit)\n", + " * Fixes `AttributeError 'float' object has no attribute 'dtype'`\n", + "* [Pixel Classification Models](/python/api-reference/arcgis.learn.toc.html#pixel-classification-models)\n", + " * Fixes issue where `fit()` retuns *NaN* values in the dice scores with data that has class values missing in the label files\n", + " * Fixes `ValueError: Expected more than 1 value per channel when training` when using `fit()`\n", + " * Fixes *ignore_classes* in semantic segmentation models when reduction parameter set to *mean*\n", + "* [Image Translation Models](/python/api-reference/arcgis.learn.toc.html#image-translation-models)\n", + " * [`ImageCaptioner`](/python/api-reference/arcgis.learn.toc.html#imagecaptioner)\n", + " * [`bleu_score()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.ImageCaptioner.bleu_score)\n", + " * Fixes `TypeErrror` with *beam_width* and *max_len* values\n", + " * [`predict()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.ImageCaptioner.predict)\n", + " * Fixes `AttributeError` with object using multispectral data\n", + " * [`show_results()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.ImageCaptioner.show_results)\n", + " * Fixes incorrect default values for *beam_width* and *max_len*\n", + "* [3d Models](/python/api-reference/arcgis.learn.toc/?highlight=pointcloud#d-models)\n", + " * Fixes issue when reading multiple files\n", + " * Fixes `ValueError too many values to unpack` error on consecutive runs without running *prepare_data()* in between for:\n", + " * *PointCNN*\n", + " * *RandLANet*\n", + " * [`PointCNN`](/python/api-reference/arcgis.learn.toc.html#pointcnn)\n", + " * [`predict_h5()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.PointCNN.predict_h5)\n", + " * Fixes issue where no output produced when inferencing\n", + " * Fixes [**Public Repo Issue #1361**](https://github.com/Esri/arcgis-python-api/issues/1361) `AttributeError: module 'display' has no attribute 'display_html' error when visualizing in ArcGIS Pro or Jupyter Notebook for:\n", + " * [`show_results()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.PointCNN.show_results)\n", + " * *show_batch()*\n", + "* [Object Tracking Models](/python/api-reference/arcgis.learn.toc.html#object-tracking-models)\n", + " * [`DeepSort`](/python/api-reference/arcgis.learn.toc.html#deepsort)\n", + " * [`from_model()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.DeepSort.from_model)\n", + " * Fixes `ValueError: semaphore or lock released too many times` error when called without *data* object\n", + "* [Feature, Tabular, anad Timeseries models](/python/api-reference/arcgis.learn.toc.html#feature-tabular-and-timeseries-models)\n", + " * [`MLModel`](/python/api-reference/arcgis.learn.toc.html#mlmodel)\n", + " * Fixes initialization issue when *prepare_tabulardata* preprocessors used *explanatory_variables* without transformation\n", + " * [`fairness_score()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.MLModel.fairness_score)\n", + " * Fixes `ValueError` with regression models\n", + " * [`TimeSeriesModel`](/python/api-reference/arcgis.learn.toc.html#timeseriesmodel)\n", + " * [`predict()`](/python/api-reference/arcgis.learn.toc.html#arcgis.learn.TimeSeriesModel.predict)\n", + " * Fixes `ValueError cannot convert to 'float64'-dytpe...` with Pandas 2.0\n", + "* [Unstructured Text Models](/python/api-reference/arcgis.learn.toc.html#unstructured-text-models)\n", + " * [arcgis.learn.text module](/python/api-reference/arcgis.learn.toc.html#arcgis-learn-text-module)\n", + " * Fixes `RuntimeError` using *from_model()* with previously saved text tools caused by missing attention mask\n", + " * [`EntityRecognizer`](/python/api-reference/arcgis.learn.text.html#entityrecognizer)\n", + " * Fixes `IndexError` when initializing object for LLM backbones" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/guide/14-deep-learning/finetune-sam-using-samlora.ipynb b/guide/14-deep-learning/finetune-sam-using-samlora.ipynb new file mode 100644 index 0000000000..7844cb9d2c --- /dev/null +++ b/guide/14-deep-learning/finetune-sam-using-samlora.ipynb @@ -0,0 +1,243 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ca31682a", + "metadata": {}, + "source": [ + "# Finetune Segment Anything Model (SAM) using SamLoRA" + ] + }, + { + "cell_type": "markdown", + "id": "7a34273c", + "metadata": {}, + "source": [ + "

Table of Contents

\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "a4788457", + "metadata": {}, + "source": [ + "## Introduction" + ] + }, + { + "cell_type": "markdown", + "id": "bd49a64f", + "metadata": {}, + "source": [ + "Segmentation models are a class of deep learning models that perform a pixel-wise classification of the image. The classified pixels correspond to different objects or regions in the image. These models have a wide variety of use cases across multiple domains. When used with satellite and aerial imagery, these models can help to identify features such as building footprints, roads, water bodies, crop fields, etc.\n", + "\n", + "Generally, every segmentation model needs to be trained from scratch using a dataset labeled with the objects of interest. This can be an arduous and time-consuming task. Meta's Segment Anything Model (SAM) is aimed at creating a foundational model that can be used to segment (as the name suggests) anything using zero-shot learning and generalize across domains. SAM is trained on the Segment Anything 1-Billion mask dataset (SA-1B) which comprises a diverse set of 11 million images and over 1 billion masks. This makes the model highly robust in identifying object boundaries and differentiating between various objects even though it might have never seen them before.\n", + "\n", + "Despite SAM being a pioneering model for vision tasks, it comes with its own set of problems. The model segments everything. It will identify all object boundaries in an image and segment all the objects it can detect in the entire image. It can also identify edges within a single object and segment them as different objects. The model segments all objects in the image but isn't capable of labeling the segments. This is a problem if one wants to segment only a particular class in the image. If one would like to train or finetune the model, the large number of parameters makes it an expensive task computationally.\n", + "\n", + "SamLoRA, a variation of SAM that adds a set of trainable layers called Low-Rank Adaption (LoRA) to the frozen image encoder of SAM, addresses these limitations. Before delving into the details of SamLoRA, let's look at the model architecture of SAM." + ] + }, + { + "cell_type": "markdown", + "id": "dc2d2d29", + "metadata": {}, + "source": [ + "## SAM architecture" + ] + }, + { + "cell_type": "markdown", + "id": "b91f6687", + "metadata": {}, + "source": [ + "SAM's architecture comprises three major components - an image encoder, a prompt encoder, and a mask decoder. The image encoder is a Vision Transformer (ViT). The prompt encoder takes the prompt in the form of a point or bounding box coordinates and transforms them into embeddings. The Mask decoder takes the embeddings from the image encoder and prompt encoder and creates masks corresponding to the different segments in the image." + ] + }, + { + "cell_type": "markdown", + "id": "42be4e00", + "metadata": {}, + "source": [ + "
\n", + " \n", + "
\n", + "
\n", + "
Figure 1: Segment Anything Model (SAM) architecture overview [1]
\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "3ce4745f", + "metadata": {}, + "source": [ + "## SamLoRA architecture" + ] + }, + { + "cell_type": "markdown", + "id": "4fc7f6cd", + "metadata": {}, + "source": [ + "SamLoRA freezes the image encoder and adds Low-Rank Adaption (LoRA) layers to the transformer blocks in the image encoder. These LoRA layers have far fewer parameters, which makes the encoder trainable with relatively less compute. The Prompt encoder is not provided with any prompts, and default embeddings are used instead. These design modifications enable the model to preserve its knowledge of generalized features in an image while also adapting to a new domain relatively quickly and with less training. The mask decoder is modified to output masks indexed according to the class ID, which solves the problem of labeled segmentation." + ] + }, + { + "cell_type": "markdown", + "id": "6e965247", + "metadata": {}, + "source": [ + "
\n", + " \n", + "
\n", + "
\n", + "
Figure 2: SamLoRA architecture overview [2]
\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "05109f0a", + "metadata": {}, + "source": [ + "## Implementation in `arcgis.learn`" + ] + }, + { + "cell_type": "markdown", + "id": "b16aeccd", + "metadata": {}, + "source": [ + "Using SamLoRA with arcgis.learn is as simple as using any other pixel classification model in the library." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98c0377c", + "metadata": {}, + "outputs": [], + "source": [ + "model = SamLoRA(data)" + ] + }, + { + "cell_type": "markdown", + "id": "7dc505c1", + "metadata": {}, + "source": [ + "The parameters required are:\n", + "\n", + "- `data` - the data object prepared using `prepare_data` \n", + "- `backbone` - the SAM pretrained backbone to be used to initialize the model. The available backbones are `vit_b`, `vit_l`, and `vit_h`. The default backbone is `vit_b`." + ] + }, + { + "cell_type": "markdown", + "id": "44fc6be7", + "metadata": {}, + "source": [ + "## Training and inference" + ] + }, + { + "cell_type": "markdown", + "id": "19d9555f", + "metadata": {}, + "source": [ + "The SamLoRA model can be trained using the `fit` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86843b26", + "metadata": {}, + "outputs": [], + "source": [ + "model.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "4b900c35", + "metadata": {}, + "source": [ + "During training, the SAM pretrained backbone remains frozen. This helps in retaining the feature representations of the original model. You can unfreeze the entire model using the `unfreeze` method." + ] + }, + { + "cell_type": "markdown", + "id": "eac707c8", + "metadata": {}, + "source": [ + "Alternatively, the [Train Deep Learning Model](https://pro.arcgis.com/en/pro-app/latest/tool-reference/image-analyst/train-deep-learning-model.htm) tool in ArcGIS Pro can be used to train the models.\n", + "Models trained through the API or ArcGIS Pro can be used for inferencing using the [Detect Objects Using Deep Learning](https://pro.arcgis.com/en/pro-app/latest/tool-reference/image-analyst/detect-objects-using-deep-learning.htm) tool in ArcGIS Pro." + ] + }, + { + "cell_type": "markdown", + "id": "883f8ce2", + "metadata": {}, + "source": [ + "For more information about the API, visit the [API reference for SamLoRA](https://developers.arcgis.com/python/api-reference/arcgis.learn.toc.html#samlora)." + ] + }, + { + "cell_type": "markdown", + "id": "1bc56db9", + "metadata": {}, + "source": [ + "## References" + ] + }, + { + "cell_type": "markdown", + "id": "037a950c", + "metadata": {}, + "source": [ + "[1] Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Dollár, Ross Girshick: \"Segment Anything\", 2023; [arXiv:2304.02643](https://arxiv.org/abs/2304.02643)." + ] + }, + { + "cell_type": "markdown", + "id": "05581027", + "metadata": {}, + "source": [ + "[2] Kaidong Zhang, Dong Liu: \"Customized Segment Anything Model for Medical Image Segmentation\", 2023; [arXiv:2304.13785](https://arxiv.org/abs/2304.13785)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/guide/14-deep-learning/use_mistral_llm_for_text_classification_and_entity_recognition.ipynb b/guide/14-deep-learning/use_mistral_llm_for_text_classification_and_entity_recognition.ipynb new file mode 100644 index 0000000000..724913dc9f --- /dev/null +++ b/guide/14-deep-learning/use_mistral_llm_for_text_classification_and_entity_recognition.ipynb @@ -0,0 +1,615 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Use Mistral LLM for Text Classification and Entity Recognition" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "toc": true + }, + "source": [ + "

Table of Content

\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Introduction to Mistral model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mistral 7B is a decoder-based language model trained using almost 7 billion parameters designed to deliver both efficiency and high performance for real-world applications.\n", + "\n", + "Employing attention mechanisms like Sliding Window Attention, Mistral 7B can train with an 8k context length and a fixed cache size, resulting in a theoretical attention span of 128K tokens. This capability allows the model to focus on crucial parts of the text efficiently. Moreover, the model incorporates Grouped Query Attention (GQA) to accelerate inference and reduce cache size, thereby expediting its inference process. Additionally, its Byte-fallback tokenizer ensures consistent representation of characters, eliminating the need for out-of-vocabulary tokens.\n", + "\n", + "Such design features in its architecture equip Mistral 7B for exceptional performance, particularly in tasks related to language comprehension and generation. In this guide we see how we can use the Mistral LLM for text classification and named entity recognition." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mistral Implementation in arcgis.learn " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Install the model backbone " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Follow these steps to download and install the Mistral model backbone:\n", + "\n", + "1. Download the mistral model backbone.\n", + "\n", + "2. Extract the downloaded zip file.\n", + "\n", + "3. Open the anaconda prompt and move to the folder that contains arcgis_mistral_backbone-1.0.0-py_0.tar.bz2\n", + "\n", + "4. Run:\n", + "\n", + " ```conda install --offline arcgis_mistral_backbone-1.0.0-py_0.tar.bz2```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mistral with the TextClassifier model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import the TextClassifier class from the arcgis.learn.text module " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.learn.text import TextClassifier" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialize the TextClassifier model with a databunch " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Prepare databunch for the TextClassifier model using theprepare_textdata method in arcgis.learn." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.learn import prepare_textdata\n", + "data = prepare_textdata(\"path_to_data_folder\", task=\"classification\",train_file=\"input_csv_file.csv\",\n", + " text_columns=\"text_column\", label_columns=\"label_column\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once the data is prepared, the TextClassifier model object can be instantiated as below with the following parameters:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "data: The databunch created using the prepare_textdata method.\n", + "\n", + "backbone: To use mistral as the model backbone, use backbone=\"mistral\".\n", + "\n", + "prompt: Text string describing the task and its guardrails. This is an optional parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "classifier_model = TextClassifier(\n", + " data=data,\n", + " backbone=\"mistral\",\n", + " prompt=\"Classify all the input sentences into the defined labels, do not make up your own labels.\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialize the TextClassifier model without a databunch " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A TextClassifier model with a mistral backbone can also be created without a large dataset using only a few examples." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below are the parameters to be passed into TextClassifier:\n", + "\n", + "backbone: To use mistral as the model backbone, use backbone=\"mistral\".\n", + "\n", + "examples: User defined examples to provide the mistral model, in python dictionary format:\n", + "```\n", + "{\n", + " \"label_1\" :[\"input_text_example_1\", \"input_text_example_2\", ...],\n", + " \"label_2\" :[\"input_text_example_1\", \"input_text_example_2\", ...],\n", + " ...\n", + "}\n", + "```\n", + " \n", + "prompt: Text string describing the task and its guardrails. This is an optional parameter.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "classifier_model = TextClassifier(\n", + " data=None,\n", + " backbone=\"mistral\",\n", + " prompt=\"Classify all the input sentences into the defined labels, do not make up your own labels.\",\n", + " examples={\n", + " \"positive\" : [\" Good! it was a wonderful experience!\", \"i really adore your work\"],\n", + " \"negative\" : [\"The customer support was unhelpful\", \"I don`t like your work\"]\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Classify the text using mistral model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To classify text using the mistral model, use the predict method from the TextClassifier class. The input to the method will be a text string or a list of text string." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "classifier_model.predict()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To load a saved mistral model, use the from_model method from the TextClassifier class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "classifier_model.from_model(r'path_to_dlpk_file')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Save the model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following method saves the model weights and creates a Deep Learning Package (.dlpk)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "classifier_model.save(\"name_of_the_mistral_model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mistral with an EntityRecognizer model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import the EntityRecognizer class from the arcgis.learn.text module " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.learn.text import EntityRecognizer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialize the EntityRecognizer model with a databunch " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Prepare the databunch for the EntityRecognizer model using the prepare_textdata method in arcgis.learn." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.learn import prepare_textdata\n", + "data = prepare_textdata(\"path_to_data_file\", task=\"entity_recognition\", dataset_type='ner_json')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once the data is prepared, the EntityRecognizer model object can be instantiated with the following parameters:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "data: The databunch created using the prepare_textdata method.\n", + "\n", + "backbone: To use mistral as the model backbone, use backbone=\"mistral\".\n", + "\n", + "prompt: Text string describing the task and its guardrails. This is an optional parameter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "entity_recognizer_model = EntityRecognizer(\n", + " data=data,\n", + " backbone=\"mistral\",\n", + " prompt=\"Tag the input sentences in the named entity for the given classes, no other class should be tagged.\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialize the EntityRecognizer model without a databunch " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An EntityRecognizer model with a mistral backbone can also be created without a large dataset by using only a few examples." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below are the parameters to be passed into EntityRecognizer :\n", + "\n", + "backbone: To use mistral as the model backbone, use backbone=\"mistral\".\n", + "\n", + "examples: User defined examples for the mistral model, in python list format:\n", + "\n", + "```\n", + "[\n", + " (\"input_text_sentence\", \n", + " {\n", + " \"class_1\":[\"Named Entity\", ...],\n", + " \"class_2\": [\"Named entity\", ...],\n", + " ...\n", + " }\n", + " )\n", + " ...\n", + "]\n", + "```\n", + "\n", + "```\n", + "Note: The EntityRecognizer class, using the \"Mistral\" backbone, needs at least six examples to work effectively.\n", + "```\n", + " \n", + "prompt: Text string describing the task and its guardrails. This is an optional parameter.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "entity_recognizer_model = EntityRecognizer(\n", + " data=None,\n", + " backbone=\"mistral\",\n", + " prompt=\"Tag the input sentences in the named entity for the given classes, no other class should be tagged.\"\n", + " examples=[(\n", + " 'Jim stays in London',\n", + " {\n", + " 'name': ['Jim'], \n", + " 'location': ['London']\n", + " },\n", + " ...\n", + " )]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extract entities using the mistral model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To extract named entities using the mistral model, use the extract_entities method from the EntityRecognizer class. The input to the method will be a text string or a list of text strings." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "entity_recognizer_model.extract_entities()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To load a saved mistral model, use the from_model method from the EntityRecognizer class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "entity_recognizer_model.from_model(r'path_to_dlpk_file')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Save the model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This method saves the model weights and creates a Deep Learning Package (.dlpk)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "entity_recognizer_model.save(\"name_of_the_mistral_model\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this guide we demonstrated the steps to initialize and perform inference using the Mistral LLM as a backbone with the TextClassifier and EntityRecognizer models in arcgis.learn." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mistral-7B HuggingFace: https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2
\n", + "Mistral-7B MistralAI: https://mistral.ai/news/announcing-mistral-7b" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": true, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}