Custom Prediction Routine on Google AI Platform

Brought by: Coursera

Overview

Please note: You will need a Google Cloud Platform account to complete this course. Your GCP account will be charged as per your usage. Please make sure that you are able to access Google AI Platform within your GCP account. You should be familiar with python programming, and Google Cloud Platform before starting this hands on project. Please also ensure that you have access to the custom prediction routine feature in Google AI Platform.

In this 2-hour long project-based course, you will learn how to deploy, and use a model on Google’s AI Platform. Normally, any model trained with the TensorFlow framework is quite easy to deploy, and you can simply upload a Saved Model on Google Storage, and create an AI Platform model with it. But, in practice, we may not always use TensorFlow. Fortunately, the AI Platform allows for custom prediction routines as well and that’s what we are going to focus on. Instead of converting a Keras model to a TensorFlow Saved Model, we will use the h5 file as is. Additionally, since we will be working with image data, we will use this opportunity to look at encoding and decoding of byte data into string for data transmission and then encoding of the received data in our custom prediction routine on the AI Platform before using it with our model.

This course runs on Coursera's hands-on project platform called Rhyme. On Rhyme, you do projects in a hands-on manner in your browser. You will get instant access to pre-configured cloud desktops containing all of the software and data you need for the project. Everything is already set up directly in your Internet browser so you can just focus on learning. For this project, you’ll get instant access to a cloud desktop with (e.g. Python, Jupyter, and Tensorflow) pre-installed.

Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Custom Prediction Routine on Google AI Platform
    • In this 2-hour long project-based course, you will learn how to deploy and use a model on Google’s AI Platform. AI Platform allows for custom prediction routines in addition to TensorFlow, XGBoost and Sci-kit models, and that’s what we are going to focus on. Instead of converting a Keras model to a TensorFlow Saved Model, we will use the h5 file as is.

Taught by

Amit Yadav

Custom Prediction Routine on Google AI Platform
Go to course

Custom Prediction Routine on Google AI Platform

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version185msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (109ms)
    • Application (75.46ms)
    • 1 x Booting (58.98%)
      109.15ms
      1 x Application (40.77%)
      75.46ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed5.43ms
      • select * from `courses` where `slug_en` = 'custom-prediction-routine-on-google-ai-platform' limit 1
        4.31ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. custom-prediction-routine-on-google-ai-platform
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-08 22:14:51' where `id` = 1831
        290μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-08 22:14:51
        • 1. 1831
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (3)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1822 limit 1
        200μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1822
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        I9XOa1xzKOKMESmsYP8q3eo3Mh7zXPo6GD9DlQjD
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/custom-prediction-routine-on-google-ai-pl...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/custom-prediction-routine-on-google-ai-platform
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.21.41.164" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "92d51ebbce68e81c-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.21.41.164" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.21.41.164" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "92d51ebbce68e81c-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.21.41.164" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "39828" "REMOTE_ADDR" => "172.71.255.135" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/custom-prediction-routine-on-google-ai-platform" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744150491.7279 "REQUEST_TIME" => 1744150491 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 08 Apr 2025 22:14:51 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InEwRlFuUnZuS0VKVGc0YWNnM29zOGc9PSIsInZhbHVlIjoiTFNQV1VHRGt1NGhjZk9veXpJVXk5MmJNNFBRQ05FK2plREcyR2I1ZFYrelJLL2tBMzRiTzlCWXI3MzVMd0R6bGRFTUYwa3ZlaTZlUTltOWZXT1JkcFhQM0w4ZXI3ckZuU2IvWEdFeGZsd3NwZENNUmdNMG1QeEh1MFgyeUdRNUUiLCJtYWMiOiI0YTQxZDRmNDljMGRiOWQ2MjQ2MDZkZGExMTJhZjFiY2JkNmExYTQ4MjUwOGEyZmE1ZDBlMmU2NTJiNWNhYTk4IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 00:14:51 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6InEwRlFuUnZuS0VKVGc0YWNnM29zOGc9PSIsInZhbHVlIjoiTFNQV1VHRGt1NGhjZk9veXpJVXk5MmJNNFBRQ05FK2plREcyR2I1ZFYrelJLL2tBMzRiTzlCWXI3MzVMd0R6bGRFTUYwa" 1 => "laravel_session=eyJpdiI6InVHTVZ3Qm40Ym1UN0QwZ2p0Q01GOGc9PSIsInZhbHVlIjoiaWhEd2JVYTZqQ3E4ZUJtbGFGM01lVXJDVFZPYUpQOGhsMC8xTHNuWWUrWHlaaGNsNnRJM0ZHT2gvWVJpeGwrTzZJWmdyWUZuUDdPcnA3Nk9hYmNwRmduNE02YXg4WWViMXZmRGYwN09CZ3Y3ODZVaHdDTXlSNGNqTVBtMUJzTGYiLCJtYWMiOiI4NzEzYWI2ZDJlMmJhNDJjMGU3ODYzNTI3MjVhOWYwYmU1YTM2NTJkMjUyZWY2MGQ2N2MwMWVlNDNiNGEwMTI0IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 00:14:51 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InVHTVZ3Qm40Ym1UN0QwZ2p0Q01GOGc9PSIsInZhbHVlIjoiaWhEd2JVYTZqQ3E4ZUJtbGFGM01lVXJDVFZPYUpQOGhsMC8xTHNuWWUrWHlaaGNsNnRJM0ZHT2gvWVJpeGwrTzZJ" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InEwRlFuUnZuS0VKVGc0YWNnM29zOGc9PSIsInZhbHVlIjoiTFNQV1VHRGt1NGhjZk9veXpJVXk5MmJNNFBRQ05FK2plREcyR2I1ZFYrelJLL2tBMzRiTzlCWXI3MzVMd0R6bGRFTUYwa3ZlaTZlUTltOWZXT1JkcFhQM0w4ZXI3ckZuU2IvWEdFeGZsd3NwZENNUmdNMG1QeEh1MFgyeUdRNUUiLCJtYWMiOiI0YTQxZDRmNDljMGRiOWQ2MjQ2MDZkZGExMTJhZjFiY2JkNmExYTQ4MjUwOGEyZmE1ZDBlMmU2NTJiNWNhYTk4IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 00:14:51 GMT; path=/XSRF-TOKEN=eyJpdiI6InEwRlFuUnZuS0VKVGc0YWNnM29zOGc9PSIsInZhbHVlIjoiTFNQV1VHRGt1NGhjZk9veXpJVXk5MmJNNFBRQ05FK2plREcyR2I1ZFYrelJLL2tBMzRiTzlCWXI3MzVMd0R6bGRFTUYwa" 1 => "laravel_session=eyJpdiI6InVHTVZ3Qm40Ym1UN0QwZ2p0Q01GOGc9PSIsInZhbHVlIjoiaWhEd2JVYTZqQ3E4ZUJtbGFGM01lVXJDVFZPYUpQOGhsMC8xTHNuWWUrWHlaaGNsNnRJM0ZHT2gvWVJpeGwrTzZJWmdyWUZuUDdPcnA3Nk9hYmNwRmduNE02YXg4WWViMXZmRGYwN09CZ3Y3ODZVaHdDTXlSNGNqTVBtMUJzTGYiLCJtYWMiOiI4NzEzYWI2ZDJlMmJhNDJjMGU3ODYzNTI3MjVhOWYwYmU1YTM2NTJkMjUyZWY2MGQ2N2MwMWVlNDNiNGEwMTI0IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 00:14:51 GMT; path=/; httponlylaravel_session=eyJpdiI6InVHTVZ3Qm40Ym1UN0QwZ2p0Q01GOGc9PSIsInZhbHVlIjoiaWhEd2JVYTZqQ3E4ZUJtbGFGM01lVXJDVFZPYUpQOGhsMC8xTHNuWWUrWHlaaGNsNnRJM0ZHT2gvWVJpeGwrTzZJ" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "I9XOa1xzKOKMESmsYP8q3eo3Mh7zXPo6GD9DlQjD" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/custom-prediction-routine-on-google-ai-platform" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]