profile
viewpoint
8bitmp3 8bitmp3 on the cloud, on the shell, running notebooks. cloud devops, machine learning in python and swift. writing and coding

8bitmp3/presentation-capsule-networks-dynamic-routing-mnist-february-2018 1

Intro to Capsule Networks - 'Dynamic Routing Between Capsules' - TensorFlow and Deep Learning presentation (2018)

8bitmp3/presentation-proximal-policy-optimization-and-openai-five-finals-may-2019 1

Proximal Policy Optimization (PPO) deep reinforcement learning algorithm and OpenAI Five Finals - TensorFlow and Deep Learning presentation (2019)

8bitmp3/Google-Cloud-Tutorial-Setting-Up-Istio-Powered-Anthos-Service-Mesh-on-Google-Kubernetes-Engine 0

My Google Cloud Tutorial - Setting up Istio-powered Anthos Service Mesh on Google Kubernetes Engine (June 2020)

8bitmp3/Google-Cloud-Tutorial-Using-Cloud-Healthcare-API-with-FHIR-health-record-data 0

My Google Cloud Tutorial - Using Cloud Healthcare API with FHIR health record data (May 2020)

8bitmp3/jax 0

Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

8bitmp3/musings-on-machines 0

My machine learning notebooks. Python, JAX, Swift for TensorFlow.

8bitmp3/presentation-swift-for-tensorflow-new-approach-machine-learning-autodiff-september-2019 0

Swift for TensorFlow: A New Approach to Machine Learning and Autodiff - TensorFlow London presentation (2019)

8bitmp3/tensorflow 0

An Open Source Machine Learning Framework for Everyone

8bitmp3/website 0

Kubeflow's public website

startedtwostraws/HackingWithSwift

started time in 12 hours

startedvapor/vapor

started time in 12 hours

issue commentkubeflow/kubeflow

Release KF 1.1

@jlewi with your guidance i can run /docs for KF v1.1. if it's available 👍

jlewi

comment created time in 13 hours

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

To make the review process easier @skye I’ll reverse the commits and then introduce separate ones for pmap, the rest of the notebook, and changes to.rst files.

8bitmp3

comment created time in 3 days

issue commentkubeflow/website

[Release 1.1] Release Website 1.1

@jlewi regarding streamlining Kubeflow's Getting Started section

I think it was @LyleHenkeman who posted about it here. ... the current guide is a bit "busy".

I think it's about reducing cognitive overhead.

Although Kubeflow and Kubernetes are not simple, but maybe we can merge a few paragraphs/pages and rework the order of things to decrease UX "friction". I can start a draft PR while @jlewi can review changes as they are implemented. And if you can give some feedback here first before I start, it'll be awesome.

Some of the best installation guides I've used have a sense of flow. You use them once and then, hopefully, never come back.

1. Consistency in naming 🔀

In Getting Started, we are greeted with a nice flow chart/diagram (see below) before receiving instructions on what to do next in each of the three installation paths (in green) that cover four potential scenarios.

image

In addition, there're links in the menu to the left for each of three installation guides (in orange). And on the right-hand side, there are Docsy-generated (?) subheadings from the "Installing Kubeflow" markdown file:

image

Because the same things are reworded in different ways, including in the flow chart, this can be a bit confusing, especially for those new to K8s and KF, since you're greeted with all that when you try to figure out how to install.

Descriptions/titles of each of our three installations can be more consistent, so the whole thing is more friendly for the newcomers.

I think this is a small but a significant example of cognitive overload.

2. Installation steps for KF on an existing cluster 🔀

Related to @LyleHenkeman's post here.

Notice the flow below.

  1. You're in Installing Kubeflow and come across Installing Kubeflow on an existing Kubernetes cluster. Click on the guide to deploying Kubeflow on Kubernetes:

image

  1. This takes you to an Overview of Deployment on Existing Clusters:

image

  1. You have to scroll down and inside the last table are the next options (click on one of them):

  2. To run KF on K8s with Istio, select Follow instructions: Kubeflow Deployment with kfctl_k8s_istio, which has its own Before you start and other sections.

Note that in Step 4 you should be using kfctl. I assume that the user should have read Installing command line tools back on the Getting Started page.

To sum up, this can definitely be streamlined. I propose to have several sections combined in one Markdown to reduce the number of clicks, so that instead of going back and forth to different pages, it's designed as a one long scrolling page.

Step 3 should visually have a more clear "this is what you should do next options" section, where the options are not in a table behind abbreviations (e.g. Istio is not widely known outside K8s).

Also, we should probably have the same information repeated on different pages, such as Installing command line tools since it's hard to find otherwise (see Step 4).

3. Installation steps for cloud-based KF ☁️

Notice the flow below. For example, if you want to get KF up and running on GCP, you are several clicks away from the instructions ("you need to learn to deploy") to look into more options ("which deployment option would you like, we have many"), which means more clicking:

  1. Click Cloud Installation:

image

  1. Go to Google Cloud for Kubeflow:

image

  1. You're greeted with a short page that tells you to go to deployment 🙇‍♂️:

image

  1. Then, you're on the deploying page, since installation and deployment mean kind of different things:

image

Let me know what you think and I can get started.

jlewi

comment created time in 3 days

issue commentkubeflow/community

GitHub Discussions as a centralized KF community forum

@jlewi would the KF backers be open to sponsoring a paid account to save the archives?

8bitmp3

comment created time in 3 days

issue openedkubeflow/website

Add common Kubeflow Common Gotchas section

Add a section listing common issues and workaround, such as:

Installing on an existing cluster still isn't very well supported; you kind of have to muck around in the configs. There is more information on this issue: https://github.com/kubeflow/gcp-blueprints/issues/53

Installing on a particular node-pool is even harder. You'd have to modify all the K8s resources to include a node selector. A kpt fn would be a good way to do that.

@jlewi

(This is similar to "Common Gotchas" in another OS project.)

created time in 4 days

issue commentkubeflow/website

Really need a Kubeflow Ecosystem Section to the Website, (Note list is attached I found who are in the Ecosystem)

@gstoner @g-angstrom @jlewi I am with you. I suggest we make this explicit, so it's easily identifiable on the site. The less steps someone has to take by browsing through "nested folders" the better, IMHO. Some of the best open source projects I've been using have relatively simple websites/docs with intuitive navigation.

Because the word "Ecosystem" may be too broad (it's a good word though), I propose to add to separate this extensive list into two sections:

  • Companies and Platforms Using Kubeflow
  • Community Tutorials

See my bad attempt at graphics design below: image

Regarding the Kubeflow hiring section, I may be wrong but I think "experience with deployment of pipelines" (and/or other combinations of words can hide the fact that an employer is potentially looking for Kubeflow and Kubernetes experience. What we can do is ask the community to post jobs in GitHub Discussions instead? @jlewi

I can start with a PR with a couple of Markdown files and let you co-edit them, so you get the credit @gstoner @g-angstrom. Or you can begin the work and I can review/edit it.

gstoner

comment created time in 4 days

push event8bitmp3/musings-on-machines

8bitmp3

commit sha 7ddf8948611d66d4f1c4f9e13a43ea510c1cd6a3

Upload updated JAX quickstart with pmap notebook

view details

push time in 5 days

push event8bitmp3/musings-on-machines

8bitmp3

commit sha 4c81e100140aa5a20ab6a17953d3cf8a10e4be6e

Update Colab link in Swift for TensorFlow from The Foundations notebook

view details

push time in 5 days

push event8bitmp3/musings-on-machines

8bitmp3

commit sha cdca81dfea32c9f40a96370209b383d0c78e0d18

Upload auto-vectorization notebook - TF 2 and JAX

view details

push time in 5 days

PR opened tensorflow/tensorflow

Small update to tf.vectorized_map() and code syntax in docs in control_flow_ops.py

While reading about tf.vectorized_map(), I noticed the code syntax looked a bit off on the docs site. The research paper title should also be mentioned.

  • Added a few backticks in to some TF functions in control_flow_ops.py for consistent Markdown rendering on www.tensorflow.org
  • Also added a research paper title to the the plain arXiv link in the description (Auto-Vectorizing TensorFlow Graphs: Jacobians, Auto-Batching and Beyond).

Screenshot from the site: image

+9 -8

0 comment

1 changed file

pr created time in 5 days

push event8bitmp3/tensorflow

8bitmp3

commit sha 133fa6a1277c4c08596ad19ffac6d863afc421f5

Add the Auto-Vectorizing TF Graphs research paper title to tf.vectorized_map

view details

push time in 5 days

push event8bitmp3/tensorflow

8bitmp3

commit sha 958f4cb838eaac2d5e0eb99eede5b22502ff0858

Add the Auto-Vectorizing TF Graphs research paper title and link to arXiv

view details

push time in 5 days

push event8bitmp3/tensorflow

8bitmp3

commit sha 44573a2d3a22ad4a2ae6353876a1f1e60e7aceaf

Update docs in control_flow_ops.py for consistent Markdown rendering

view details

push time in 6 days

fork 8bitmp3/tensorflow

An Open Source Machine Learning Framework for Everyone

https://tensorflow.org

fork in 6 days

issue commenttensorflow/datasets

TFX support for TFDS

Thanks @Conchylicultor. It would be awesome if ExampleGen and TFDS were easily interoperable. Also, more examples in small samples would help across the TFDS site, similar to what @vijayphoenix suggested. And, since there are so many moving parts in TFX, maybe you can use references in the future Colab (docs/tfx.ipynb) to/from various TFX/TFDS pages - the search engine would pick up on them, I guess (and hope we don't have to go outside of TF.org to GitHub and search stuff under Issues or PRs often to find solutions.)

(Less related potential improvement suggestion: since the official TFDS guide on how to use params with MNIST is very general, it would be awesome to have more detailed docs similar to torchvision.datasets. It would reduce the time spent loading, augmenting, wrangling etc if we know what we're doing from the get-go. cc @dynamicwebpaige)

vijayphoenix

comment created time in 6 days

issue openedtensorflow/datasets

TensorFlow Datasets IMDB reviews dataset page - HTML in the description

See the rendering at the beginning of the IMDB reviews dataset page: https://www.tensorflow.org/datasets/catalog/imdb_reviews. The source code should be here https://github.com/tensorflow/datasets/blob/master/docs/catalog/imdb_reviews.md

Screenshot:

image

HTML line affected:

<meta itemprop="description" content="Large Movie Review Dataset.&#10;This is a dataset ... ;See [the guide](https://www.tensorflow.org/datasets/overview) for more&#10;informations on [tensorflow_datasets](https://www.tensorflow.org/datasets).&#10;&#10;" />

I couldn't find a bug by comparing imdb_reviews.md to the other raw Markdown files of other datasets at https://github.com/tensorflow/datasets/tree/master/docs/catalog. Can you check on your side?

created time in 6 days

issue commentgoogle/docsy

Failed to Transform ; file "stdin" ; File to Import not found or unreadable.

@dbiers I think there were similar issues here https://github.com/google/docsy/issues/235 and https://github.com/google/docsy/issues/242. By the way, @LisaFC thanks for your work on Docsy, this is awesome stuff.

I ran into a similar thing error message today and it turns out I didn't follow all the steps properly. I took some notes and just want to share them here, as some people may stumble upon this issue from time to time.

To avoid the Error building site: TOCSS... error when trying to build your site locally:

  • Remember to be using the extended version of Hugo. See the list of Hugo releases.
  • Don't forget to install PostCSS: $ sudo npm install -D --save autoprefixer and $ sudo npm install -D --save postcss-cli. (This is all in the official Prerequisites section.)
  • After you use git clone or git submodule add to add the Docsy theme to your /themes folder, don't forget to get local copies of the theme’s own submodules (git submodule update --init --recursive). (See the official Using the Docsy site as a Submodule.)
  • Remember to add the theme to config.toml by running $ echo 'theme = "docsy"' >> config.toml or simply add a new theme = "docsy" line to the TOML file.

Then try $ hugo server -D again.

Also, just like here in https://github.com/google/docsy/issues/270, it may help to upgrade Node.js to the latest version with the Node Package Manager (for example, by running $ sudo npm cache clean -f, $ sudo npm install -g n and $ sudo n stable).

dbiers

comment created time in 7 days

issue commentgoogle/docsy

Getting Started: Get local copies of the project submodules so you can build and run your site locally

@Olex2 I had a temporary issue with this step yesterday. Try again today. I suspect the issue was indeed because the remote end hung up and it couldn't transfer some submodules to you.

Just in case, here's what I did to start building a new site locally:

  • Downloaded the extended version of Hugo
  • Installed PostCSS with sudo npm install -D --save autoprefixer and sudo npm install -D --save postcss-cli.
  • Used git clone/git submodule add to add the Docsy theme to the /themes folder
  • Downloaded local copies of the theme’s own submodules with git submodule update --init --recursive
  • Added the theme to config.toml with echo 'theme = "docsy"' >> config.toml
  • Ran the server locally: hugo server -D
Olex2

comment created time in 7 days

issue openedkubeflow/website

GitHub Project boards for PRs, Issues to keep stale[bot] happy

Suggestion/idea: more active use of project management tools such as Github Project boards (as mentioned in Issue #345).

There are a bunch of stale issues and PRs across /website and elsewhere, and you may have noticed **the stale[bot] ** has been busy sending notifications recently.

GitHub Project boards can help see the big picture for managers like @jlewi and if folks can’t finish something they can unassign themselves from tasks and ask for help. They are kind of like Kanban boards for better project management.

For example, we already have a v1.1 board that’s quite active here: https://github.com/orgs/kubeflow/projects/36.

(This is related to v1.1 release too - including docs stuff - I think kubeflow/website#1984)

For more information on Project boards see: https://help.github.com/en/github/managing-your-work-on-github/about-project-boards

Project boards are made up of issues, pull requests, and notes that are categorized as cards in columns of your choosing. You can drag and drop or use keyboard shortcuts to reorder cards within a column, move cards from column to column, and change the order of columns.

Project board cards contain relevant metadata for issues and pull requests, like labels, assignees, the status, and who opened it. You can view and make lightweight edits to issues and pull requests within your project board by clicking on the issue or pull request's title.

Let’s discuss Project boards here and how/if they can assist with seeing and attending a bunch of moving parts at Kubeflow across various repos.

created time in 7 days

issue commentgoogle/jax

Using non-nvidia GPU

The AMDGPU backend for XLA is being actively developed

That's good to know @jekbradbury, thanks

ricardobarroslourenco

comment created time in 8 days

issue commentkubeflow/community

GitHub Discussions as a centralized KF community forum

Before we turn on GitHub discussions; I would like to see some guidelines for when to use slack, mailing list, GitHub Issue, vs. GitHub discussion.

Lets use this thread to discuss and then we can add it to the contributor page.

There should be similar READMEs for Contributing in other projects where we can find some samples of we can borrow. I’ll do some searching and get back to you.

@jlewi Can I also introduce an idea of more active use of project management tools such as Github Project(s)? There are a bunch of stale issues such as this one I came across randomly because the stale[bot] has been busy sending notifications https://github.com/kubeflow/website/issues/1412 Project boards can help seeing the big picture and if folks can’t finish something they can de-assign themselves and ask for help.

For example, we already have a v1.1 board that’s quite active here https://github.com/orgs/kubeflow/projects/36.

(This is related to v1.1 release too - including docs stuff - I think https://github.com/kubeflow/website/issues/1984)

For more info: https://help.github.com/en/github/managing-your-work-on-github/about-project-boards

Project boards are made up of issues, pull requests, and notes that are categorized as cards in columns of your choosing. You can drag and drop or use keyboard shortcuts to reorder cards within a column, move cards from column to column, and change the order of columns.

Project board cards contain relevant metadata for issues and pull requests, like labels, assignees, the status, and who opened it. You can view and make lightweight edits to issues and pull requests within your project board by clicking on the issue or pull request's title.

8bitmp3

comment created time in 9 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

Done @skye.

New:

  • [x] Set the default hardware in the notebook: GPU ("accelerator": "GPU" in JSON speak)
  • [x] Import jax libs again when configuring the TPU driver after runtime switching in the pmap section
  • [x] Add a reference to the notebook in docs/index.rst, since JAX Quickstart is not under Tutorials any more:
For an introduction to JAX, start at the `JAX GitHub page <https://github.com/google/jax>`_. Then, try it yourself with the `JAX Quickstart notebook in Google Colab <https://colab.research.google.com/github/google/jax/blob/master/docs/notebooks/quickstart.ipynb>`_.

  • [x] Update READMEs to "2020" if that's 👍

As before:

  • [x] Move all the pmap code back to code cells
  • [x] Add quickstart.ipynb to exclude_patterns = [ ... ] in conf.py

Thanks @skye. It's ready for your review.

8bitmp3

comment created time in 9 days

push event8bitmp3/jax

8bitmp3

commit sha d9d1836eb4ea796e1bddf33e63e94870a5911af3

Add pmap and TPU power back to JAX Quickstart notebook

view details

push time in 9 days

push event8bitmp3/jax

8bitmp3

commit sha 748592ff098104d5866b3a9be4302b821b1b32a0

Add JAX Quickstart to exclude_patterns in conf.py, update index.rst

view details

push time in 9 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

@skye That's awesome, thank you so much for the feedback 🙏

  • [x] Move all the pmap code back to code cells
  • [x] Add quickstart.ipynb to exclude_patterns = [ ...] in conf.py
  • [ ] NEW ISSUE (see below) Save the notebook as a notebook with outputs - Set the default hardware in the notebook: CPU or TPU? (See Solution 1 and 2 below)
  • [ ] NEW FEATURE: Add more NN lib references—Google Brain's Flax and DeepMind's Rlax—to ... For a neural network example ... or the much more capable [Trax library](https://github.com/google/trax/) - yay or nay, LMK

New issue: If you set the default hardware to TPU in the beginning and run @jit, @grad, and @pmap stuff—everything is fine as expected. After running these computation, setting the TPU driver as the backend creates a new issue: you get only one device. If you run a pmap on anything (e.g. lambda x: x ** 2) with the numbers of XLA machines set to 8—as before—via jnp.arange, you're told you only have one device available (The pmap Cookbook has an example with 7):

...
/usr/local/lib/python3.6/dist-packages/jax/interpreters/pxla.py in parallel_callable(fun, backend, axis_name, axis_size, global_axis_size, devices, name, mapped_invars, donated_invars, *avals)
    785              "devices are available (num_replicas={}, num_partitions={})")
    786       raise ValueError(msg.format(num_global_shards, xb.device_count(backend),
--> 787                                   num_global_replicas, num_partitions))
    788 
    789     # On a single host, we use the platform's default device assignment to

ValueError: compiling computation that requires 8 logical devices, but only 1 XLA devices are available (num_replicas=8, num_partitions=1)

Solution 1: Run the notebooks with CPUs until you reach pmap, switch to TPUs, set the TPU backend, run pmap example cells 👍

Solution 2: If TPU is enabled from the beginning, run the TPU driver backend config cell first, perform the rest of the calculations thereafter 🤔

Solution 2 creates a less desirable UX by undoing this:

Also, even though we could switch to TPU at the beginning with this scheme, I like how you do it here and switch just above the pmap examples. That way readers won't be scared away by the preamble at the beginning, and we get the added educational benefit.

WDYT

Thank you!

(What if TPUv2 allocation is carried out with RL (Hierarchical Planning for Device Placement.))

8bitmp3

comment created time in 9 days

startedgoogle/caliban

started time in 9 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

@skye Check out the new commit that fixes external link rendering in RTD/Sphinx (see details below). Let me know what you think about this and other workarounds. I've built the Docs site locally and all looks OK so far.

image

Thanks @shoyer for spotting this link issue in Sphinx/reStructuredText. Another JAX notebook here had a similar issue that I spotted recently and fixed by attaching the hyperlinks to plain words (see https://github.com/google/jax/pull/3502/commits/86fcc77710a9cae27d9caa536709b09a8c7efce4 and https://github.com/google/jax/pull/3501/commits/f351da772435cdd553ecc02921383aef66b2001f)

In the Quickstart, I use the following format for functions and methods that have API doc links:

[pmap()](https://jax.readthedocs.io/...)

which will look like plain text with round brackets: e.g. ohFunctionMyFunction() — notice the lack of back ticks. They causes the original issues (see below).

On the other hand, they're blue and not red.

More background:

For external links, Sphinx follows this rule, which already uses back ticks:

This is the preferred way in RTD/Sphinx:

`pmap <https://jax.readthedocs.io/...>`_

Meanwhile, this clashes with standard Markdown, which Sphinx supports, just not fully:


This is normal Markdown outside of RTD/Sphinx:

[`pmap`](https://jax.readthedocs.io/...)

(See: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#external-links)

So, adding more back ticks around the name of functions that we want to link the API docs to only breaks the sequence/links/everything else.

For everything else that doesn't require external links, we leave them as before: jax.random, vmap, @jit (vs @jit), etc.

8bitmp3

comment created time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha 415111d3f1e18fc2fb1c11c94b0a4158115ef15f

Fix RTD/Sphinx's markdown style for better rendering (JAX API doc references)

view details

push time in 11 days

pull request commentgoogle/jax

Update JAX quickstart, test conf.py for proper Markdown support

Just testing docs by following https://jax.readthedocs.io/en/latest/developer.html#documentation-building-on-readthedocs-io (test-docs branch). Following this advice https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html#using-markdown-with-sphinx as links for API references with back ticks don't render well in reStructuredText. Trying to fix by explicitly enabling support Markdown and reStructuredText in conf.py.

8bitmp3

comment created time in 11 days

PR opened google/jax

Update JAX quickstart, test conf.py for proper Markdown support
+696 -119

0 comment

2 changed files

pr created time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha e1ae299681ef62f65a84a3c5586dda89443a4945

Update JAX quickstart, test conf.py for proper Markdown support

view details

push time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha 3e9eb7d53f01dfa9accf17ba91e5b51eb25a3885

Update RTD conf.py to support Markdown and reStructuredText

view details

push time in 11 days

startedgoogle-research/dex-lang

started time in 11 days

issue commentgoogle-research/dex-lang

[Feature Request] Dex support in Jupyter notebooks.

However, Jupyter is so common that even if we're hoping that we can come up with something better, it might still make sense to integrate with that (Dex on Colab?).

+1 👍

Just out of curiosity, have you discussed this with [at] colaboratory-team? Or would it make sense to have a separate thing like swift-jupyter that works as a sort of add-on (both in Jupyter and Colab)?

(From personal experience and after reading N number of StackOverflow comments/GH issues/How to Get Started blog posts covering various ML projects, "how do I get started quickly" is still a major thing in 2020. So, in case there's a (not an immediate) priority at the Dex team to get outside user feedback, making the installation process less "complex" would be kind of awesome. Right now, we have to set up stack, then llvm-9-dev (or building from source) > make. If someone is not as curious, they may move on to another shiny thing :-). So, having a Jupyter integration in the short- to medium-term would probably reduce this initial friction, so new users/researchers can get straight to How To's, Tutorials and whatnot. Alternatively, maybe something as simple as apt-get, brew or pip3 install?)

dynamicwebpaige

comment created time in 11 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

With import ☕️, I got the build to work.

Given the lack of pmap support in RTD, is this (temp) solution alright with the team @skye @shoyer @mattjj ?

  • Switched the default hardware to CPU in Colab.
  • Added instructions on what to do to run pmap examples (click on run in Colab, etc) .
  • Converted all the TPU driver config cell and the rest of the pmap code to markdown with example outputs.
    • (I looked at the logs of failed builds and noticed that RTD trips when attempting to run unfamiliar cells and converting them to HTML.)

Read the Docs build should recognize this as simple markdown. It's a temp workaround.

(Further down the line: I can investigate how to run Notebooks in other OS doc building solutions, such as Hugo with Google's Docsy theme - used by Kubeflow and Kubernetes projects. Apparently, their build speed is good (the site is static too), and Hugo may have notebook-integration.)

8bitmp3

comment created time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha ac0219c6018017e843b8b4e8b72d4ba9d4ebf885

Convert vmap (parallelization) Python code to markdown

view details

push time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha d5c6160c849552ab49d1531c9e6264cdb6d337c9

Uncomment the TPU_DRIVER_MODE cell

view details

push time in 11 days

push event8bitmp3/jax

8bitmp3

commit sha 769df92af429fa1703971478a7409a5fd92d2b64

Change hardware to CPU in JAX quickstart notebook

view details

push time in 11 days

issue commentkubeflow/website

[Release 1.1] Release Website 1.1

@jlewi Has the date for v1.1 been set in stone yet? Cheers

jlewi

comment created time in 11 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

@shoyer maybe I can switch the default hardware in the Colab notebook to CPU while keeping the output. Then commit that new ipynb here. We can add a note that says if you want to run pmap, click Open in Colab at the top of the page. WDYT

8bitmp3

comment created time in 11 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

@skye I can set the default Colab notebook accelerator to GPU and move the extra TPU settings cell down to the vmap section (you can optionally run it). That way, most of the notebook shouldn’t break the RTD, right? 🤔

8bitmp3

comment created time in 12 days

pull request commentgoogle/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

@skye just a thought:

Would adding the quickstart to exclude_patterns in https://github.com/google/jax/blob/master/docs/conf.py make sense? These notebooks have long computations, apparently:

exclude_patterns = [
    # Slow notebook: long time to load tf.ds
    'notebooks/neural_network_with_tfds_data.ipynb',
    # Slow notebook
    'notebooks/Neural_Network_and_Data_Loading.ipynb',
    'notebooks/score_matching.ipynb',
    'notebooks/maml.ipynb',
    # Fails with shape error in XL
    'notebooks/XLA_in_Python.ipynb',
    # Sometimes sphinx reads its own outputs as inputs!
    'build/html',
] 

Also, to keep the original link/reference on the ReadTheDocs site, you could manually edit https://github.com/google/jax/blob/master/docs/index.rst or something like that? I'm not too familiar with this process yet.

image

Are there any plans to add any pmap notebooks in the future?

8bitmp3

comment created time in 12 days

PR opened google/jax

Update JAX Quickstart with parallelization (`pmap`), other changes

PR ref: https://github.com/google/jax/issues/3458

  • Added a section covering pmap (using accelerators in parallel) with the material from @skye NeurIPS 2019 demo, main JAX GitHub README, pmap API docs
  • Added annotation to code examples to help new users
  • Added that JAX is a system for general numerical computing, since it's not just for machine learning research (ref: NeurIPS 2019 demo)
  • Expanded the Hessian example for the vectorized map (vmap) - please check if it's fine
  • Added more info on the fwd/reverse-mode Jacobian matrices, using The Autodiff Cookbook as a reference (also fixed two small links in that notebook as a result)
  • Changed importing JAX NumPy to as jnp instead of np in line with other examples (we have ordinary NumPy as onp, so it may be confusing otherwise for new users)
  • Mentioned, just in case, that vmap is a lot like a regular Python map (but...)
  • Added links to source code/APIs (e.g. device_put, vjp, @jit etc etc
  • Expanded the intro, some other paragraphs included a small "table of contents" thing
  • Added that "JAX is fast, easy to use, and uses a functional programming model..."
  • Added more info about JIT (almost no handwritten kernels, you get almost "eager-mode" performance)
  • Added a sentence about how user-friendly the API is ("pass a function into a transform and get a function out...")
  • Made other minor changes using Google's doc style guide (addressing the user as "you" instead of "we", and other stuff)

Most of these are just UX improvement suggestions. Feel free to rip them apart/propose new changes/propose to keep the old stuff.

cc @mattjj @shoyer

Thanks for your work 👍

+785 -131

0 comment

1 changed file

pr created time in 12 days

push event8bitmp3/jax

8bitmp3

commit sha b764dc715d5c1ee4c128e83c879d4b9adf4217c9

Update JAX Quickstart with parallelization (`pmap`), other changes

view details

push time in 12 days

fork 8bitmp3/jax

Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

fork in 12 days

push event8bitmp3/jax

8bitmp3

commit sha 70be239ae3800c4858c32312dd859d00f9d64581

Update JAX quickstart - Part 2 with pmap

view details

push time in 12 days

issue commentkubeflow/website

[Release 1.1] Release Website 1.1

Will share a list of proposals soon hopefully (ref: https://github.com/kubeflow/website/issues/1984#issuecomment-644907943) Got Hugo and the doc site working locally.)

jlewi

comment created time in 12 days

issue commentkubeflow/community

Additional calendar admins needed

@jlewi Maybe we should also update the format/expand the community page https://www.kubeflow.org/docs/about/community/ and include a list of all SIGs in addition to the existing Slack channels with all the details about how people can participate.

For instance, we could use something similar to https://www.tensorflow.org/community/ that leads to > https://www.tensorflow.org/community/forums > https://www.tensorflow.org/community/forums#special_interest_groups (there's a sense of flow).

Things are little fragmented right now but the users are growing, so it's all good, just an admin thing. Just got an email from Model Management SIG from @karlschriek - there's an issue with accessing the calendar. (I can help with all this later - right now there're things on https://github.com/kubeflow/website that require attention that I signed up for)

jlewi

comment created time in 12 days

push event8bitmp3/jax

8bitmp3

commit sha 24a3c9d8ad76d40e2dfa8ac54c88fa6e6c8f5f29

Update JAX Quickstart - part 1.1 with vmap

view details

push time in 13 days

push event8bitmp3/jax

8bitmp3

commit sha 8c312ed359b3f155a7f004292ddbfaac8df2ea93

Update JAX Quickstart - part 1

view details

push time in 13 days

fork 8bitmp3/fast_template

A template for really easy blogging with GitHub Pages

https://www.fast.ai/2020/01/16/fast_template/

fork in 13 days

PR opened google/jax

Another small fix of the link rendering in the Autodiff Cookbook - vmap transformation

@shoyer Thanks for approving PR https://github.com/google/jax/pull/3501 - this one is similar. Backticks inside square brackets don't render well in Sphinx/ReadTheDocs for some reason when we add hyperlinks in markdown. (I am learning about auto-vectorization.)

image

image

+1 -1

0 comment

1 changed file

pr created time in 13 days

push event8bitmp3/jax

8bitmp3

commit sha 86fcc77710a9cae27d9caa536709b09a8c7efce4

Another small fix of the link rendering in the Autodiff Cookbook - vmap transformation

view details

push time in 13 days

delete branch 8bitmp3/tensorflow

delete branch : patch-1

delete time in 13 days

delete branch 8bitmp3/swift-apis

delete branch : patch-2

delete time in 13 days

delete branch 8bitmp3/swift-apis

delete branch : patch-3

delete time in 13 days

delete branch 8bitmp3/swift-apis

delete branch : patch-4

delete time in 13 days

delete branch 8bitmp3/swift-apis

delete branch : patch-5

delete time in 13 days

delete branch 8bitmp3/swift-models

delete branch : attempt1

delete time in 13 days

delete branch 8bitmp3/jax

delete branch : patch-3

delete time in 13 days

PR opened google/jax

Small fix of the link rendering in the Autodiff Cookbook that refers to Autograd's reverse-mode Jacobian

Markdown stuff - hopefully this fixes the rendering in Sphinx/ReadTheDocs of a link that refers to Autograd's reverse-mode Jacobian method.

I was learning about mixing jit with full Jacobian with jacfwd and jacrev noticed the following:

image

And in another browser (with extensions off):

image

PS I assume the link was referring to:

@unary_to_nary
def jacobian(fun, x):
  
  vjp, ans = _make_vjp(fun, x)
  ...
+1 -1

0 comment

1 changed file

pr created time in 13 days

push event8bitmp3/jax

8bitmp3

commit sha f351da772435cdd553ecc02921383aef66b2001f

Fix a link rendering to Autograd's reverse-mode Jacobian method

view details

push time in 13 days

issue commenttensorflow/tensorflow

TensorFlow is broken, unusable on Raspberry Pi

@JosimarReis @FlorinAndrei I have a RasPi Zero, so it'd be hard to reproduce this for me but, take a look at https://github.com/tensorflow/tensorflow/issues/35909. They may have had a similar issue with loading H5 models. The solution that worked there was getting the h5py package via the APT package manager: sudo apt-get install python3-h5py. Judging by your bug report, @FlorinAndrei, you installed h5py with pip.

Note that this was performed in Linux Raspbian and @FlorinAndrei you have Raspbian Buster (not an expert in the diff of those distros).

... From the error log i can see that saved_model- face_recognition_model.h5 does not exist, make sure you import the file to the right path and then try loading the model using load_model...

@niccle27 said:

... the path was alright. The problem concern the h5py package installed using pip on the raspberry pi. Apparently there seem to be some issue with it. I managed to fix it by installing using the debian repository : sudo apt-get install python3-h5py.

However, this solution didn't seem to work for some others, like @JinkaiGUAN.

@petewarden Maybe you or someone from the TF Lite team can confirm this is an outstanding bug and apt-get is the preferred package installer for now? cc @dynamicwebpaige

FlorinAndrei

comment created time in 13 days

issue commentkubeflow/community

Additional zoom hosts needed

@krishnadurai while recording may not be available right now—I think some Google-led ones may need to be reviewed for content before being released—we can do our best maintain the notes in the doc(s) like in some other SIGs. If you need assistance, I can be a co-host for KF on-prem, as the time zone allows it. cc @jlewi

jlewi

comment created time in 14 days

pull request commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

Nicer and simpler sentences, thanks for the help, @skye. PR updated.

8bitmp3

comment created time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 Computations involving uncommitted data are performed on the default device and the results are uncommitted on the default device.  Data can also be placed explicitly on a device using :func:`jax.device_put`-with a ``device`` parameter, in which case if becomes **committed** to the device:+with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:  >>> import jax >>> from jax import device_put >>> print(device_put(1, jax.devices()[2]).device_buffer.device())  # doctest: +SKIP gpu:2 -Computations involving some committed inputs, will happen on the-committed device, and the result will be committed on the-same device. It is an error to invoke an operation on-arguments that are committed to more than one device.+Computations involving some committed inputs will happen on the+committed device and the result will be committed on the+same device. You should not invoke an operation on+arguments that are committed to more than one device—it will lead to errors. -You can also use :func:`jax.device_put` without a ``device`` parameter,-in which case the data is left as is if already on a device (whether-committed or not), or a Python value that is not on any device is-placed uncommitted on the default device.+You can also use :func:`jax.device_put` without a ``device`` parameter. In this case+the data is left as is if it's already on the device (committed or not), or a Python +value—that is not on any device—is placed uncommitted on the default device.

⚡️

8bitmp3

comment created time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 Computations involving uncommitted data are performed on the default device and the results are uncommitted on the default device.  Data can also be placed explicitly on a device using :func:`jax.device_put`-with a ``device`` parameter, in which case if becomes **committed** to the device:+with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:  >>> import jax >>> from jax import device_put >>> print(device_put(1, jax.devices()[2]).device_buffer.device())  # doctest: +SKIP gpu:2 -Computations involving some committed inputs, will happen on the-committed device, and the result will be committed on the-same device. It is an error to invoke an operation on-arguments that are committed to more than one device.+Computations involving some committed inputs will happen on the+committed device and the result will be committed on the+same device. You should not invoke an operation on+arguments that are committed to more than one device—it will lead to errors. -You can also use :func:`jax.device_put` without a ``device`` parameter,-in which case the data is left as is if already on a device (whether-committed or not), or a Python value that is not on any device is-placed uncommitted on the default device.+You can also use :func:`jax.device_put` without a ``device`` parameter. In this case+the data is left as is if it's already on the device (committed or not), or a Python +value—that is not on any device—is placed uncommitted on the default device. -Jitted functions behave as any other primitive operation-(will follow the data and will error if invoked on data-committed on more than one device).+Jitted functions behave like any other primitive operations—they will follow the +data and will show errors if invoked on data committed on more than one device.

👍

8bitmp3

comment created time in 14 days

push event8bitmp3/jax

8bitmp3

commit sha 063c99048c157241646116359035793606a810e5

Update JAX FAQ with Skye's suggestions

view details

push time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 For a worked-out example, we recommend reading through  If you are getting an error that a library function is called with *"Abstract tracer value encountered where concrete value is expected"*, you may need to-change how you invoke JAX transformations. We give first an example, and-a couple of solutions, and then we explain in more detail what is actually+change how you invoke JAX transformations. Below, you'll first go over such example and then+a couple of possible solutions. Then, you'll learn the details of what is actually

So much better. Thanks!

8bitmp3

comment created time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 Computations involving uncommitted data are performed on the default device and the results are uncommitted on the default device.  Data can also be placed explicitly on a device using :func:`jax.device_put`-with a ``device`` parameter, in which case if becomes **committed** to the device:+with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:  >>> import jax >>> from jax import device_put >>> print(device_put(1, jax.devices()[2]).device_buffer.device())  # doctest: +SKIP gpu:2 -Computations involving some committed inputs, will happen on the-committed device, and the result will be committed on the-same device. It is an error to invoke an operation on-arguments that are committed to more than one device.+Computations involving some committed inputs will happen on the+committed device and the result will be committed on the+same device. You should not invoke an operation on+arguments that are committed to more than one device—it will lead to errors. -You can also use :func:`jax.device_put` without a ``device`` parameter,-in which case the data is left as is if already on a device (whether-committed or not), or a Python value that is not on any device is-placed uncommitted on the default device.+You can also use :func:`jax.device_put` without a ``device`` parameter. In this case+the data is left as is if it's already on the device (committed or not), or a Python +value—that is not on any device—is placed uncommitted on the default device. -Jitted functions behave as any other primitive operation-(will follow the data and will error if invoked on data-committed on more than one device).+Jitted functions behave like any other primitive operations—they will follow the +data and will show errors if invoked on data committed on more than one device.  (As of April 2020, :func:`jax.jit` has a `device` parameter-that affects slightly the device placement. That parameter+that affects the device placement slightly. That parameter

👍

8bitmp3

comment created time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 Computations involving uncommitted data are performed on the default device and the results are uncommitted on the default device.  Data can also be placed explicitly on a device using :func:`jax.device_put`-with a ``device`` parameter, in which case if becomes **committed** to the device:+with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:

✓ Awesome

8bitmp3

comment created time in 14 days

Pull request review commentgoogle/jax

Update JAX FAQ.rst, jax.device_put

 Computations involving uncommitted data are performed on the default device and the results are uncommitted on the default device.  Data can also be placed explicitly on a device using :func:`jax.device_put`-with a ``device`` parameter, in which case if becomes **committed** to the device:+with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:  >>> import jax >>> from jax import device_put >>> print(device_put(1, jax.devices()[2]).device_buffer.device())  # doctest: +SKIP gpu:2 -Computations involving some committed inputs, will happen on the-committed device, and the result will be committed on the-same device. It is an error to invoke an operation on-arguments that are committed to more than one device.+Computations involving some committed inputs will happen on the+committed device and the result will be committed on the+same device. You should not invoke an operation on+arguments that are committed to more than one device—it will lead to errors.

I agree ⚡︎

8bitmp3

comment created time in 14 days

pull request commentkubeflow/kubeflow

Update docs for releasing the website and prune root OWNERs file

/assign @8bitmp3 /assign @Bobgy

Ok!

jlewi

comment created time in 14 days

PR opened google/jax

Update JAX FAQ.rst, jax.device_put

Hey team, this PR creates a few minor changes to make JAX FAQ hopefully slightly better in terms of readability and UX. I was learning about data placement on devices with jax.device_put and decided to make some improvements by applying a few things, as I got slightly lost, hence:

Data can also be placed explicitly on a device using :func:`jax.device_put`
- with a ``device`` parameter, in which case if becomes **committed** to the device:
+ with a ``device`` parameter, in which case it—the data—becomes **committed** to the device:

Used the Google doc writing style guide here and other tech writing stuff. Cheers & thanks for your work

+22 -24

0 comment

1 changed file

pr created time in 14 days

push event8bitmp3/jax

8bitmp3

commit sha af5ecd376ced6f0c4c96554360c7b11d802907a5

Update JAX FAQ.rst

view details

push time in 14 days

issue commentkubeflow/website

[gcp] granting users to kubeflow permission doc can hardly be found

Hey @Bobgy, do you think the Add Users to Kubeflow on GKE section deserves its own page, such as Authenticating Kubeflow to GCP, which lives here: https://www.kubeflow.org/docs/gke/authentication/? I ran "add users to kubeflow" in the internal search powered by Google and there was nothing on page 1:

image

Bobgy

comment created time in 15 days

issue commentkubeflow/website

[Release 1.1] Release Website 1.1

Same, "Not Found".

jlewi

comment created time in 15 days

PR closed google/jax

Update Random Numbers link in the JAX quickstart notebook cla: yes

This PR fixes the link in the JAX quickstart notebook in:

"We’ll be generating random data in the following examples. One big difference between NumPy and JAX is how you generate random numbers. For more details, see the README."

Issue: The README link originally took you to https://jax.readthedocs.io/en/README.md, which does not exist:

<center>image</center>

If you click on it in Colab, it also doesn't work (because of its form: ../../README.md).

Solution: Perhaps a better way is to add a new link takes you to an explanation of how JAX random works (the Mersenne Twister PRNG) and its issues:

For more details, see the Common gotchas in JAX."

The new link directs you straight to: #🔪-Random-Numbers.

Let me know what you think. Cheers!

(I'm working on adding pmap for the Quickstart, as discussed in https://github.com/google/jax/issues/3458.)

+2 -2

1 comment

1 changed file

8bitmp3

pr closed time in 15 days

pull request commentgoogle/jax

Update Random Numbers link in the JAX quickstart notebook

Closing this as it should become part of the Quickstart with pmap https://github.com/google/jax/issues/3458.

Fyi, proposing to expand that section to something like:

Note that one big difference between NumPy and JAX is how you generate random numbers with JAX's pseudo-random number generator (PRNG). JAX PRNG = threefry counter PRNG + a functional array-oriented splitting model. (Also see the Common Gotchas in JAX.)

Digging out https://github.com/google/jax/blob/master/design_notes/prng.md into the open, it's a cool document.

8bitmp3

comment created time in 15 days

issue commentkubeflow/kubeflow

service istiod not found error at "kfctl 1.0.2 with kfctl_k8s_istio.v1.0.2.yaml "

Hi @insoo67park, can you give us a step-by-step flow of how you installed KF 1.0.2? There're various deployment options on https://www.kubeflow.org/docs/started/getting-started/, so it'd be good if you specify how you approached it, so we can help.

istiod is new daemon service from istio version 1.5

The istiod control plane was indeed introduced from Istio v1.5 encapsulating Pilot, Citadel, etc.

insoo67park

comment created time in 15 days

issue commentkubeflow/kubeflow

Does MiniKF run on anything?

@gitpushdashf for Ubuntu 18 and Min 19, do you get a "Vagrant version too old" (< v2.2.9) error when running vagrant init arrikto/minikf?

gitpushdashf

comment created time in 15 days

issue commentkubeflow/community

Additional zoom hosts needed

@jlewi from what I understand, they're managed by the host (at least one of the Googlers) and then stored on a GDrive with a link shared on a public Doc. May I introduce you to @ematejska and @dynamicwebpaige, who have hosted and are hosting awesome TensorFlow meetings. Maybe you can speak to them internally @ Google. 🙌

jlewi

comment created time in 16 days

issue commentkubeflow/community

Additional zoom hosts needed

@jlewi I was just going to ask about that - https://www.blog.google/products/meet/bringing-google-meet-to-more-people/

We have been using Google Hangouts and now—Google Meet—for TensorFlow-related design meetings. There is no 40-minute limit like in the free Zoom video chat but we stick to 60 mins max.

@krishnadurai I think we just got cut off from the KF on-prem Zoom as soon as the limit was mentioned. Shall we explore Google Meet but have a policy of 1 hour max? (Meetings can also be recorded.)

jlewi

comment created time in 16 days

PR opened google/jax

Update Random Numbers link in the JAX quickstart notebook

This PR fixes the link in the JAX quickstart notebook in:

"We’ll be generating random data in the following examples. One big difference between NumPy and JAX is how you generate random numbers. For more details, see the README."

Issue: The README link originally took you to https://jax.readthedocs.io/en/README.md, which does not exist:

<center>image</center>

If you click on it in Colab, it also doesn't work (because of its form: ../../README.md).

Solution: Perhaps a better way is to add a new link takes you to an explanation of how JAX random works (the Mersenne Twister PRNG) and its issues:

For more details, see the Common gotchas in JAX."

The new link directs you straight to: #🔪-Random-Numbers.

Let me know what you think. Cheers!

(I'm working on adding pmap for the Quickstart, as discussed in https://github.com/google/jax/issues/3458.)

+2 -2

0 comment

1 changed file

pr created time in 16 days

push event8bitmp3/jax

8bitmp3

commit sha f1c8196d1a1c165d01e4a3a02bca561dcb283c22

Update Random Numbers link in the JAX quickstart notebook

view details

push time in 16 days

fork 8bitmp3/jax

Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

fork in 16 days

issue commenttensorflow/swift

macOS GPU Support

There's a community supported TF+AMD though (with ROCm and TFrocm https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/issues/362).

Gerzer

comment created time in 16 days

issue commenttensorflow/swift

macOS GPU Support

@GauthamSree This topic may have less to do with TensorFlow, S4TF and PyTorch and more to do with software and driver development by AMD. So, as someone mention in TensorFlow's SIG Build meeting more than a year ago, AMD had been trying to add GPU support for over 10 months at the time. Why do Macs not use NVidia? Could be the history of drivers too.

Gerzer

comment created time in 16 days

issue commenttensorflow/swift

No such module 'FoundationNetworking'

Hey @Zandew! Do import TensorFlow and basic tensor operations work using the CL tool in your environment? If you can provide more context that'd be awesome. I assume you're running import FoundationNetworking or something. Thanks

Zandew

comment created time in 16 days

issue openedkubeflow/community

GitHub Discussions as a centralized KF community forum

As the community is growing, there's more and more stuff being discussed under Issues and on Slack channels. GitHub Discussions can potentially help. It should have some the main features of Discourse—it's a message board/forum—which PyTorch and fast.ai use effectively for engaging with the community And Discussions shouldn't need hosting, since it's already here on GitHub (unlike Discourse). And, it should save history unlike the free version of Slack which Kubeflow currently uses.

Recent example: Google Brain's JAX team (cc @hawkinsp who is a maintainer there) https://github.com/google/jax/discussions.

I assume there is/will be integration with Projects ("Trello"), PRs, Issues, since it's on GitHub already.

What are you thoughts? 👍🙌👎🤔 Cheers

Related:

  • https://github.com/kubeflow/community/issues/326 by @jlewi about the Slack channel creation, maintaining/administering
  • https://help.github.com/en/github/building-a-strong-community/about-team-discussions

created time in 16 days

issue commenttensorflow/swift-apis

In Colab using 'x10_training_loop' leads to "error: Couldn't lookup symbols:"

@mikowals I noticed that examples in the swift-models repo, such as the BERT-Cola and others, set the calculations to be run on an accelerator via XLA on the X10 backend with:

...
let device = Device.defaultXLA
...

And eager mode is done via device = Device.defaultTFEager.

So, if you run Device.defaultXLA instead, it should be error-free and recognizing you have a Colab GPU/TPU with an XLA backend:

import TensorFlow
import x10_training_loop 

Device.defaultXLA

Output:

...
▿ Device(kind: .GPU, ordinal: 0, backend: .XLA)
  - kind : TensorFlow.Device.Kind.GPU
  - ordinal : 0
  - backend : TensorFlow.Device.Backend.XLA

However, as you already mentioned, Device.trainingDevices will return:

error: Couldn't lookup symbols:
  static (extension in x10_training_loop):TensorFlow.Device.trainingDevices.getter : Swift.Array<TensorFlow.Device>
  static (extension in x10_training_loop):TensorFlow.Device.trainingDevices.getter : Swift.Array<TensorFlow.Device>

(I'm sure @BradLarson @saeta and others can explain this better.)

mikowals

comment created time in 16 days

issue commenttensorflow/swift

Installation verification tool

@texasmichelle Reducing any friction, especially during the setup process, would definitely help new and existing users. First experience with a new platform matters. (Nice to haves: can verify/describe/list components, check the health, offer to upgrade/reinstall bits, if necessary).

texasmichelle

comment created time in 17 days

pull request commenttensorflow/swift-models

Replace WeightDecayedAdam with an x10 optimizer for BERT-CoLA

This is an incredible contribution for your SECOND DAY on the team 🎉 Amazing!!

I missed the news @texasmichelle . Congrats on joining the team @shadaj ! This PR is awesome 👍 Let me know if you have time to answer a few questions. If you have time can you go over if:

  1. it follows closely the TF implementation of "Adam4BERT" ;
  2. there is no bias compensation similar to BertAdam by PyTorch, which is based on TensorFlow's Adam optimizer (I read about it on HuggingFace's repo) (assuming the weight decay thing is fixed, just like in BertAdam); and
  3. the X10 optimizer version considers the memory efficiency vs performance/results trade-off that the original Google work mentioned on GitHub?

Also, is using the name x10_optimizers_optimizer—especially in the import LibraryName context—permanent and are you open to naming suggestions? Naming things is hard 🙂 (cc @saeta).

Sorry if this has been covered before and I missed it. Cheers!

shadaj

comment created time in 17 days

startedistio/istio

started time in 18 days

issue commentkubeflow/website

[Release 1.1] Release Website 1.1

@jlewi Will you be open to accepting PRs about streamlining Kubeflow's Getting Started section? I think it was @LyleHenkeman who posted about it here. If you are open to improvements, I can work on it and submit a PR. @LyleHenkeman - I did spend a bit of time working through the steps because I was initially interested in the KF CLI and Pipelines, so I think I get why the current guide is a bit "busy". Cheers

jlewi

comment created time in 18 days

pull request commentkubeflow/website

Update do Microk8s.enable Kubeflow docs

Thanks @janeman98

nit: the code block is not aligned properly. You can add 4 spaces before the code block.

Just double checked and spaces before code blocks are indeed used on Kubeflow's site undernearth numbered sequences, bulletpoints, etc. For example: image

RFMVasconcelos

comment created time in 18 days

pull request commentkubeflow/website

Update do Microk8s.enable Kubeflow docs

Thanks @janeman98

nit: the code block is not aligned properly. You can add 4 spaces before the code block.

I think the Markdown stuff is rendered differently in Hugo docsy theme that Kubeflow uses. Therefore, adding 4 spaces/tabs to move code block to the right would not be useful here. See https://www.kubeflow.org/docs/started/workstation/getting-started-multipass/:

image

However, I do agree that usually it'd look neater if you use code blocks that follow numbered sequences, etc.

RFMVasconcelos

comment created time in 18 days

more