Flake8 errors for article_recommender.py

news-article-nlp/libraries/article_recommender.py:1:80: E501 line too long (83 > 79 characters)
news-article-nlp/libraries/article_recommender.py:4:80: E501 line too long (92 > 79 characters)
news-article-nlp/libraries/article_recommender.py:5:80: E501 line too long (88 > 79 characters)
news-article-nlp/libraries/article_recommender.py:6:80: E501 line too long (86 > 79 characters)
news-article-nlp/libraries/article_recommender.py:16:1: E302 expected 2 blank lines, found 1
news-article-nlp/libraries/article_recommender.py:17:80: E501 line too long (83 > 79 characters)
news-article-nlp/libraries/article_recommender.py:20:80: E501 line too long (93 > 79 characters)
news-article-nlp/libraries/article_recommender.py:21:80: E501 line too long (92 > 79 characters)
news-article-nlp/libraries/article_recommender.py:24:80: E501 line too long (82 > 79 characters)
news-article-nlp/libraries/article_recommender.py:30:1: E302 expected 2 blank lines, found 1
news-article-nlp/libraries/article_recommender.py:34:80: E501 line too long (87 > 79 characters)
news-article-nlp/libraries/article_recommender.py:42:1: E302 expected 2 blank lines, found 1
news-article-nlp/libraries/article_recommender.py:46:80: E501 line too long (93 > 79 characters)
news-article-nlp/libraries/article_recommender.py:47:80: E501 line too long (92 > 79 characters)

Comply with pylint and flake8 now for article_recommender.py


无线连接

无线连接不支持安卓手机连接mac吗？一直连不上

Please post issues in English
Follow these steps: https://github.com/Genymobile/scrcpy#wireless
If it still does not connect, it's an adb connection issue, check stackoverflow.


feat(components): uniformize colors and variants

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

@MrHBS I'd wait for this to be merged and then just run the playground 😊

Here is a screenshot of the Button for example:

The white and black colors are removed in favor of the gray one which now have the exact same variants as colors.


Sign up

As staff, I want to allow new volunteers & coordinator to sign up in the system, so that we can start the process of background checks and other documentation.

:tada: I've implemented the nuts and bolts of (generic) user registration and sign-in. Nothing regarding the specifics of staff, volunteers, or coordinators has been implemented yet. But this is the basis for building those roles in the system.
I've deployed the app to heroku which is a web-application hosting platform that offers limit usage for free. You can try it now at: https://omd-scheduler.herokuapp.com
Note that the UI is very minimal and no effort has been made to style anything yet. That will come in time. :smile:

Yes to all of that.  The only thing I would change is to name the Coordinator "Volunteer Coordinator".  It's what we use internally, and we need to stay consistent!  I'm attaching our Volunteer Agreement/Registration Packet so you can see what sorts of questions we ask up front.
Amended-Vol Agmt Packet Instructions.pdf

Thanks! Per our phone conversation today we're planning to collect the first page of basic information from the user when they accept the invite. From there they will be 'pending activation' until OMD staff/volunteer coordinators walk them through the rest of the registration process (signing forms, etc).


Update end-to-end blackbox tests to verify actual CVEs using ZLI

Done in https://github.com/project-zot/zot/pull/1300


LogPlugin's update_subscriber is broken when adding extra FmtLayers

Bevy version
The LogPlugin has an extra field update_subscriber that is used to attach extra tracing Layers to the subscriber: https://github.com/bevyengine/bevy/blob/main/crates/bevy_log/src/lib.rs#L115
There's an example showcasing this behaviour: https://github.com/bevyengine/bevy/blob/main/examples/app/log_layers.rs#L27, where we create a custom layer that.
The issue is that we provide as input a type-erased: Box<dyn Subscriber>, and some common Layers required additional bounds on the Subscriber. For example the tracing_subscriber::fmt::Layer requires the extra bound for<'a> LookupSpan<'a> to be a proper layer: https://github.com/tokio-rs/tracing/blob/tracing-subscriber-0.3.18/tracing-subscriber/src/fmt/fmt_layer.rs#L806
This means that examples such as:
impl Plugin for DebugPlugin {
    fn build(&self, app: &mut App) {
        app.add_plugins(LogPlugin {
            update_subscriber: Some(update_subscriber),
            ..default()
        });
    }
}

fn update_subscriber(subscriber: BoxedSubscriber) -> BoxedSubscriber {
    Box::new(subscriber.with(tracing_subscriber::fmt::layer().with_file(true)))
}

Are broken, with the error
the trait bound `for<'a> std::boxed::Box<dyn bevy::utils::tracing::Subscriber + Send + Sync>: LookupSpan<'a>` is not satisfied note: required for `bevy::log::tracing_subscriber::fmt::Layer<std::boxed::Box<dyn bevy::utils::tracing::Subscriber + Send + Sync>>` to implement `__tracing_subscriber_Layer<std::boxed::Box<dyn bevy::utils::tracing::Subscriber + Send + Sync>>
Potential solutions

A quick fix would be to add LookupSpan as an extra bound for BoxedSubscriber, but it's not possible because LookupSpan requires a trait object.
Maybe another approach is to allow registering multiple subscribers on the same app? and potentially to replace the existing subscriber?

Here is more info about registering Layers at runtime: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/layer/index.html#runtime-configuration-with-layers
Other relevant info:

egui running into a similar issue: https://github.com/tokio-rs/tracing/issues/2499

I'm also experiencing this issue, with the same use case: I'd like to extend the subscriber to also output to a file using fmt::layer().with_writer, but I can't actually find a way to do that with the current API as the subscriber passed to update_subscriber does not implement LookupSpan.
For now, I've duplicated the original LogPlugin and replicated the original format with output to a file (tracing_log is required as a dependency, Bevy doesn't export this):
use std::path::PathBuf;

use bevy::{
    app::{App, Plugin},
    log::{
        tracing_subscriber::{fmt, layer::SubscriberExt, EnvFilter, Registry},
        Level,
    },
};
use tracing_log::LogTracer;

/// Copy of the `LogPlugin` from Bevy, but with file output.
pub struct LogPlugin {
    /// Filters logs using the [`EnvFilter`] format
    pub filter: String,

    /// Filters out logs that are "less than" the given level.
    /// This can be further filtered using the `filter` setting.
    pub level: Level,

    /// File to write logs to.
    pub file_path: PathBuf,
}

impl Plugin for LogPlugin {
    fn build(&self, _app: &mut App) {
        let default_filter = { format!("{},{}", self.level, self.filter) };

        let filter_layer = EnvFilter::try_from_default_env()
            .or_else(|_| EnvFilter::try_new(&default_filter))
            .unwrap();
        let stdout_fmt_layer = fmt::Layer::default().with_writer(std::io::stderr);
        let file_layer = fmt::layer()
            .fmt_fields(fmt::format::DefaultFields::new())
            .event_format(fmt::format::Format::default().with_ansi(false))
            .with_writer(std::fs::File::create(&self.file_path).unwrap());

        let subscriber = Registry::default()
            .with(filter_layer)
            .with(stdout_fmt_layer)
            .with(file_layer);

        LogTracer::init().unwrap();
        bevy::utils::tracing::subscriber::set_global_default(subscriber).unwrap();
    }
}

but it'd be nice to avoid this if possible!

@AlexAegis this could probably be achieved by adding a layer on the existing main subscriber no?
Maybe the best long-term solution is to have a Resource wrapping a reload_handle (as shown here: https://github.com/tokio-rs/tracing/issues/2499#issuecomment-1462542365) and the users can dynamically choose to add subscribers/layers and reload everything.
The tracing docs themselves say:

Finally, if the number of layers changes at runtime, a Vec of subscribers can be used alongside the reload module to add or remove subscribers dynamically at runtime.

Actually I think I found a good solution https://github.com/bevyengine/bevy/pull/13159


make build does not build from local hook

In webhook.go import,  "github.com/adnanh/webhook/hook" is referenced. Due to this changes done within hook/ will not be considered for build, as not this module is picked up.

It sounds like you need to use git remotes if you intend to do development work in webhook.

Why? hook is a subdirectory of the given repository, but instead of referencing the own co-located code, it refers to the one stored in the github page (via the import that i am trying to correct)! I don't see the reason to reference to the github version on build?!

Please see the pull request https://github.com/adnanh/webhook/pull/169

I already saw your PR, and I understand your reasoning.  It's just not the right thing to do.  Some advice from Best practices for a new Go developer:

Take the time to work with, and understand, the conventions in Go. ... Learn about how packages and import paths work.  There is a Go way. Learn how Go does things and do it that way. You’ll appreciate the benefits soon enough.

I could be wrong, I guess, but I don't know anyone in the Go community that does what you're proposing.  I'd be curious to know if you've seen others doing this.
Again, the simplest way forward is git remotes.  See the Hugo Contributing Guide, which I helped write, for a short synopsis of the workflow.

Thanks a lot for your explanation! I think I got it now - https://splice.com/blog/contributing-open-source-git-repositories-go/ is a good explanation of the problem!
The problem, however, is that in case I make a feature add and a PR, the code in my forked repository will not compile (to a third party not configuring the remote) until the PR was accepted by the importing project. Is this accepted as fact by the convention?
Consider https://github.com/col-panic/webhook/commit/34c4b1c16686ec07beef6671684cc7f012a835a1 - if you would checkout my forked repository, and I would not have changed the import to "./hook" then the code would not compile until you would also manually set the resp. remote to "override" the import of "github.com/adnanh/webhook/hook". Is this accepted as-is by the go community? google says there is quite some discussion on this ... e.g. https://groups.google.com/forum/#!topic/golang-nuts/AL8UyjGl948

If you plan on developing features for the upstream, create a simple symlink $GOPATH/src/github.com/adnanh to point to your $GOPATH/src/github.com/col-panic


Please publish to jcenter

Please consider publishing dexmaker to jcenter as documented here: https://www.jfrog.com/confluence/display/BT/Central+Repositories#CentralRepositories-IncludingyourPackageinJCenter
The jcenter repository is accessible anonymously, whereas bintray requires an account.

As far as I know, this is already done. Are you having an issue with accessing the artifacts?

Yes.
Also, I can't find them by searching at https://bintray.com/bintray/jcenter or browsing at http://jcenter.bintray.com/

Here's the four artifact links. They all show up as "Linked to jcenter" for me.
https://bintray.com/linkedin/maven/dexmaker
https://bintray.com/linkedin/maven/dexmaker-mockito
https://bintray.com/linkedin/maven/dexmaker-mockito-inline
https://bintray.com/linkedin/maven/dexmaker-mockito-inline-extended

... and now it works! I've got nexus in the middle, perhaps that had a glitch.
Thanks for the fast support.


feat(clock): Add clock support to SDK

Fixes this ZH issue.
Since calculating clock offset seems like something that clients will want to do, I added in a tiny convenience method that implements a simple version of this algorithm.

also @jophish I'm realizing I don't think we have an issue for actually using this in the places it's needed, logging in in particular. I thought that was in the AC for this one, but it's not. Can you write the issue for it?

... or just do it, should be pretty quick


Viser mer naturområdeinfo

A picture tells a thousand words
Before this PR
After this PR

Coverage increased (+0.3%) to 40.701% when pulling 5550da3275a32b4513a65f200be55f258fc38dd9 on feature/vis_mer_omraadeinfo into 37b5ebb8f3dc80a0412fb1f5d478cdb8b1f6b985 on master.


[Admin] Publish

Docs Build status updates of commit d5f2c02:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/develop/make-office-add-in-compatible-with-existing-com-add-in.md
:white_check_mark:Succeeded
View

docs/outlook/autolaunch.md
:white_check_mark:Succeeded
View

docs/outlook/outlook-add-ins-overview.md
:white_check_mark:Succeeded
View

docs/reference/requirement-sets/excel-api-1-13-requirement-set.md
:white_check_mark:Succeeded
View

docs/tutorials/excel-tutorial-create-custom-functions.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Script with a main method is not run in kscript

I'm using IntelliJ to write kotlin script. In order to make my script valid with IntelliJ inspections, I'm defining a standard main method. The problem is that when running my file from kscript, my main method is not run at all.
Is there a special action to run the main method from the command line ?

Not sure if I'm missing your point here, but there is no need for a main method in a kotlin kts script. See  https://kotlinlang.org/docs/tutorials/command-line.html#using-the-command-line-to-run-scripts
I could imagine that you're trying to provide a regular kotlin class file (which indeed would need a main method as entry point) to kscript. However Kotlin kts scripts allow for more simplistic code. E.g.
print(1+1)

is a valid kotlin script.
Regular class files are not supported (yet) by kscript. It crossed my mind to do so, but it is conceptually not possible without making assumptions about the user code, since a kt file could contain multiple classes with a main methods, so the entry point might not be always clearly defined.
I hope this answers your question.
Inspections work fine without. If not it's most likely an IJ bug.
I'll update docs to point out the difference between scripts and regular kotlin classes sources more clear.

One potential fix would be via another configuration comment, similar to //DEPS. E.g.
//ENTRY Foo.main

could be implemented to  instruct kscript to use the companion method main of the class Foo as entrypoint. Technically it would do so by adding  the line
Foo.main(args)

to the end of the provided user code to launch the application. So we would implicitly treat kotlin kt files as kts files. I think it is legit to do so, but I'm not really sure.
I'm also unsure if such a feature would be conceptually too confusing. Furthermore, such a solution would still require some effort from the user to define //ENTRY.
One the plus side, it would extend kscript to also become a more generic application launcher.
Your opinions are welcome here!

Thanks a lot for all these precisions.
To explain my issue with IntelliJ, let's use the following script example :
    #!/usr/bin/env kscript

    println("Hello from Kotlin!")
    for (arg in args) {
        println("arg: $arg")
    }

Even if the file has a .kts extension, IntelliJ complains that the args reference is undefined. This means that writing kscript with all the power of IJ is not possible.

Regarding your //ENTRY directive, this would indeed be a good thing to specify, but you could use the default main function (if any), eg :
#!/usr/bin/env kscript

fun main(args: Array<String>) {
    args.forEach { it -> println(it) }
}

Concerning your first comment. This is a known regression In IJ since kotlin v1.1, which is indeed super-annoying. Please vote for it under https://youtrack.jetbrains.com/issue/KT-16802

Concerning the //ENTRY directive. Assuming the presence of a main method does not make sense imho because kotlin scripts don't require a main and work fine without.
And since Kotlin is very flexible concerning how main can be defined in a kt source file, I'm not sure it's intuitive to assume one particular type of main.  E.g. another popular to define via a companion method:
class Foo{
    companion object {
        @JvmStatic fun main(args: Array<String>) {
            println("Hello World")
        }
    }
}

To detect the entry-point programmatically here would require quite some non-trivial logic.

I finally managed to implement it for kt files (because the only context in which an entry-point declaration makes sense to me.
See here for an example about how to use the new //ENTRY directive.
Please have a look and let me know what you think about it.

The main method is still not available with the latest version 1.6.0
kscript K2.kt
K2.kt:10:20: warning: parameter 'name' is never used
fun findUserByName(name: String): User = null!!
^
.Foor: could not find or load main class test

Thanks for the feedback. Could you run
kscript --clear-cache
kscript --version

first to make sure that you're running the latest version and caching is not causing the error.
Btw the user warning is normal, as the argument name is indeed not used. I'll update the example.
Do you use the provided example? If not, could you attach your K2.kt to this ticket?

I've run
kscript --clear-cache
kscript --version
I'm sure it's in v1.6.0,  and it doesn't work for me.
The content of K2.kt is what you provided before

Works for perfectly for me.
What is your kotlin version? Mine is the latest 1.1.4-2 (JRE 1.8.0_131-b11). It also worked with 1.1.3. What is your OS?
Are you sure that this is the correct jar? The layout should/must be:

Here is my runtime environment:

Kotlin version 1.1.4-2 (JRE 1.8.0_111-b14)
Ubuntu 14.04.4

An error occurred in this environment: could not find or load main class test
But after I switched to macOS, the same code worked.
I think this feature doesn't work in some operating systems.

It worked for me on ubuntu linux and centos previously, but I'll test the test suite on these systems later today.

fixed with v2.0.1. Feel welcome to comment on this ticket if you still struggle to run your code with that version.


md-dialog Before close functionality?

Bug, feature request, or proposal:
Feature?
What is the expected behavior?
When user clicks on backdrop or esc the dialog closes. It would be nice to give the user the option to intercept this close method and prevent default behavior based on some condition.
What is the use-case or motivation for changing an existing behavior?
For example if Dialog contains a form, to be able to disable close or display a message (or whatever function he/she wants to run) and prevent the modal from closing.

Duplicate of https://github.com/angular/material2/issues/4647.
For your use case specifically, see https://github.com/angular/material2/issues/4647#issuecomment-302569792 and https://github.com/angular/material2/pull/3460.

@willshowell so comment mentioned doesn't match the next issue. Will the PR mentioned be a part of one of the next releases?

beforeClose (#4647) will eventually be implemented to give users the ability to respond immediately instead of waiting for the animation to complete. However, it won't allow cancelling the close.
So in order to cancel the close (e.g. to show a message when the form needs to be saved or whatever), you would have to pass disableClose to the dialog. Then you would be able to subscribe to backdropClick and escapeKeyEvent streams to show the message or close the dialog on your own.
Those two streams are not yet available and that's what #3460 is all about (particularly the last ~5-6 comments). However, once https://github.com/angular/material2/issues/6330 is completed, that will be easy work to make them part of the dialog's public api.
In summary, I doubt they'll be in the next release, but probably in the following 1-2.

Duplicate of #4647

@willshowell I am new to Angular but I was wondering if you could provide a fiddle showing how you would do the following:
"So in order to cancel the close (e.g. to show a message when the form needs to be saved or whatever), you would have to pass disableClose to the dialog. Then you would be able to subscribe to backdropClick and escapeKeyEvent streams to show the message or close the dialog on your own."

@dfmmalaw this won't be available until https://github.com/angular/material2/pull/6682 lands. It could look like this:
const dialogRef = dialog.open(MyDialogComponent, {disableClose: true});

const escapeEvents = dialogRef.keydownEvents().filter(e => e.key === 'Escape');

Observable.merge(escapeEvents, dialogRef.backdropClick())
  .map(() => confirm('Are you sure you want to cancel?'))
  .filter(confirmed => !!confirmed)
  .first()
  .subscribe(() => dialog.close());


fix audit/deps

What
upgrade godog, remove deps + check vulnerabilities
How to review
eyeball
Who can review
Describe who worked on the changes, so that other people can review.

This has been superseded.


Branding changes for 8.2.2 and fix CG alert

cc: @amcasey
Microsoft Reviewers: Open in CodeFlow

Includes manual backport of https://github.com/dotnet/aspire/pull/5863


Cargo bench eats excessive memory on WSL2 ubuntu

TL;DR
This can be worked around by setting CARGO_BUILD_JOBS.
Description
Briefly, cargo bench eats excessive memory on WSL2 with a 10-core 20-thread i9-10900K Intel CPU and 32GB memory, due to:

Since the number of CPUs are 20, there will be 20 rustc processes and each process would take more than 2GB memory.

Memory gets drained, rustcs get killed.

Caused by:
  process didn't exit successfully: `rustc --crate-name simple --edition=2018 bench/simple.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no --cfg test --cfg 'feature="aes-gcm"' --cfg 'feature="pure"' --cfg 'feature="typenum"' -C metadata=5b7a3f7d5f63fca0 -C extra-filename=-5b7a3f7d5f63fca0 --out-dir /home/ryan/works/rs/eciesrs/target/release/deps -L dependency=/home/ryan/works/rs/eciesrs/target/release/deps --extern aes_gcm=/home/ryan/works/rs/eciesrs/target/release/deps/libaes_gcm-b689cfd45f541159.rlib --extern criterion=/home/ryan/works/rs/eciesrs/target/release/deps/libcriterion-92424be6afcb1e28.rlib --extern ecies=/home/ryan/works/rs/eciesrs/target/release/deps/libecies-b1dd2b46a70a3818.rlib --extern futures_util=/home/ryan/works/rs/eciesrs/target/release/deps/libfutures_util-31a01fcbcefd69d3.rlib --extern hex=/home/ryan/works/rs/eciesrs/target/release/deps/libhex-f0ac4054f3e10cf0.rlib --extern hkdf=/home/ryan/works/rs/eciesrs/target/release/deps/libhkdf-23697e084e864558.rlib --extern secp256k1=/home/ryan/works/rs/eciesrs/target/release/deps/libsecp256k1-97002a720e291605.rlib --extern rand=/home/ryan/works/rs/eciesrs/target/release/deps/librand-db608fc81ec83f78.rlib --extern reqwest=/home/ryan/works/rs/eciesrs/target/release/deps/libreqwest-626df515e3200886.rlib --extern sha2=/home/ryan/works/rs/eciesrs/target/release/deps/libsha2-3f02633d25ddd93e.rlib --extern tokio=/home/ryan/works/rs/eciesrs/target/release/deps/libtokio-a1ca85da5f2e46d4.rlib --extern typenum=/home/ryan/works/rs/eciesrs/target/release/deps/libtypenum-8754dce572e25207.rlib` (signal: 9, SIGKILL: kill)

$ dmesg | egrep -i 'killed process'
[ 1600.860772] Killed process 25878 (rustc) total-vm:70450572kB, anon-rss:25802536kB, file-rss:4kB, shmem-rss:0kB
[ 1757.423082] Killed process 26023 (rustc) total-vm:70450572kB, anon-rss:25616460kB, file-rss:0kB, shmem-rss:0kB
[ 2273.824947] Killed process 30194 (rustc) total-vm:70453132kB, anon-rss:25644020kB, file-rss:0kB, shmem-rss:0kB
[ 2620.751454] Killed process 30529 (rustc) total-vm:70483340kB, anon-rss:25640772kB, file-rss:0kB, shmem-rss:0kB
[ 2770.585678] Killed process 30583 (rustc) total-vm:70453132kB, anon-rss:25798272kB, file-rss:0kB, shmem-rss:0kB
[ 3143.114175] Killed process 3061 (rustc) total-vm:74940760kB, anon-rss:25593988kB, file-rss:0kB, shmem-rss:0kB
[ 3408.653964] Killed process 7694 (rustc) total-vm:70429604kB, anon-rss:25772680kB, file-rss:0kB, shmem-rss:0kB
[ 4256.437701] Killed process 14596 (rustc) total-vm:70450468kB, anon-rss:25585988kB, file-rss:0kB, shmem-rss:0kB
[ 9058.139548] Killed process 24291 (rustc) total-vm:70450468kB, anon-rss:25588892kB, file-rss:88kB, shmem-rss:0kB
[ 9408.142325] Killed process 24403 (rustc) total-vm:70450468kB, anon-rss:25622152kB, file-rss:0kB, shmem-rss:0kB

Other information

All toolchains (stable, beta and nightly) share the same problem by Dec 9, 2020.
The bug does not occur on cargo build or cargo test, with or without --release.

Steps

git clone https://github.com/ecies/rs.git eciesrs && cd eciesrs in WSL2 ubuntu shell.
cargo bench --no-default-features --features pure
Watch your memory exploding

Possible Solution(s)
Set CARGO_BUILD_JOBS to a lower value.
Notes
Output of cargo version:
cargo 1.48.0 (65cbdd2dc 2020-10-14)
cargo 1.49.0-beta (b9216831a 2020-11-24)
cargo 1.50.0-nightly (63d0fe434 2020-12-02)

Possibly related issues

https://github.com/rust-lang/rust/issues/51309
https://users.rust-lang.org/t/cargo-build-crashes-with-sigkill/50035

Thanks for the report! I'm not sure if this is a Cargo-actionable issue, though? I don't think Cargo will default to anything other than the number of cores for parallelism by default, and as you've found there's ways to limit Cargo's parallelism if necessary. Would you like to report an issue for rustc consuming too much memory? If so this may be best on rust-lang/rust.

Thanks, I've posted on rust-lang/rust


feat: Add the ability to use automatic subscriber assignment to the subscriber settings

Please fix the tests first.

Please fix the tests first.

The tests are broken due to "[08:14:28][ERROR] Timed out waiting for GitHub to return mergeable status for the pull (PR). GitHub is taking too long to compute whether this PR is mergeable. Please retry the build in a few minutes. You can do this by attaching a kokoro:force-run label on your PR." which sounds like a kokoro issue.

.readme-partials.yaml updated.

Samples update should come later, after the library has a new release that picks up the changes. If you want, you can split this into two. Or I can update the samples later.

I would like @hannahrogers-google or someone else comment on if more tests need to be added before you merge.

I am ok with this change - I don't believe we have explicit unit tests for any of the Builders in the lite client library.

@dpcollins-google Does this Do Not Merge label still apply?

@dpcollins-google Does this Do Not Merge label still apply?

Yes it does. We don't want to merge this until the backend is tested internally and we've updated (/ are updating) the docs.


Resolution Scale

A slider/value to change the resolution scale of the game

This should be easy, the class which contains the resolution scale is already added to the mod.


Added support for an 'access_indent' setting in CPPLINT.cfg

It is now possible to override the access modifier indentation.
Previously this was hard-coded to 1

I signed it!
From: googlebot<EMAIL_ADDRESS>Sent: Thursday, September 20, 2018 11:51 AM
To: google/styleguide<EMAIL_ADDRESS>Cc: alulla<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [google/styleguide] Added support for an 'access_indent' setting in CPPLINT.cfg (#400)
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
📝 Please visit https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.

What to do if you already signed the CLA
Individual signers

It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA datahttps://cla.developers.google.com/clas and verify that your email is set on your git commitshttps://help.github.com/articles/setting-your-email-in-git/.

Corporate signers

Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoothttp://go/cla#troubleshoot (Public versionhttps://opensource.google.com/docs/cla/#troubleshoot).
The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA datahttps://cla.developers.google.com/clas and verify that your email is set on your git commitshttps://help.github.com/articles/setting-your-email-in-git/.
The email used to register you as an authorized contributor must also be attached to your GitHub accounthttps://github.com/settings/emails.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/google/styleguide/pull/400#issuecomment-423233681, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEHfoNaRvxj9ZmMGBfCLTxyoM0FEZsCjks5uc7l3gaJpZM4WyanJ.


Seems not working with sdk versions from 30 or above

When I perform the build of the project after follow install as is detailed in readme I got this error:
The specified Android SDK Build Tools version (29.0.3) is ignored, as it is below the minimum supported version (33.0.1) for Android Gradle Plugin 8.1.1. Android SDK Build Tools 33.0.1 will be used. To suppress this warning, remove "buildToolsVersion '29.0.3'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
my build.gradle:
`buildscript {
ext {
buildToolsVersion = "34.0.0"
minSdkVersion = 21
compileSdkVersion = 34
targetSdkVersion = 34
ndkVersion = "25.1.8937393"
kotlinVersion = "1.8.0"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
}
apply plugin: "com.facebook.react.rootproject"`

I also found this for more info:


chore: http ^1.0.0

chore: http ^1.0.0

Can be closed, since http version is already set to ^1.1.0

you're right. this issue was resolved !


zeit/schemas has not been updated yet with v2 config

The v2 config docs link to and reference a v1 version of zeit/schemas:
https://github.com/zeit/docs/blob/ae60091d999cfc53fadea98b12654437a4444433/pages/docs/v2/deployments/configuration.mdx#L20

I've transferred this issue to the schemas repo so that we can look into it properly. Thanks!

Thanks. Appears to still apply.


Add query for hopannotation1 reannotation repair

This change adds a new query for hopannotation1 to input to the reannotator.
This change enables the reannotation of the hopannotation1 data.

This change is

Obsolete


Adapt code to new base64 (0.21) library

includes #30
supersedes #29

Still maintained, just other priorities lately. Apologies.


How should I implement a spi transfer function like transfer16 in arduino_esp on the esp-idf platform? (IDFGH-8405)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Here, I was working on AS5047P, which is a high-resolution position sensor.
This sensor works on SPI protocol, So I want to implement an SPI reader on ESP32 esp-idf. And I refered to the implement AS5047P(Arduino), which works perfectly even on esp-arduino platform.
However, when I implemented my code on eps-idf platform, the results are not the same as the esp-arduino even on the same command!
I know the key of my problem is the spi transfer, so i want to ask how i implement a function transfer16(arduino esp platform) alternative on esp-idf platform.
The following is my implmentation (trial):
// MSB_FRIST, MODE1
#define LEN_BITS 16
#define TRANS_BITS 16
#define MSB_16_ASSIGN(var, val)                                \
{                                                          \
    (var) = (((val)&0xFF00) >> 8) | (((val)&0x00FF) << 8); \
}

ESP_LOGE(AS5047P_TAG, "execute_cmd_write, cmd_df->raw = 0x%04x", cmd_df->raw);
ESP_LOGE(AS5047P_TAG, "execute_cmd_write, wrt_df->raw = 0x%04x", wrt_df->raw);
spi_transaction_t tx0, tx1;
spi_transaction_t *rx0, *rx1;

memset(&tx0, 0, sizeof(tx0));
tx0.flags = SPI_TRANS_USE_TXDATA;
MSB_16_ASSIGN(*(uint32_t *)tx0.tx_data, cmd_df->raw);
tx0.length = TRANS_BITS;
tx0.user = (void *)0;

memset(&tx1, 0, sizeof(tx1));
tx1.flags = SPI_TRANS_USE_TXDATA;
MSB_16_ASSIGN(*(uint32_t *)tx1.tx_data, wrt_df->raw);
tx1.length = TRANS_BITS;
tx1.user = (void *)0;

gpio_set_level(this->num_cs, LOW);
err = spi_device_queue_trans(SPI_HANDLER_PTR(this->spi), &tx0, 1000 / portTICK_RATE_MS);
if (err != ESP_OK)
{
  ESP_LOGE(AS5047P_TAG, "execute_cmd_write: send read cmd frame spi_device_queue_trans error = %d", err);
}
err = spi_device_get_trans_result(SPI_HANDLER_PTR(this->spi), &rx0, 1000 / portTICK_RATE_MS);
if (err != ESP_OK)
{
  ESP_LOGE(AS5047P_TAG, "execute_cmd_write: send read cmd frame spi_device_get_trans_result error = %d", err);
}
gpio_set_level(this->num_cs, HIGH);
vTaskDelay(1 / portTICK_PERIOD_MS);

gpio_set_level(this->num_cs, LOW);
err = spi_device_queue_trans(SPI_HANDLER_PTR(this->spi), &tx1, 1000 / portTICK_RATE_MS);
if (err != ESP_OK)
{
  ESP_LOGE(AS5047P_TAG, "execute_cmd_write: send read nop cmd frame spi_device_queue_trans error = %d", err);
}
err = spi_device_get_trans_result(SPI_HANDLER_PTR(this->spi), &rx1, 1000 / portTICK_RATE_MS);
if (err != ESP_OK)
{
  ESP_LOGE(AS5047P_TAG, "execute_cmd_write: send read cmd frame spi_device_get_trans_result error = %d", err);
}
gpio_set_level(this->num_cs, HIGH);
vTaskDelay(1 / portTICK_PERIOD_MS);

and the esp-arduino implementation:
((SPIClass *)spi)->beginTransaction(this->spi_settings);

digitalWrite((uint8_t)this->num_cs, LOW);
((SPIClass *)spi)->transfer16(cmd_df->raw);
digitalWrite((uint8_t)this->num_cs, HIGH);
delayMicroseconds(1);

digitalWrite((uint8_t)this->num_cs, LOW);
((SPIClass *)spi)->transfer16(wrt_df->raw);
digitalWrite((uint8_t)this->num_cs, HIGH);
delayMicroseconds(1);

((SPIClass *)spi)->endTransaction();

The most confusing thing is how to fill in the tx_data a right MSB_FIRST data, I refered the eps_arduino implementation (MSB_16_ASSIGN). However it's not working.
Another POST why-spi-with-esp-idf-works-different-than-esp-idf-arduino-port-as5048a for reference!

For SPI IO, here is the official sample.
https://github.com/espressif/esp-idf/blob/master/examples/peripherals/spi_master/lcd/main/spi_master_example_main.c

For SPI IO, here is the official sample.
Toggling of CS is done by the driver, so the user does not need to do anything.
https://github.com/espressif/esp-idf/blob/master/examples/peripherals/spi_master/lcd/main/spi_master_example_main.c

I tried this, and succeed in driving my OLED screen. However this example is not useful on this question. I don't figure out the MSB/LSB behavior in ESP32 SPI. The key point is that spi_master works differently from arduino-esp32. And it needs to be noted that arduino-esp32 SPI api packages the underlying details and is more beginner-friendly. However, in more cases, spi-master is my first choice to implement a spi communication. So I'm struggling with this.

the data length of spi_device_polling_transmit give in bits, so I think  msb/lsb are not considered.

Is there an official spi_master example for transfering uint16_t data? When there are uint16_t, the data in rx_data is
rx_data[0] = [bit15, 14, 13, 12, 11, 10, 9, 8], rx_data[1] = [bit7...bit0],  rx_data[2] = [random], rx_data[3] = [random]
or
rx_data[0] = [bit7, ..., bit0], rx_data[1] = [bit15, bit8],  rx_data[2] = [random], rx_data[3] = [random]
or
rx_data[3] = [bit15, bit8], rx_data[2] = [bit7, ..., bit0],  rx_data[0] = [random], rx_data[1] = [random]
or
rx_data[3] = [bit7, ..., bit0], rx_data[2] = [bit15, bit8],  rx_data[1] = [random], rx_data[0] = [random]
Which one is right?
// esp_arduino the core function to implement `SPI.transfer16`
uint16_t spiTransferShortNL(spi_t * spi, uint16_t data)
{
    if(!spi) {
        return 0;
    }
    if(!spi->dev->ctrl.wr_bit_order){
        MSB_16_SET(data, data);
    }
    spi->dev->mosi_dlen.usr_mosi_dbitlen = 15;
    spi->dev->miso_dlen.usr_miso_dbitlen = 15;
    spi->dev->data_buf[0] = data;
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3
    spi->dev->cmd.update = 1;
    while (spi->dev->cmd.update);
#endif
    spi->dev->cmd.usr = 1;
    while(spi->dev->cmd.usr);
    data = spi->dev->data_buf[0] & 0xFFFF;
    if(!spi->dev->ctrl.rd_bit_order){
        MSB_16_SET(data, data);
    }
    return data;
}

Your question is about arduino-esp32, not about esp-idf.
inappropriate here.


Update group_5_ass_1_2024_task1.md

I want to add this information. Thanks.

Please add your email next to your name.

OK!

Please Juan Diego add your email next to your name.

Please Marilia add your email next to your name.


travis: PHP 7.0 nightly added

See http://docs.travis-ci.com/user/languages/php/#PHP-7

Thanks Tomas!

:+1:


convert.py does not open stream for -of other than xlsx

NOTE: this issue was detected on dev
Executing
python brise_plandok/convert.py \
    -i XLSX \
    -if ~/research/data/brise/ann/$1.xlsx \
    -o JSON \
    -of ~/research/data/brise/ann/$1.json

results in
Traceback (most recent call last):
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 391, in <module>
    main()
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 387, in main
    converter.convert(input_stream, output_stream)
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 358, in convert
    self.write(doc, output_stream)
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 348, in write
    self.write_json(doc, stream)
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 324, in write_json
    stream.write(json.dumps(doc))
AttributeError: 'str' object has no attribute 'write'

This also applies for inputs.
Executing
python brise_plandok/convert.py \
    -i JSON \
    -if ~/research/data/brise/json/$1.jsonl \
    -o XLSX \
    -of ~/research/data/brise/ann/$1.xlsx

results in
Traceback (most recent call last):
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 391, in <module>
    main()
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 387, in main
    converter.convert(input_stream, output_stream)
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 357, in convert
    for doc in self.read(input_stream):
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 313, in read
    yield from self.read_json(stream)
  File "/home/eszter/research/brise-plandok/brise_plandok/convert.py", line 309, in read_json
    yield json.loads(line)
  File "/home/eszter/.pyenv/versions/3.9.6/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/home/eszter/.pyenv/versions/3.9.6/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/home/eszter/.pyenv/versions/3.9.6/lib/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@Eszti is this still relevant?

I think, I did not use other functions of this script, so I don't know. But this file should be investigated for deletion, as I mostly used new components.


Add a settings toggle for dark mode in Shortcut Guide

I'd like to propose adding a manually configurable option to have a dark background when using the Shortcut Guide. I have my theme set to dark, my app mode is set to Light (since I personally don't find the experience to be consistent enough to apply across the entire OS).
Even with app mode set to Light, it's quite jarring to suddenly have a blinding bright white screen appear when I use the guide, so it would be nice to have a manual toggle to use dark mode so that we're not forced to switch all apps to be one or the other.

Some have suggested to use the system settings to apply the dark/light mode to PowerToys, but you have a point, it would be better to also allow to override the system settings if desired.

It is typical to have the three options

We only need to decide if we want this in the general settings for all modules, or in each module settings.


write oblique shear test

write a test function independent of UI, which

loads a data set
applies the shear transform
shows the shear data in bdv

Code pushed.


Additional helper methods added to moment class

Added some new methods to the moment class to assist the user in getting data about the moment instance that they have captured.
Description

NumberOfDaysInMonth() - Takes the month of the created instance and returns the number of days in the given month. Method also auto checks for the possibility of a leap year in order to determine which number of days February has.
NumberOfDaysInYear() - Takes the year of the created instance and returns the number of days in that year. Method checks the possibility of a leap year in order to determine how many days that specific year has.
IsLeapYear() - Simple helper method to determine whether or not the year that has been capture in the instance is or is not a leap year.
DaysLeftInMonth() - Takes the day of the created instance, as well as the month, and subtracts the day from the number of days in that month, returning the number of days the month has left from the moment.
Motivation and Context

Love the repo and find it really helpful, but found that an app which I am currently developing was in need of the information that these helper methods provide, so figured that others may need similar or the same functionality in the future.
How Has This Been Tested?

Testing has been done inside the project locally, but has not been scrutinized thoroughly. Will continue to test these methods for affecting factors such as time zone etc..
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x ] My code does not leave warnings unattended.
[x ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Hi, thanks for this! Before accepting this PR we need you to provide unit tests for the new functionalities, and please rewrite your comments using the standard Swift documentation headers.

Hey there! Have followed the unit testing and documentation header conformities for the new helper methods. Let me know if there is anything else I can do to meet the criteria. Harry


qidi-slicer-bin: init at 1.1.5

Description of changes

Package QIDISlicer, a fork of PrusaSlicer for QIDI 3D Printers.
Currently uses an AppImage from upstream release, hence the -bin suffix. Relevant to #336869 until I can get a more powerful build host to build from source.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Thanks for taking the time to review 😃


Looks like dependencies have not been updated for a long time

Can anybody tell if there are the latest security patches and all the dependencies are up to date?

They are not, but you don't need to write any code, so there's no need to worry about old dependencies!


Rework nRF Connect documentation

Problem
Enhance documentation of Nordic nRF Connect platform and examples.
Summary of Changes

Add more general guides on nRF Connect platform integration in CHIP, example configuration and CLI usage
Rework README of all nRF Connect examples:

Describe capabilities of the examples in the Overview section
Add Requirements section which more precisely describes hardware and software requirements (prepare for support for other boards besides nRF52840 DK).
Try to make all described procedures less ambiguous.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: Damian-Nordic:white_check_mark: kkasperczyk-no:x: greg-ferYou have signed the CLA already but the status is still pending? Let us recheck it.

CLA needs signing before this will go out to all approvers.


Align "Contributing" section in README.md to FINOS project blueprint

Hi @mgoldey sorry about that, I thought it was a typo. I have reversed my edits on the numbered lists, back to repeated 1s.


Docker image

Hi @Ivarz,
I recently created a Docker image for conifer. I thought, I'd leave it here in case it's useful for you or someone else.
# Copyright (c) 2020, Moritz E. Beber.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

FROM bitnami/minideb:buster AS builder

RUN set -eux \
    && install_packages \
        build-essential \
        ca-certificates \
        git \
        libz-dev

WORKDIR /opt

RUN set -eux \
    && git clone https://github.com/Ivarz/Conifer.git \
    && cd Conifer \
    && git submodule update --init --recursive \
    && gcc -static -std=c99 -Wall -Wextra -O3 -D_POSIX_C_SOURCE=200809L -I third_party/uthash/src -I . src/utils.c src/kraken_stats.c src/kraken_taxo.c src/main.c -o conifer -l:libm.a -l:libz.a

FROM busybox:glibc

COPY --from=builder /opt/Conifer/conifer /

ENTRYPOINT ["/conifer"]

I'll track progress of this file over here.

Hi, @Midnighter, looks nice! I'll add link in README

I also put it on Docker hub. You can now pull the image directly from midnighter/conifer:latest without having to build the image locally. I also made some changes to the image that make it compatible with nextflow. (Requires bash and ps to be present.)

Just to note that I recently updated this to v1.0.2. Would be cool to auto deploy a new container when you release a new version. What do you think?


Document GCE's non-standard NTP servers

Clusters that span both GCE and other hosting providers can have problems on leap second days, because Google's NTP servers handle leap seconds differently from the standard NTP pool. If you mix GCE and non-GCE nodes in the same cluster, you must either point the GCE nodes at a non-google NTP server or point all the non-GCE nodes at google's (https://developers.google.com/time/).

Google's NTP servers "smear" the leap second, which is recommended for CRDB (https://github.com/cockroachdb/docs/issues/960#issuecomment-270587565). Therefore it should be preferred to point everything at google's ntp servers instead of the other way around. When using NTP servers that don't smear the leap second, client-side slewing of the leap second should be configured in the same way on each node.

I seem to recall some other cloud providers smear the leap second as well. Looks like Amazon does.

Amazon smears the leap second on their own systems, but EC2 instances by default use standard NTP and experience a 1-second jump. It doesn't look like amazon provides an NTP server or other way to set your EC2 instances to "AWS Adjusted Time".
Even if they did, this makes things more complicated: smearing the leap second requires a few parameters to be set to determine exactly when and how the clock rate is adjusted. Maybe we should just document that for any cross-cloud scenario you should override the NTP configuration to point to a specific pool (either the public one or google's) instead of using the cloud provider's defaults.


Document doesnt appear to have correct steps

[Enter feedback here]
so tried to follow this doc yesterday using the manual steps . however the steps on here dont result in a kerb configured storage account .
example is the below isnt even a command .
SPN: "cifs/your-storage-account-name-here.file.core.windows.net" Password: Kerberos key for your storage account.

Document details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7a1a9f3d-5733-012a-a0d7-c00ec21b9232
Version Independent ID: 1e70ab95-9488-5aa3-b8ef-e58b3e0067bb
Content: Enable AD DS authentication to Azure file shares
Content Source: articles/storage/files/storage-files-identity-ad-ds-enable.md
Service: storage
Sub-service: files
GitHub Login: @roygara
Microsoft Alias: rogarana

@stuartdodd1, Thank you for reaching us. We are looking into this and will get back to you soon.

@stuartdodd1 Firstly, apologies for the delay in responding here and any inconvenience this issue may have caused.  I'd recommend posting your question in https://azure.microsoft.com/en-us/support/community/ since it's not directly related to the documentation. We'll follow up there. We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.
Please share the error message or error code snapshot, with the complete issue description

Hi.
But it is related to this doc as it has a statement  that is wrong.
So the statement says .
Spn: this command doesn't exist . So the doc is wrong.
Further more using setspn u can't set a kerb key.
I'm asking the doc creater to re review as clearly the steps are wrong.
Get Outlook for Androidhttps://aka.ms/ghei36

From: SumanthMarigowda-MSFT<EMAIL_ADDRESS>Sent: Sunday, September 27, 2020 9:12:41 AM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: stuartdodd1<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Document doesnt appear to have correct steps (#63019)
@stuartdodd1https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fstuartdodd1&data=02|01||40deb5e1ef574532650d08d862bd1bc1|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637367911631311933&sdata=01fPO9cSwAHSEK4H%2B50EQlJsUrbeDFE4X6XDBlgTh3I%3D&reserved=0 Firstly, apologies for the delay in responding here and any inconvenience this issue may have caused. I'd recommend posting your question in https://azure.microsoft.com/en-us/support/community/https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fazure.microsoft.com%2Fen-us%2Fsupport%2Fcommunity%2F&data=02|01||40deb5e1ef574532650d08d862bd1bc1|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637367911631321928&sdata=340n2WShi9F7Da9CRMvybOSISUX6ZlKEWVrT%2FX1uI%2FM%3D&reserved=0 since it's not directly related to the documentation. We'll follow up there. We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.
Please share the error message or error code snapshot, with the complete issue description
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F63019%23issuecomment-699602325&data=02|01||40deb5e1ef574532650d08d862bd1bc1|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637367911631331872&sdata=RfRUUA1qkI7wqcACs9iSeaRY%2B6db3p0ru6ylW5Qu8No%3D&reserved=0, or unsubscribehttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FARC72HKEP5232VNM4F3EOPLSH3XXTANCNFSM4RVPKKUQ&data=02|01||40deb5e1ef574532650d08d862bd1bc1|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637367911631341872&sdata=NIPpmTreqvY%2FTf27VBl7D%2BwZeqBtCEumzFjBeB5mjbA%3D&reserved=0.


(Main) Error in PeaksFilter

Error appears on Main branch.
Reproduce:

Add data samples on data page
Go to training page

PeaksFilter.ts:30 Uncaught Error: data sample is too short
    at PeaksFilter.filter (PeaksFilter.ts:30:13)
    at Filters.ts:22:21
    at Array.map (<anonymous>)
    at Filters.compute (Filters.ts:21:30)
    at getLiveFilteredData (KNNModelGraphController.ts:198:31)
    at KNNModelGraphController.onUpdate (KNNModelGraphController.ts:208:22)
    at KNNModelGraphController.ts:71:12

I'm not sure I would call it a bug, as it is the intended behavior. The issue arises due to the engine always being started, and thus it tries to predict on an empty dataset, which the peaks filter cannot handle.
The error goes away when the microbit has been producing inputs for a few seconds.
I'm not entirely sure how to handle the error at the moment, as simply silencing it could be problematic when debugging.
The elegant solution would be to ensure the engine doesn't attempt to predict when the live data store is empty, but the required number of elements is dependent on the specific filters.
We might implement a getMinElements() method in the filter and use that to tell the engine how many is required to perform a prediction

I see. It may not be so urgent to implement a more elegant solution.

Added check to ensure the minimum number of values required are present


Changes for Synergy support

Description
Adds architectural support to Synergy and API300 resources
:warning: There is 1 expected failure: (See oneview-sdk-ruby's #124 Missing argument in API300 C7000 Managed SAN method for more information).
Regarding dynamic version load:
It won't load SDK version and variants at converge time by now. It would be better to open an issue/another PR until we have any good idea on how to kick it in, since it won't be a big deal to refactor and the implementation may be delayed if we stop the development to think about it right now.
Main changes

Added berkshelf exception to ignore
Excluded libraries folder from foodcritic
Addded load_attributes method
Converted load_sdk to static method
Added structure in libraries to receive providers
Implemented EthernetNetwork resource as example
Edited specs and resources to accept the new standard

No need for this anymore since the changes made here were merged into #99


Cutting file copying the file without delete the origin

Issue Type: Bug

Open two workspaces
Right click on a file from first workspace and click Cut
Paste it on second workspace
The file successfully copied but the origin file does not being deleted. (I mean cut supposed to delete the origin, isn't it?)

Thanks,
VS Code version: Code 1.61.2 (6cba118ac49a1b88332f312a8f67186f7f3c1643, 2021-10-19T14:57:20.575Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz (8 x 3000)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.87GB (20.18GB free)

Process Argv
--crash-reporter-id 764f0631-6594-4b5e-bed6-3335a3412ce3

Screen Reader
no

VM
40%

Extensions: none
A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythontb:30283811
pythonptprofiler:30281270
vsdfh931:30280409
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscod805cf:30301675
pythonvspyt200:30340761
binariesv615:30325510
vsccppwt:30382697
bridge0708:30335490
pygetstartedt3:30385195
dockerwalkthru:30377721
bridge0723:30353136
pythonrunftest32:30373476
pythonf5test824:30373475
javagetstartedt:30391933
pythonvspyt187:30373474
vsqsis400:30386382
vsaa593:30376534
vssld246:30386377

It's expected that the cut operation doesn't work across windows, the operating system doesn't tell us when a file is pasted so the best we can do is monitor if it gets pasted somewhere in the same window. In theory we could support the case where the other window is also a vscode window, but the interprocess communication needed to do so would be fairly involved for this narrow use-case. I will leave this open as a feature request candidate.


Add jitpack badge

This PR adds the JitPack badge to the project.

The jitpack badge has some glitches but we can live with them.


DVISA-1781: Annotation text method

Please check if the PR fulfills these requirements

[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Task:  It adds a new method getToolTextFromToolState to all tools. It returns per tool the text which ends up being drawn on the canvas.
Implemention of ticket DVISA-1781.

What is the current behavior? (You can also link to an open issue here)
There was no way of getting the drawn text from outside of cornerstone tools, because the text is not part of the toolstate.

What is the new behavior (if this is a feature change)?
By using the static method getToolTextFromToolState it is now possible to get the text of each tool.

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No

One question that comes into my mind is :
do we want to merge this directly into ded4 ?? if so, shouldn't we change the version and a new branch?
https://github.com/DedalusDIIT/cornerstoneTools/blob/6.0.6-ded4/src/version.js
https://github.com/DedalusDIIT/cornerstoneTools/blob/a31472c12e58a9ba64f6f18d327f3e01d624080b/package.json#L3


TF.distribute.MirroredStrategy() crashes

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Progress Linux 5+ (engywuck-backports) (Linux Debian Buster)
TensorFlow installed from (source or binary): binary (problem happens from source aswell)
TensorFlow version (use command below): v1.12.1-16854-g6778662 2.1.0-dev20191028
Python version: Python 3.7.3
CUDA/cuDNN version: 10.0/7.0
GPU model and memory: 2x Asus GeForxe RTX 2080 Ti, Compute Capability 7.5, No NVLink

Describe the current behavior
Since we are not allowed to share our data, I tried to reproduce our problem with a dataset from tensorflow_datasets.
The current code might not make much sense, but I am able to deliver a reproducible code with it.
Training on only one-gpu  works without a problem, with tf.distribute.MirroredStrategy() it crashes (see dump).
What we already tried:

build tensorflow from source
build tensorflow from source against cuda10.1
using tensorflow via pip: tensorflow-gpu

Describe the expected behavior
Tf.distribute.MirroredStrategy() should lead to similar Results like training on one-gpu only.
Code to reproduce the issue
I tried to reproduce the problem using google-colab. but since only one gpu is provided, it is not really reproducible.
I tried it with two virtual GPUs, but it didn't lead to similar behavior like our problem.
https://colab.research.google.com/drive/1hmqt9KdWoheKajkHl_J6dJgoHneKoJP3
On my set-up i use following code:
# -*- coding: utf-8 -*-

import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50
import tensorflow as tf
import tensorflow_datasets as tfds

LENGTH_DATASET = 17509
NUM_CLASSES = 9
IMG_SHAPE = (256, 256, 3)
BATCH_SIZE = 32

def mymap_func(features):
    return features["image"], features["label"]

AUTOTUNE = tf.data.experimental.AUTOTUNE

# create input pipeline
dataset = tfds.load(name="deep_weeds", split="train")
dataset = dataset.map(mymap_func,
                      num_parallel_calls=tf.data.experimental.AUTOTUNE)
dataset = dataset.cache()
dataset = dataset.shuffle(buffer_size=LENGTH_DATASET, seed=42,
                          reshuffle_each_iteration=True)
dataset = dataset.batch(batch_size=BATCH_SIZE, drop_remainder=True).repeat()
dataset = dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)

# create model
img_width, img_height = 270, 270

shape, classes = (img_width, img_height, 1), 3

strategy = tf.distribute.MirroredStrategy()
print("Number of devices in strategy: {}".format(strategy.num_replicas_in_sync))

with strategy.scope():

  model = ResNet50(include_top=True,
                       weights=None,
                       input_tensor=None,
                       input_shape=IMG_SHAPE,
                       pooling=None,
                       classes=NUM_CLASSES)

  model.compile(optimizer=tf.optimizers.Adam(),
                    loss='sparse_categorical_crossentropy',
                    metrics=["accuracy"])

train_steps = np.ceil(LENGTH_DATASET / BATCH_SIZE)
history = model.fit(
        x=dataset,
        epochs=10,
        verbose=1,
        steps_per_epoch=train_steps,
        use_multiprocessing=False,
        workers=8)

Other info / logs
python dump of above script
python src/test/multi_gpu_training_colab.py
2019-11-07 10:44:52.905250: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2019-11-07 10:44:52.950697: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1546] Found device 0 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.545
pciBusID: 0000:86:00.0
2019-11-07 10:44:52.951317: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1546] Found device 1 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.545
pciBusID: 0000:af:00.0
2019-11-07 10:44:52.951554: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2019-11-07 10:44:52.952809: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2019-11-07 10:44:52.953947: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10.0
2019-11-07 10:44:52.954263: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10.0
2019-11-07 10:44:52.955764: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10.0
2019-11-07 10:44:52.956986: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10.0
2019-11-07 10:44:52.960430: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2019-11-07 10:44:52.962770: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1674] Adding visible gpu devices: 0, 1
2019-11-07 10:44:52.963103: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 AVX512F FMA
2019-11-07 10:44:53.001056: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-11-07 10:44:53.008873: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5460110 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2019-11-07 10:44:53.008905: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2019-11-07 10:44:53.233141: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5521500 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2019-11-07 10:44:53.233177: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce RTX 2080 Ti, Compute Capability 7.5
2019-11-07 10:44:53.233185: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (1): GeForce RTX 2080 Ti, Compute Capability 7.5
2019-11-07 10:44:53.234101: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1546] Found device 0 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.545
pciBusID: 0000:86:00.0
2019-11-07 10:44:53.234646: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1546] Found device 1 with properties:
name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.545
pciBusID: 0000:af:00.0
2019-11-07 10:44:53.234685: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2019-11-07 10:44:53.234699: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2019-11-07 10:44:53.234711: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10.0
2019-11-07 10:44:53.234723: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10.0
2019-11-07 10:44:53.234736: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10.0
2019-11-07 10:44:53.234748: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10.0
2019-11-07 10:44:53.234760: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2019-11-07 10:44:53.237620: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1674] Adding visible gpu devices: 0, 1
2019-11-07 10:44:53.237669: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2019-11-07 10:44:53.239881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1087] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-07 10:44:53.239900: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1093]      0 1
2019-11-07 10:44:53.239912: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1106] 0:   N N
2019-11-07 10:44:53.239922: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1106] 1:   N N
2019-11-07 10:44:53.242394: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1232] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10312 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:86:00.0, compute capability: 7.5)
2019-11-07 10:44:53.243757: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1232] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 10312 MB memory) -> physical GPU (device: 1, name: GeForce RTX 2080 Ti, pci bus id: 0000:af:00.0, compute capability: 7.5)
Number of devices in strategy: 2
Train for 548.0 steps
Epoch 1/10
2019-11-07 10:45:11.764680: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2019-11-07 10:45:13.747993: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2019-11-07 10:45:15.307911: E tensorflow/stream_executor/cuda/cuda_driver.cc:948] failed to synchronize the stop event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.307949: E tensorflow/stream_executor/gpu/gpu_timer.cc:55] Internal: Error destroying CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.307957: E tensorflow/stream_executor/gpu/gpu_timer.cc:60] Internal: Error destroying CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.307992: I tensorflow/stream_executor/cuda/cuda_driver.cc:801] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.308001: E tensorflow/stream_executor/stream.cc:5452] Internal: Failed to enqueue async memset operation: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.308017: W tensorflow/core/kernels/gpu_utils.cc:68] Failed to check cudnn convolutions for out-of-bounds reads and writes with an error message: 'Failed to load in-memory CUBIN: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered'; skipping this check. This only means that we won't check cudnn for out-of-bounds reads and writes. This message will only be printed once.
2019-11-07 10:45:15.308032: I tensorflow/stream_executor/cuda/cuda_driver.cc:801] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.308044: I tensorflow/stream_executor/stream.cc:4963] [stream=0x62f2a40,impl=0x62f1230] did not memzero GPU location; source: 0x7fcf977fbfd0
2019-11-07 10:45:15.308500: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([16,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
         [[loss/mul/_10]]
2019-11-07 10:45:15.308571: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([16,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
         [[metrics/accuracy/div_no_nan/AddN_1/_32]]
2019-11-07 10:45:15.308780: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([16,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
2019-11-07 10:45:15.332853: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2019-11-07 10:45:15.333219: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
  1/548 [..............................] - ETA: 2:39:09Traceback (most recent call last):
  File "src/test/multi_gpu_training_colab.py", line 81, in <module>
    workers=8)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 778, in fit
    use_multiprocessing=use_multiprocessing)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 338, in fit
    total_epochs=epochs)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 128, in run_one_epoch
    batch_outs = execution_function(iterator)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2_utils.py", line 86, in execution_function
    distributed_function(input_fn))
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 568, in __call__
    result = self._call(*args, **kwds)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 632, in _call
    return self._stateless_fn(*args, **kwds)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 2339, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1589, in _filtered_call
    self.captured_inputs)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1670, in _call_flat
    ctx, args, cancellation_manager=cancellation_manager))
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 521, in call
    ctx=ctx)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py", line 67, in quick_execute
    six.raise_from(core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.InternalError: 2 root error(s) found.
  (0) Internal:  cuDNN launch failure : input shape([16,3,262,262]) filter shape([7,7,3,64])
         [[node replica_1/resnet50/conv1_conv/Conv2D (defined at usr/lib/python3.7/threading.py:917) ]]
         [[loss/mul/_10]]
  (1) Internal:  cuDNN launch failure : input shape([16,3,262,262]) filter shape([7,7,3,64])
         [[node replica_1/resnet50/conv1_conv/Conv2D (defined at usr/lib/python3.7/threading.py:917) ]]
0 successful operations.
1 derived errors ignored. [Op:__inference_distributed_function_36243]

Function call stack:
distributed_function -> distributed_function

2019-11-07 10:45:15.777040: I tensorflow/stream_executor/stream.cc:1990] [stream=0x5ab9030,impl=0x62f1330] did not wait for [stream=0x62f2a40,impl=0x62f1230]
2019-11-07 10:45:15.777095: I tensorflow/stream_executor/stream.cc:4938] [stream=0x5ab9030,impl=0x62f1330] did not memcpy host-to-device; source: 0x7fcf8007e000
2019-11-07 10:45:15.777129: E tensorflow/stream_executor/stream.cc:332] Error recording event in stream: Error recording CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered; not marking stream as bad, as the Event object may be at fault. Monitor for further errors.
2019-11-07 10:45:15.777161: E tensorflow/stream_executor/cuda/cuda_event.cc:29] Error polling for event status: failed to query event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-07 10:45:15.777181: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:273] Unexpected Event status: 1

The device interconnect matrix seems a bit odd, but we don't know if thats an issue for a distributed strategy:
2019-11-07 10:44:53.239881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1087] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-07 10:44:53.239900: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1093]      0 1
2019-11-07 10:44:53.239912: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1106] 0:   N N
2019-11-07 10:44:53.239922: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1106] 1:   N N

It seems the low level drivers work fine, see the dumps of nvidia-smi, nvidia-smi topo, cuda deviceQuery and NCCL All reduce test.
nvidia_smi_topo.txt
nvidia_smi.txt
nccl_allreduce.txt
cuda_device_query.txt

Hi - if the code works with 1 GPU but not 2, perhaps the issue is with how we are handling the gradient all reduce across the 2 GPUs in absence of NVLINK. To test this hypothesis, can you re-run your code with the following change:
strategy = tf.distribute.MirroredStrategy(
    cross_device_ops=tf.distribute.ReductionToOneDevice(reduce_to_device="cpu:0"))

This should force it to do the communication through the CPU.

cc @dubey @yuefengz

Hi - if the code works with 1 GPU but not 2, perhaps the issue is with how we are handling the gradient all reduce across the 2 GPUs in absence of NVLINK. To test this hypothesis, can you re-run your code with the following change:
strategy = tf.distribute.MirroredStrategy(
    cross_device_ops=tf.distribute.ReductionToOneDevice(reduce_to_device="cpu:0"))

This should force it to do the communication through the CPU.

thanks for your reply.
unfortunately it crashes with more or less the same error messages :
Train for 274.0 steps
Epoch 1/10
2019-11-11 08:41:12.723892: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2019-11-11 08:41:14.713167: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2019-11-11 08:41:16.401051: E tensorflow/stream_executor/cuda/cuda_driver.cc:948] failed to synchronize the stop event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401096: E tensorflow/stream_executor/gpu/gpu_timer.cc:55] Internal: Error destroying CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401106: E tensorflow/stream_executor/gpu/gpu_timer.cc:60] Internal: Error destroying CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401149: I tensorflow/stream_executor/cuda/cuda_driver.cc:801] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401162: E tensorflow/stream_executor/stream.cc:5452] Internal: Failed to enqueue async memset operation: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401182: W tensorflow/core/kernels/gpu_utils.cc:68] Failed to check cudnn convolutions for out-of-bounds reads and writes with an error message: 'Failed to load in-memory CUBIN: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered'; skipping this check. This only means that we won't check cudnn for out-of-bounds reads and writes. This message will only be printed once.
2019-11-11 08:41:16.401197: I tensorflow/stream_executor/cuda/cuda_driver.cc:801] failed to allocate 8B (8 bytes) from device: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.401209: I tensorflow/stream_executor/stream.cc:4963] [stream=0x5a6a5c0,impl=0x5a68db0] did not memzero GPU location; source: 0x7fbf9bffcfd0
2019-11-11 08:41:16.401718: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([32,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
         [[Adam/AddN_59/_1310]]
2019-11-11 08:41:16.401802: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([32,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
         [[FusedBatchNormGradV3_30/_1010]]
2019-11-11 08:41:16.407012: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: cuDNN launch failure : input shape([32,3,262,262]) filter shape([7,7,3,64])
         [[{{node replica_1/resnet50/conv1_conv/Conv2D}}]]
2019-11-11 08:41:16.407636: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2019-11-11 08:41:16.408077: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
  1/274 [..............................] - ETA: 1:13:30Traceback (most recent call last):
  File "src/test/multi_gpu_training_tf_dataset.py", line 59, in <module>
    workers=8)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 778, in fit
    use_multiprocessing=use_multiprocessing)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 338, in fit
    total_epochs=epochs)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 128, in run_one_epoch
    batch_outs = execution_function(iterator)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2_utils.py", line 86, in execution_function
    distributed_function(input_fn))
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 568, in __call__
    result = self._call(*args, **kwds)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 632, in _call
    return self._stateless_fn(*args, **kwds)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 2339, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1589, in _filtered_call
    self.captured_inputs)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 1670, in _call_flat
    ctx, args, cancellation_manager=cancellation_manager))
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 521, in call
    ctx=ctx)
  File "/home/sam2/workspace/python_venvs/tf-2/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py", line 67, in quick_execute
    six.raise_from(core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.InternalError: 2 root error(s) found.
  (0) Internal:  cuDNN launch failure : input shape([32,3,262,262]) filter shape([7,7,3,64])
         [[node replica_1/resnet50/conv1_conv/Conv2D (defined at usr/lib/python3.7/threading.py:917) ]]
  (1) Internal:  cuDNN launch failure : input shape([32,3,262,262]) filter shape([7,7,3,64])
         [[node replica_1/resnet50/conv1_conv/Conv2D (defined at usr/lib/python3.7/threading.py:917) ]]
         [[Adam/AddN_59/_1310]]
0 successful operations.
1 derived errors ignored. [Op:__inference_distributed_function_32351]

Function call stack:
distributed_function -> distributed_function

2019-11-11 08:41:16.724607: I tensorflow/stream_executor/stream.cc:1990] [stream=0x5230f90,impl=0x5a68eb0] did not wait for [stream=0x5a6a5c0,impl=0x5a68db0]
2019-11-11 08:41:16.724650: I tensorflow/stream_executor/stream.cc:4938] [stream=0x5230f90,impl=0x5a68eb0] did not memcpy host-to-device; source: 0x7fc3102069c0
2019-11-11 08:41:16.724695: E tensorflow/stream_executor/stream.cc:332] Error recording event in stream: Error recording CUDA event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered; not marking stream as bad, as the Event object may be at fault. Monitor for further errors.
2019-11-11 08:41:16.724711: E tensorflow/stream_executor/cuda/cuda_event.cc:29] Error polling for event status: failed to query event: CUDA_ERROR_ILLEGAL_INSTRUCTION: an illegal instruction was encountered
2019-11-11 08:41:16.724722: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:273] Unexpected Event status: 1
Aborted

i got access to a nvidia dgx workstation over the weekend to run the script. there the script runs without any problems. but it is using an older nvidia-driver and linux kernel version.  i'm guessing our problem is somewhere in the API between kernel / driver / tensorflow. is there any way to debug these interfaces or logs containing more information ?

Oh I see. yeah in that case this sounds like a driver/TF mismatch problem. @tatianashp can someone on your team help?

@chsigg, any thoughts? Thanks.

Any updates? I experienced a similar problem. The training does not start with the following code (Last line is Epoch 1/25 - but there is no error message). The memory of the GPUs remains allocated afterwards (restart must be forced).
import numpy as np

import tensorflow as tf
import tensorflow.keras as keras
import tensorflow.keras.layers as layers
import tensorflow.keras.backend as K

NUM_WORKERS = 2

data = np.random.uniform(-1.0, 1.0, (10000, 192, 256, 3))
labels = np.random.uniform(-1.0, 1.0, (10000, 10))

def get_model():
    inputs = keras.Input(shape=(192, 256, 3), name='rgb_input')

    net = layers.Conv2D(16, 9, 2, 'same', activation='relu')(inputs)
    net = layers.Flatten()(net)
    net = layers.Dense(10, activation=K.tanh)(net)

    return keras.Model(inputs=inputs, outputs=net)

strategy = tf.distribute.MirroredStrategy()

with strategy.scope():

    model = get_model()
    model.compile(
        optimizer=keras.optimizers.Adam(3e-4),
        loss=keras.losses.MeanSquaredError(),
        metrics=[keras.metrics.MeanAbsoluteError()])

model.fit(data, labels, batch_size=128 * NUM_WORKERS, epochs=25)

But if i change the strategy in the following way, then it starts (the utilization is bad, but it works).
strategy = tf.distribute.MirroredStrategy(
    cross_device_ops=tf.distribute.ReductionToOneDevice(reduce_to_device="cpu:0"))

Setup:

Ubuntu 18.04
tensorflow-gpu==2.0.0 (installed via pip)
GeForce GTX 1080 TI
python 3.6 (also tried python 2.7)
CUDA / CuDNN: 10.0/7.6.0

@patrick-schulte do you have a device-interconnect matrix with y inside?

@m4tts yes

@m4tts Does it make a difference if you run with the environment variable TF_DISABLE_RZ_CHECK set to 1?  I'm wondering if this is a problem with the custom PTX we use to check for errors in cuDNN.

sorry for the late response.
after lots of desparation I found the gpu-burn test.
as it seemed, our GPU was faulty. the test had returned the following :
./gpu_burn 120
GPU 0: GeForce RTX 2080 Ti (UUID: [HIDDEN])
GPU 1: GeForce RTX 2080 Ti (UUID: [HIDDEN])
Initialized device 0 with 11019 MB of memory (10788 MB available, using 9709 MB of it), using FLOATS
Initialized device 1 with 11019 MB of memory (10788 MB available, using 9709 MB of it), using FLOATS
10.8%  proc'd: 8456 (11934 Gflop/s) - 6644 (10153 Gflop/s)   errors: 0 -<PHONE_NUMBER>  (WARNING!)  temps: 32 C - 39 C
        Summary at:   Tue Nov 12 09:38:10 CET 2019

21.7%  proc'd: 17516 (11934 Gflop/s) - 14496 (10153 Gflop/s)   errors: 0 - 630154421  (WARNING!)  temps: 32 C - 39 C
        Summary at:   Tue Nov 12 09:38:23 CET 2019

32.5%  proc'd: 25972 (11519 Gflop/s) - 22348 (10151 Gflop/s)   errors: 0 - -1754308719  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:38:36 CET 2019

43.3%  proc'd: 34428 (11513 Gflop/s) - 30200 (10151 Gflop/s)   errors: 0 -<PHONE_NUMBER>  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:38:49 CET 2019

53.3%  proc'd: 42884 (11387 Gflop/s) - 36844 (10153 Gflop/s)   errors: 0 - 14688317  (WARNING!)  temps: 60 C - 39 C  C
        Summary at:   Tue Nov 12 09:39:01 CET 2019

64.2%  proc'd: 51944 (11391 Gflop/s) - 44696 (10153 Gflop/s)   errors: 0 -<PHONE_NUMBER>  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:39:14 CET 2019

75.0%  proc'd: 59796 (11391 Gflop/s) - 52548 (10154 Gflop/s)   errors: 0 - -1156948305  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:39:27 CET 2019

85.8%  proc'd: 68252 (11092 Gflop/s) - 60400 (10161 Gflop/s)   errors: 0 - -1474718451  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:39:40 CET 2019

96.7%  proc'd: 77312 (11090 Gflop/s) - 67648 (10158 Gflop/s)   errors: 0 -<PHONE_NUMBER>  (WARNING!)  temps: 60 C - 39 C
        Summary at:   Tue Nov 12 09:39:53 CET 2019

100.0%  proc'd: 80332 (11090 Gflop/s) - 70668 (10157 Gflop/s)   errors: 0 - -1670660404  (WARNING!)  temps: 60 C - 39 C
Killing processes.. done

Tested 2 GPUs:
        GPU 0: OK
        GPU 1: FAULTY

I returned the GPU to the distributor on got a new one. and now everything works like a charm.
@sanjoy I was not able to test this, since the GPU was allready shipped to the distributor. but it would make sense that there was an error in cuDNN if the GPU was faulty. maybe there would be a way tensorflow could test this or give a hint in that direction?
I thought of every possibility, but it never came to my mind, that the GPU could be faulty because every CUDA and NCCLTest was fine.

maybe there would be a way tensorflow could test this or give a hint in that direction?

I think it is difficult to go from CUDNN_STATUS_INTERNAL_ERROR to "GPU may be faulty" since there are many other reasons why cuDNN will return this error.
However, maybe we should link to the  gpu-burn test from the TF docs as something users should consider?  CC @dynamicwebpaige

However, maybe we should link to the gpu-burn test from the TF docs as something users should consider?

I think this is a great idea. I don't know how often GPUs actually break down but in my case, I never really considered it. To have it linked in a troubleshooting or similar section would be really helpful.

I had similar problem, but with training only on one GPU without any strategy. The training freezed after tf.data prefetched first batches.
Setting TF_DISABLE_RZ_CHECK=1 helped, I also did gpu-burn, but no errors have shown.


Upgrade Boost to 1.84

The boost version 1.84 fixes a bug that prevents
the addition of a group of inverse functions.
The fix was provided in Boost PR
https://github.com/boostorg/math/pull/1007
The update occurs for the setup scripts for CentOS and Ubuntu. MacOS already installs the
latest available Boost version on brew.
In addition, the requirement for the Boost version is updated to make sure the proper version is used.
There is no known build problem when upgrading the version.

This PR also takes care of switching the source of boost away from artifactory boostorg.jfrog.io which is currently being also being proposed in PR https://github.com/facebookincubator/velox/pull/8211. However, it now gets the source from github using version tag instead.

Don't we have to mandate the minimum version of boost to be 1.84 in the CMakeLists.txt?
Can you also update boost version in the README?
https://github.com/facebookincubator/velox/blob/main/CMake/resolve_dependency_modules/README.md

Don't we have to mandate the minimum version of boost to be 1.84 in the CMakeLists.txt? Can you also update boost version in the README? https://github.com/facebookincubator/velox/blob/main/CMake/resolve_dependency_modules/README.md

I was thinking we could do this as a second step  when the first dependent function is added but I suppose it can be done here as well.
Will update the README.

I was thinking we could do this as a second step when the first dependent function is added but I suppose it can be done here as well.

I see. Let's do this here so that the expectations are clear. Can you also add a link https://github.com/facebookincubator/velox/pull/5382 to the discussion on this in the description?

I guess we can re-open https://github.com/facebookincubator/velox/pull/5382 after this lands and the CI image is updated.

@Yuhta, we are upgrading Boost and making it the minimum version to get the fix you made in the Boost library.
Do you have any thoughts on this? See issue https://github.com/facebookincubator/velox/pull/5382 for context.

I see that some of the CI jobs require boost 1.84 to be installed in the CI image. We cannot mandate 1.84 in this PR unless we bundle Boost in those CI jobs.
Your original proposal to mandate 1.84 in a separate PR is cleaner. Let's do that. Sorry for the confusion.

@majetideepak Will this require us to create a new Prestissimo container with boost 1.84 installed ?

@majetideepak Will this require us to create a new Prestissimo container with boost 1.84 installed ?

Yes, I think so. This also applies to the fmt change in the other PR. When the Velox is updated in prestissimo there should also be a new container as far as I understand it. So probably want to bundle this update so it needs to be done only once.

@kgpai prestissimo will not need a new image until we mandate 1.84. Even then it will bundle if it does not find the right boost version.
@czentgr can we also revert the doc change until we mandate the version?

Thanks @majetideepak, One more question: folly is dependent on boost, if system folly is built against an older version and velox bundles a newer version , would that cause problems. Would we need to ask people to rerun setup scripts?

folly is dependent on boost, if system folly is built against an older version and velox bundles a newer version , would that cause problems

Technically, this is not a new problem. Even before this PR, someone could build folly with an older boost version and Velox vendors 1.81.0. But practically, there is a non-zero chance of conflict with 1.84.0.
But most developers are on MacOS and are using the latest boost (1.84.0) from brew. The recent dependency upgrade should have brought in 1.84.0 already.

@kgpai do you think we can move ahead with this?
Perhaps I could put in something in the PR description to re-run the boost and folly installs? Now that Deepak's PR got merged that allows individual package rebuilds in CentOS e.g. setup-centos.sh install_boost install_folly it should be fairly easy for users to update dependencies. Ubuntu already had this capability while MacOS in this case is handled using brew.

@czentgr can you make sure you rebase to latest main..

Should we update CMake/resolve_dependency_modules/README.md?

@mbasmanova Afaik, this change does not mandate 1.84 so we do not need to update the readme .
@czentgr, @majetideepak  I understand that mandating this version will be a different PR that requires the bug fix provided in 1.84?

Correct, we specifically removed the change to the README again (it was present before in the PR) because: https://github.com/facebookincubator/velox/pull/8679#issuecomment-1935172458
Now, the next step would be to add a function that makes use of the fix (one of the inverse functions).
Alternatively, we can make new PR to require the new version - update the README - and have the build images updated before adding a new function to see how it is going?

@czentgr If i am not mistaken, merging this change should build the images with boost 1.84 so the next pr can take it as supported (if not we will know by failures in said pr).

Then the next PR adding the function just can set this version as required (making sure the fix is present).

Looks CI failed with boost header file not found with latest main. Is it related to this change?
Thanks.
https://github.com/facebookincubator/velox/actions/runs/8119444457/job/22195340396?pr=8934
In file included from /home/runner/work/velox/velox/velox/velox/functions/sparksql/Register.cpp:40:
/home/runner/work/velox/velox/velox/./velox/functions/sparksql/String.h:20:10: fatal error: boost/locale.hpp: No such file or directory
   20 | #include <boost/locale.hpp>

@zhli1142015 Yes. The benchmark builds the bundled boost version. Previously, it was installed from the package manager.
There are two options:

The file is actually not needed.
The dependency to boost has to be declared.

Looking into it. Trying to repro.

@zhli1142015 I was able to locally repro and fix the issue: https://github.com/facebookincubator/velox/pull/8936


Suggest some workaround - webshim Polyfill breaks due to jquery upgrade 3.6.0

Recently I have upgraded jquery to 3.6.0 for some security reason, after which the webshim was breaking. Due to which other script files are also not working.
Kindly suggest some workaround to fix the issue.

First line of /readme.md:
Important note: Webshim is not compatible with upcoming jQuery 3.x and I do not plan to work on a new major version. I will still fix critical bugs in the future though.
Latest commit date/time of that file is: Jul 22, 2015
This means current repo has been deprecated in jQuery 2.x era, few last months before first release of jQuery 3.x on June 9, 2016!
I suggest you to use jQuery Migrate Plugin as an semi-stable and non-deterministic fast solution.
Or...
I recommend you Fork this repo and adapt its codes to be compatible with jQuery 3.x based on jQuery Migrate Plugin documentations as a God-pleasing solution.
Or...
Forgot jQuery 3.x and down-grade your codes to be compatible with jQuery 2.x as a rational fast solution.

@PerseusTheGreat, Thank you for your great support, The jquery migrate plugin worked for me.

@rajeshkannavelu
Adapting code is truly best technical solution but it will be the expensive way (more time -> more cost).

Got it, Thanks!


polyphone's classification

hi, i find for anyone polyphone the netwok's output is a id, and then you can get pinyin from idx2class, i want to know how can you
ensure the output id is one of the classifications? thank you.

We map every pinyin to unique number (id) and save its inverse map (Id -> pinyin) into the dictionary, which is idx2class.
So we can convert the network's output into unique pinyin.

We map every pinyin to unique number (id) and save its inverse map (Id -> pinyin) into the dictionary, which is idx2class.
So we can convert the network's output into unique pinyin.