

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# モデルのタグ付け
<a name="tm-tagging-model"></a>

タグを使用して、Amazon Rekognition モデルを識別、整理、検索、フィルタリングできます。各タグは、ユーザー定義のキーと値で構成されるラベルです。例えば、モデルの請求額を決定しやすくするために、モデルに `Cost center` キーでタグ付けし、適切なコストセンター番号を値として追加します。詳細については、「[ AWS リソースのタグ付け](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」を参照してください。

タグを使用して、次の操作を行います。
+ コスト配分タグを使用して、モデルの課金の追跡をします。詳細については、「[コスト配分タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。
+ IAM (Identity and Access Management) を用いて、モデルへのアクセスを制御します。詳細については、[リソースタグを使って AWS リソースへアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) を参照します。
+ モデル管理を自動化します。例えば、業務時間外に開発モデルを停止する自動起動または停止スクリプトを実行し、コストを削減することができます。詳細については、「[トレーニング済み Amazon Rekognition Custom Labels の実行](running-model.md)」を参照してください。

Amazon Rekognition コンソールまたは AWS SDKs を使用してモデルにタグを付けることができます。

**Topics**
+ [モデルのタグ付け (コンソール)](#tm-tagging-model-console)
+ [モデルのタグの表示](#tm-tagging-model-viewing-console)
+ [モデルのタグ付け (SDK)](#tm-tagging-model-sdk)

## モデルのタグ付け (コンソール)
<a name="tm-tagging-model-console"></a>

Rekognition コンソールを使用して、モデルへのタグの追加、モデルに追加されたタグの表示、タグの削除を行うことができます。

### タグの追加または削除
<a name="tm-tagging-model-add-remove-console"></a>

この手順では、既存のモデルにタグを追加する方法、または既存のモデルからタグを削除する方法について説明します。トレーニング中に新しいモデルにタグを追加することもできます。詳細については、「[Amazon Rekognition Custom Labels モデルをトレーニングする](training-model.md)」を参照してください。

**コンソールを使用して既存のモデルにタグを追加または削除するには**

1. Amazon Rekognition コンソールを [https://console.aws.amazon.com/rekognition/]( https://console.aws.amazon.com/rekognition/) で開きます。

1. **[開始する]** を選択します。

1. ナビゲーションペインで、**[プロジェクト]** を選択します。

1. 「**プロジェクト**リソース」ページで、タグ付けしたいモデルを含むプロジェクトを選択します。

1. ナビゲーションペインの、以前に選択したプロジェクトの下で、**[モデル]** を選択します。

1. **[モデル]** セクションで、タグを追加するモデルを選択します。

1. 「モデルの詳細」ページで、**[タグ]** タブを選択します。

1. **[タグ]** タブで、**[タグを管理]** を選択します。

1. 「**タグを管理する**」ページで、**[新規タグを追加]** を選択します。

1. キーと値を入力します。

   1. **[キー]** に、キーの名前を入力します。

   1. **[値]** に値を入力します。

1. さらにタグを追加するには、手順 9～10 を繰り返します。

1. (オプション) タグを削除するには、削除したいタグの横にある**[削除]** を選択します。以前に保存したタグを削除する場合、変更を保存するとそのタグが削除されます。

1. **[変更を保存]** を選択して、変更を保存します。

## モデルのタグの表示
<a name="tm-tagging-model-viewing-console"></a>

Amazon Rekognition コンソールを使用して、モデルに追加されているタグを表示できます。

*プロジェクト内のすべてのモデル*に追加されたタグを表示するには、AWS SDK を使用する必要があります。詳細については、「[モデルタグの一覧表示](#listing-model-tags-sdk)」を参照してください。

**モデルに追加されたタグを表示するには**

1. Amazon Rekognition コンソールを [https://console.aws.amazon.com/rekognition/]( https://console.aws.amazon.com/rekognition/) で開きます。

1. **[開始する]** を選択します。

1. ナビゲーションペインで、**[プロジェクト]** を選択します。

1. 「**プロジェクト**リソース」ページで、タグを表示したいモデルを含むプロジェクトを選択します。

1. ナビゲーションペインの、以前に選択したプロジェクトの下で、**[モデル]** を選択します。

1. **[モデル]** セクションで、タグを表示するモデルを選択します。

1. 「モデルの詳細」ページで、**[タグ]** タブを選択します。タグは**[タグ]** セクションに示されています。

## モデルのタグ付け (SDK)
<a name="tm-tagging-model-sdk"></a>

 AWS SDK を使用して以下を行うことができます。
+ 新しいモデルにタグを追加する
+ 既存のモデルにタグを追加する
+ モデルに追加されたタグを一覧表示する 
+ モデルからタグを削除する 

次の AWS CLI 例のタグは、次の形式です。

```
--tags '{"{{key1}}":"{{value1}}","{{key2}}":"{{value2}}"}' 
```

または、この形式を使用することもできます。

```
--tags {{key1}}={{value1}},{{key2}}={{value2}}
```

をインストールしていない場合は AWS CLI、「」を参照してください[ステップ 4: AWS CLI と AWS SDKsを設定する](su-awscli-sdk.md)。

### 新しいモデルへのタグの追加
<a name="tagging-new-model-sdk"></a>

[CreateProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion.html) オペレーションを使用することにより、作成時に、モデルにタグを追加することもできます。`Tags` 配列入力パラメータで 1 つ以上のタグを指定します。

```
aws rekognition create-project-version --project-arn {{project arn}} \
  --version-name {{version_name}} \
  --output-config '{ "S3Location": { "Bucket": "{{output bucket}}", "Prefix":  "{{output folder}}" } }' \
  --tags '{"{{key1}}":"{{value1}}","{{key2}}":"{{value2}}"}' \
  --profile custom-labels-access
```

モデルの作成とトレーニングの詳細については、「[モデルのトレーニング (SDK)](training-model.md#tm-sdk)」 を参照してください。

### 既存のモデルへのタグの追加
<a name="tagging-new-model-sdk"></a>

既存のモデルに 1 つ以上のタグを追加するには、[[TagResource]](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TagResource) オペレーションを使用します。モデルの Amazon リソースネーム (ARN) (`ResourceArn`) と、追加したいタグ (`Tags`) を指定します。次の例は、2 つのタグを追加する方法を示しています。

```
aws rekognition tag-resource --resource-arn {{resource-arn}} \
  --tags '{"{{key1}}":"{{value1}}","{{key2}}":"{{value2}}"}' \
  --profile custom-labels-access
```

[CreateProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion) を呼び出すことにより、モデルの ARN を取得できます。

### モデルタグの一覧表示
<a name="listing-model-tags-sdk"></a>

モデルに追加されたタグを一覧表示するには、[ListTagsForResource](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ListTagsForResource) オペレーションを使用して、モデルの ARN (`ResourceArn`) を指定します。応答は、指定されたモデルに追加されているタグキーと値のマップです。

```
aws rekognition list-tags-for-resource --resource-arn {{resource-arn}} \
  --profile custom-labels-access
```

出力には、モデルに添付されるタグのリストが表示されます。

```
{
    "Tags": {
        "Dept": "Engineering",
        "Name": "Ana Silva Carolina",
        "Role": "Developer"
    }
}
```

プロジェクト内のどのモデルに特定のタグがあるかを確認するには、`DescribeProjectVersions` でモデルのリストを取得します。次に、`DescribeProjectVersions` からの応答で各モデルに対して `ListTagsForResource` を呼び出します。`ListTagsForResource` からのレスポンスを検査して、必要なタグが存在するかどうかを確認します。

次の Python 3 の例では、すべてのプロジェクトで特定のタグキーと値を検索する方法を示しています。出力には、プロジェクト ARN と、一致するキーが検知されたモデル ARN が含まれます。

**タグの値を検索するには**

1. 次のコードを `find_tag.py` という名前を付けて保存します。

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   """
   Purpose
   Shows how to find a tag value that's associated with models within
   your Amazon Rekognition Custom Labels projects.
   """
   import logging
   import argparse
   import boto3
   
   from botocore.exceptions import ClientError
   
   
   logger = logging.getLogger(__name__)
   
   
   def find_tag_in_projects(rekognition_client, key, value):
       """
       Finds Amazon Rekognition Custom Label models tagged with the supplied key and key value.
       :param rekognition_client: An Amazon Rekognition boto3 client.
       :param key: The tag key to find.
       :param value: The value of the tag that you want to find.
       return: A list of matching model versions (and model projects) that were found.
       """
       try:
   
           found_tags = []
           found = False
   
           projects = rekognition_client.describe_projects()
           # Iterate through each project and models within a project.
           for project in projects["ProjectDescriptions"]:
               logger.info("Searching project: %s ...", project["ProjectArn"])
   
               models = rekognition_client.describe_project_versions(
                   ProjectArn=(project["ProjectArn"])
               )
   
               for model in models["ProjectVersionDescriptions"]:
                   logger.info("Searching model %s", model["ProjectVersionArn"])
   
                   tags = rekognition_client.list_tags_for_resource(
                       ResourceArn=model["ProjectVersionArn"]
                   )
   
                   logger.info(
                       "\tSearching model: %s for tag: %s value: %s.",
                       model["ProjectVersionArn"],
                       key,
                       value,
                   )
                   # Check if tag exists.
   
                   if key in tags["Tags"]:
                       if tags["Tags"][key] == value:
                           found = True
                           logger.info(
                               "\t\tMATCH: Project: %s: model version %s",
                               project["ProjectArn"],
                               model["ProjectVersionArn"],
                           )
                           found_tags.append(
                               {
                                   "Project": project["ProjectArn"],
                                   "ModelVersion": model["ProjectVersionArn"],
                               }
                           )
   
           if found is False:
               logger.info("No match for Tag %s with value %s.", key, value)
           return found_tags
       except ClientError as err:
           logger.info("Problem finding tags: %s. ", format(err))
           raise
   
   
   def main():
       """
       Entry point for example.
       """
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       # Set up command line arguments.
       parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
   
       parser.add_argument("tag", help="The tag that you want to find.")
       parser.add_argument("value", help="The tag value that you want to find.")
   
       args = parser.parse_args()
       key = args.tag
       value = args.value
   
       print(f"Searching your models for tag: {key} with value: {value}.")
   
   
       session = boto3.Session(profile_name='custom-labels-access')
       rekognition_client = session.client("rekognition")
   
       # Get tagged models for all projects.
       tagged_models = find_tag_in_projects(rekognition_client, key, value)
   
       print("Matched models\n--------------")
       if len(tagged_models) > 0:
           for model in tagged_models:
               print(
                   "Project: {project}\nModel version: {version}\n".format(
                       project=model["Project"], version=model["ModelVersion"]
                   )
               )
   
       else:
           print("No matches found.")
   
       print("Done.")
   
   
   if __name__ == "__main__":
       main()
   ```

1. コマンドプロンプトで次のコマンドを入力します。{{[key]}} と {{[value]}} を検索するキー名とキー値に置き換えます。

   ```
   python find_tag.py {{key}} {{value}}
   ```

### モデルからタグを削除する
<a name="tm-removing-a-tag-sdk"></a>

1 つ以上のタグを削除するには、[[UntagResource]](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_UntagResource) オペレーションを使用します。モデル (`ResourceArn`) の ARN と削除したいタグキー (`Tag-Keys`) を指定します。

```
aws rekognition untag-resource --resource-arn {{resource-arn}} \
  --tag-keys '["{{key1}}","{{key2}}"]' \
  --profile custom-labels-access
```

または、次の形式で `tag-keys` を指定できます。

```
--tag-keys {{key1}},{{key2}} 
```