Fix cascading aborts

fixes #809

@ayj please review as well, we need all our eyes.

It looks like we are not fixing the problem, just reducing the likelihood this happens.

Jenkins job manager/presubmit passed

Jenkins job manager/presubmit passed

Well, manager agent is already hiding problems with proxy - it was not at
all obvious that proxy was not starting.
Letting K8s restart - or notify/mark the process as bad instead of
duplicating the backoff/retry would be safer,
and k8s can also recover better if the problem is caused by the node.
Unless we have some good way to alert or notify user of manager problems -
exiting manager and letting k8s retry
seems safer.
On Tue, May 23, 2017 at 3:09 PM, Kuat<EMAIL_ADDRESS>wrote:

@kyessenov commented on this pull request.
In proxy/agent.go
https://github.com/istio/manager/pull/812#discussion_r118118678:

@@ -78,6 +78,12 @@ var (
}
)

+const (

// MaxAborts is the maximum number of cascading abort messages to buffer.
// This should be the upper bound on the number of proxies available at any point in time.
MaxAborts = 10

If this goes above 10 something must be very wrong with envoy, and making
it unlimited will just hide the problem.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/istio/manager/pull/812#discussion_r118118678, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFI6rrB0mr5YbZ86k7L858LqpfgIDa2ks5r81kZgaJpZM4NkUsH
.

We don't want to restart application containers because of frequent proxy crashes, and k8s doesn't allow restarting individual containers. The solution is to use health checks, which you should be using the demo anyways.

Jenkins job manager/presubmit passed

Jenkins job manager/presubmit passed

Jenkins job manager/e2e-smoketest passed

TestCascadingAbort seems more like a livelock than a deadlock. Where is the
dead lock you guys are talking about? It would be good to have some
preamble in the PR to explain the problem
On Tue, May 23, 2017 at 5:02 PM istio-testing<EMAIL_ADDRESS>wrote:

Jenkins job manager/e2e-smoketest passed
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/manager/pull/812#issuecomment-303556580, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0qd1Bh4o28E2Fvte_CQL_dD2BKjXKiks5r82UtgaJpZM4NkUsH
.

--
~shriram

The test is supposed to deadlock if the abort channel is full. So the fact that it completes is validating that aborts don't deadlock.

That was not my point. I still don't know what the problem was that this PR
solved. There was a lot of discussion about deadlock, aborts, etc. the PR
has no context in the description. All I gathered was some text from the
comments.
So it's hard to take a critical look at things without context.
Either way, did this resolve the problem that dan berg reported?
On Tue, May 23, 2017 at 6:00 PM Kuat<EMAIL_ADDRESS>wrote:

The test is supposed to deadlock if the abort channel is full. So the fact
that it completes is validating that aborts don't deadlock.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/manager/pull/812#issuecomment-303568910, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0qd19BwWemY8X-Z5OgH3ho9o2o9Zw8ks5r82_5gaJpZM4NkUsH
.

--
~shriram

The problem was the agent blocked on channel write because channel is full. Channel was full because aborts cascaded and filled it up.


Error when running example 01

Hello,
I am trying to use a Docker image of Bioautomated to train a model. The Keras models is giving me an error as described below:
I think is some error with TensorFlow. Any ideas how to solve it?
Also, I updated the dockerfile to FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04  instead of FROM ubuntu:18.04 to be able to use CUDA GPU.
Thanks!
ValueError                                Traceback (most recent call last)
<ipython-input-23-843a191e193a> in <module>
     15 output_folder = './exemplars/test/outputs/'
     16
---> 17 run_bioautomated(task, data_folder, data_file, sequence_type, model_folder, output_folder, input_col=input_col, target_col=target_col, max_runtime_minutes=max_runtime_minutes, num_folds=num_folds, verbosity=verbosity, num_final_epochs=num_final_epochs, yaml_params=yaml_params, num_generations=num_generations, population_size=population_size)

/home/jovyan/main_classes/wrapper.py in run_bioautomated(task, data_folder, data_file, sequence_type, model_folder, output_folder, automl_search_techniques, do_backup, max_runtime_minutes, num_folds, verbosity, do_auto_bin, bin_threshold, do_transform, input_col, target_col, pad_seqs, augment_data, dataset_robustness, num_final_epochs, yaml_params, num_generations, population_size, run_interpretation, interpret_params, run_design, design_params)
    581         print("#################################################################################################")
    582         print('')
--> 583         run_binaryclass(data_folder, data_file, sequence_type, model_folder, output_folder, automl_search_techniques, max_runtime_minutes, num_folds, verbosity, do_backup, do_auto_bin, bin_threshold, input_col, target_col, pad_seqs, augment_data, dataset_robustness, num_final_epochs, yaml_params, num_generations, population_size, run_interpretation, interpret_params, run_design, design_params)
    584
    585     elif task == 'multiclass_classification':

/home/jovyan/main_classes/wrapper.py in run_binaryclass(data_folder, data_file, sequence_type, model_folder, output_folder, automl_search_techniques, max_runtime_minutes, num_folds, verbosity, do_backup, do_auto_bin, bin_threshold, input_col, target_col, pad_seqs, augment_data, dataset_robustness, num_final_epochs, yaml_params, num_generations, population_size, run_interpretation, interpret_params, run_design, design_params)
    102
    103         dsc = DeepSwarmClassification(data_path, model_folder + run_folder, output_folder + run_folder, max_runtime=max_runtime_minutes, num_folds=num_folds, sequence_type=sequence_type, do_auto_bin=do_auto_bin, bin_threshold=bin_threshold, verbosity=verbosity, yaml_params=yaml_params, num_final_epochs=num_final_epochs, input_col=input_col, target_col=target_col, pad_seqs=pad_seqs, augment_data=augment_data, multiclass=False, dataset_robustness=dataset_robustness, run_interpretation = run_interpretation, interpret_params = interpret_params, run_design = run_design, design_params = design_params)
--> 104         dsc.run_system()
    105
    106         # create backup folder

/home/jovyan/main_classes/generic_deepswarm.py in run_system(self)
    445
    446             # run deepswarm to find best model
--> 447             backend, deepswarm, topology, base_model  = self.find_best_architecture(X, y,)
    448
    449             seed = 7

/home/jovyan/main_classes/generic_deepswarm.py in find_best_architecture(self, X, y)
    308         # Save the DeepSwarm optimal topology with reinitialized weights
    309         topology = base_model
--> 310         reset_weights(topology)
    311
    312         topology.save(self.model_folder + 'deepswarm_topology.h5')

/home/jovyan/main_classes/generic_deepswarm.py in reset_weights(model)
    100     for layer in model.layers:
    101         if hasattr(layer, 'kernel_initializer'):
--> 102             layer.kernel.initializer.run(session=session)
    103
    104 def fit_final_model(topology_path, num_epochs, compile_model, X, y):

/opt/miniconda/envs/automl_py37/lib/python3.7/site-packages/tensorflow/python/framework/ops.py in run(self, feed_dict, session)
   2448         none, the default session will be used.
   2449     """
-> 2450     _run_using_default_session(self, feed_dict, self.graph, session)
   2451
   2452 _gradient_registry = registry.Registry("gradient")

/opt/miniconda/envs/automl_py37/lib/python3.7/site-packages/tensorflow/python/framework/ops.py in _run_using_default_session(operation, feed_dict, graph, session)
   5211   else:
   5212     if session.graph is not graph:
-> 5213       raise ValueError("Cannot use the given session to execute operation: "
   5214                        "the operation's graph is different from the session's "
   5215                        "graph.")

ValueError: Cannot use the given session to execute operation: the operation's graph is different from the session's graph.

Ok, I restarted the kernel and it took care of the error. But now I am stuck in The Keras model (Deepswarm was very fast):
#################################################################################################
#######################               RUNNING BINARY CLASSIFICATION            ##################
#################################################################################################

#################################################################################################
##############################            RUNNING DEEPSWARM           ###########################
#################################################################################################
Conducting architecture search now...
Testing scrambled control now...
Fitting final model now...
#################################################################################################
##############################            RUNNING AUTOKERAS           ###########################
#################################################################################################
Conducting architecture search now...

Any ideas?

Hi Lucas, AutoKeras can be pretty slow, compared to DeepSwarm, depending on the resources available to you. You can see the time differences we found in our Figure S2.
Can I ask what your max_runtime_minutes is set to? I sometimes raise it to 180 and let AutoKeras run overnight. Furthermore, is your dataset really large? For huge datasets (e.g., >100K sequences), it might make sense to find an optimal architecture with a subset of the dataset and then train on the identified model architecture with all sequences. Lastly, you may need to play with the -shm-size flag as in our installation guide (bullet point under step #5 in option 1).


Unable to overwrite isdefault

We are creating our own addcustomview to override the OOB filtered lookup ; But the view is available now in the lookup but it is not overriding isdefault (Our view is not being set as default even though specified)

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

ID: 900de2ab-7892-7c8c-014e-9acacfba265d
Version Independent ID: ab0e41ac-7b93-8253-2a6c-5a0b3fac9bb0
Content: addCustomView (Client API reference) in model-driven apps - Power Apps
Content Source: powerapps-docs/developer/model-driven-apps/clientapi/reference/controls/addCustomView.md
Service: powerapps
GitHub Login: @KumarVivek
Microsoft Alias: kvivek

This is actually because the OOB script is triggering after our custom triggers (even though configured otherwise ) . Though this is an issue but is not related to the method.
Thanks for looking into it


FR3. Chat/Context Memory

FR3. Chat/Context Memory

Goal: The response generated by Ducki should utilize the user's chat history to maintain context, allowing for more accurate responses.
Stakeholders: All
Description: The program will be able to process user input and its own output to develop a context, providing guided answers to the user.
Origin: Based on the initial project specification document, team members came up with this description during the first group meeting.
Version: 1.0
Date: 09/14/2024
Priority: 1

duplicate


output ether ID instead of command

This PR has been converted to a patch and pushed to the mainline, with minor modifications. Thanks so much!


Missing C/C++ docs

Some packages, e.g. minorminer, have doxygen documentation that is currently missing from the unified docs.

minorminer c++ docs have been fixed in https://github.com/dwavesystems/minorminer/pull/167, released in 0.2.5 (latest stable).
@arcondello, did you have any other package in mind, or we can close this issue?


The support for Pageable of spring-data-commons is available out-of-the box since springdoc-openapi v1.6.0

Expose paging information don't need dependence springdoc-openapi-data-rest after springdoc-openapi v1.6.0.
Information from springdoc

Thanks for the feedback. We'll take a look into this.

We've updated the article.


Wallet should update balance

Wallet should update balances of your tokens without having to refresh the browser.

Should be ready in 2-3 minutes

https://github.com/temptemp3/arc-200/assets/23183451/fa20ec57-cb5c-4824-8c56-423c90bdd288

Approved


Documentation URL on the sidebar is wrong

It points to https://bookish-spoon-63gwe7e.pages.github.io/, but docs are hosted at https://juliacomputing.github.io/ModelTesting.jl/stable/

Oops, was an internal URL while this repository was internal. Thank you!


Fix to allow text input in web components.

Without this, the extension will perform a search instead of allowing input. To see this in action, try the following:

The search input here: http://www.twelvetone.tv/iron-icons-search/index.html
The email input here: https://vaadin.com/components/vaadin-email-field/html-examples/email-field-demos
Combo box text input: https://vaadin.com/components/vaadin-combo-box/html-examples
Any other text input inside a web component.

There may be a better way to allow text input inside web components, but this small change seems to fix the problem without breaking anything else (at least in my own usage so far).

@tokland Any word about the review process? Curious what kind of timeframe that typically happens in. Thanks!

@tokland I'm wondering if we need to bump the version for Google to pick up the latest version? This PR still isn't live in the Chrome Web Store. If you'd like to me to submit another PR with a version bump, lmk. Thanks!

@tokland I'm wondering if we need to bump the version for Google to pick up the latest version? This PR still isn't live in the Chrome Web Store. If you'd like to me to submit another PR with a version bump, lmk. Thanks!

I don't use the extension anymore. Would you be interested in maintaining code and publishing it?

I don't use the extension anymore. Would you be interested in maintaining code and publishing it?

@tokland I'd be happy to, as I use it every day, all the time, so keeping it updated shouldn't be an issue (especially as it's proven to be remarkably stable over the years). I've emailed you if you'd like to discuss there, or we can continue here.

@tokland I'd be happy to, as I use it every day, all the time, so keeping it updated shouldn't be an issue (especially as it's proven to be remarkably stable over the years). I've emailed you if you'd like to discuss there, or we can continue here.


Possible error - 3rd Ed. - Page 75

Pg. 75, third line:

Notice that the columns all sum up to one

should probably be

Notice that the rows all sum up to one

Hm, yeah, what I meant was when you add up the columns, you will get a vector of ones. I.e., the value of the 1st, 2nd, and 3rd column sum up to one.


Create twitch-emotes

Adds Twitch Global Emotes to chat, similar to the Emojis plugin.

You need to fix your runelite-plugin.properties. Specifically, you need to change com.TwitchEmotes.TwitchEmotesPlugin to com.TwitchEmotes.TwitchEmotePlugin (no s after Emote

Ah yup, I changed that halfway through and knew I would miss it somewhere.

Someone brought up on Discord - I don't think we have the rights to redistribute the twitch emote icons?

Yeah, turns out it'd need permission. I've shot an email to their brand questions address and am waiting to hear back. This will have to sit in purgatory until then.


Generated.Routes and Generated.Pages Import Errors

Using Windows 10, elm-spa 3.0.3, elm 0.19.1
Generated.Routes and Generated.Pages imports in VSCode / Atom show errors.
They are also shown in the browser and in the console from time to time.
Stopping the process and doing 'npm start' again makes the errors in the browser and console dissapear but errors in VSCode / Atom remain.
-- MODULE NOT FOUND --------------- C:\xampp\htdocs\elm-spa-dev\src\Global.elm

You are trying to import a `Generated.Routes` module:

10| import Generated.Routes as Routes exposing (Route)
           ^^^^^^^^^^^^^^^^
I checked the "dependencies" and "source-directories" listed in your elm.json,
but I cannot find it! Maybe it is a typo for one of these names?

    Generated.Route
    Generated.Pages
    Generated.Params
    Html.Attributes

Hint: If it is not a typo, check the "dependencies" and "source-directories" of
your elm.json to make sure all the packages you need are listed there!,-- MODULE NOT FOUND --------------- C:\xampp\htdocs\elm-spa-dev\src\Main.elm

You are trying to import a `Generated.Pages` module:

3| import Generated.Pages as Pages
          ^^^^^^^^^^^^^^^
I checked the "dependencies" and "source-directories" listed in your elm.json,
but I cannot find it! Maybe it is a typo for one of these names?

    Generated.Params
    Generated.Route
    Spa.Page
    Element.Keyed

Hint: If it is not a typo, check the "dependencies" and "source-directories" of
your elm.json to make sure all the packages you need are listed there!,-- MODULE NOT FOUND --------------- C:\xampp\htdocs\elm-spa-dev\src\Main.elm

You are trying to import a `Generated.Routes` module:

4| import Generated.Routes as Routes exposing (routes)
          ^^^^^^^^^^^^^^^^
I checked the "dependencies" and "source-directories" listed in your elm.json,
but I cannot find it! Maybe it is a typo for one of these names?

    Generated.Route
    Generated.Params
    Html.Attributes
    Element.Border

Hint: If it is not a typo, check the "dependencies" and "source-directories" of
your elm.json to make sure all the packages you need are listed there!,-- MODULE NOT FOUND --------------- C:\xampp\htdocs\elm-spa-dev\src\Utils\Spa.elm

You are trying to import a `Generated.Routes` module:

15| import Generated.Routes as Routes exposing (Route)
           ^^^^^^^^^^^^^^^^
I checked the "dependencies" and "source-directories" listed in your elm.json,
but I cannot find it! Maybe it is a typo for one of these names?

    Generated.Route
    Generated.Pages
    Generated.Params
    Html.Attributes

Hint: If it is not a typo, check the "dependencies" and "source-directories" of
your elm.json to make sure all the packages you need are listed there!

Steps to reproduce:
Install<EMAIL_ADDRESS>Create new project
Mess about with creating and editing pages until errors are shown
How to avoid:
Use<EMAIL_ADDRESS>instead
Aside:
The YouTube video "elm-spa guide: part 1" mentions you should install elm-spa@latest which currently installs<EMAIL_ADDRESS>

Same problem:
Linux Mint 18.3
elm-spa 3.0.3
elm 0.19.1
I just did a git merge into an earlier branch and I now get:
src/Global.elm
You are trying to import a `Generated.Routes` module:
19| import Generated.Routes as Routes exposing (Route)
           ^^^^^^^^^^^^^^^^
I checked the "dependencies" and "source-directories" listed in your elm.json,
but I cannot find it!

when I attempt to (re)compile.
I undid the git merge and I 'm now unable to compile (same msg as above) on the branch that I could previously
I noticed that I have no files listed in .elm-spa so I'm presuming it's an elm-spa related issue
i.e. I believe that if I can generate the necessary files with elm-spa the app will re-compile.
I returned to<EMAIL_ADDRESS>but the problem persists.
Is there anything else I can try to generate the necessary elm-spa files?

This is fixed in the latest version 🎉
https://elm-spa.dev


Is a change of channel id possible please?

https://github.com/freiheit/discord_feedbot/issues/81
I'm not sure if we made it into the system originally but feedbot is not working on our discord server due to a channel id mismatch.
  I'm setting up a new mechanism to get these feeds into a room on your discord. Join this discord and "Follow" the feeds you want: https://discord.gg/5HK2yQj


Align on Buildpack API policy

Background Context
Recently, a user filed an issue  regarding an issue that arose due to 2 buildpacks in the PHP language family which were on a higher buildpack API version (0.8) than the rest of the language family (0.7). Because of this, builds with the PHP language family on platforms that only support API 0.7 are now broken.
We have seen other instances with buildpack API versioning in this Slack thread around the Go buildpack. The solution in that instance was to roll back to an old API version since none of the features of the newer API were being used.
A single buildpack on a higher API version than the rest of the language family breaks platform compatibility for the entire language family.
Proposal
We should write an RFC that clearly lays out our strategy and/or recommendations as a project as it pertains to buildpack API versioning and platform compatibility concerns. This will hopefully minimize the number of issues we run into regarding platform compatibility and reduce the amount of decision making required by buildpack maintainers.

A probably useful link for deciding on a strategy is the lifecycle's platform and buildpack API version compatibility matrix at https://github.com/buildpacks/lifecycle#supported-api.
I could see us defining the time after a new lifecycle version comes out that supports a new buildpack api version.

If I'm following this, it depends on the platform tools, as the platform tool dictates (although it may be configurable) the lifecycle version being used and it is the lifecycle version that dictates buildpack API support.

I could see us defining the time after a new lifecycle version comes out that supports a new buildpack api version.

+1 that sounds sensible. We don't want to rush, update and break things.
I don't feel like that should be a big deal for pack because you can always update pack or the lifecycle.
I don't know about kpack, I'd defer to someone more up-to-speed with it. Can user's upgrade the lifecycle manually? or does it require a pack update? How quickly does kpack update to new lifecycle versions?
The other platform that is quite popular is the Spring Boot Build Tools. I don't think it allows a custom lifecycle to be set. It would be good to hear from this as well. I know they have some constraints as to when they can update things because of their own versioning system.
Also, we need to make sure that we bump the major version if there is a buildpack API change. This is something we specifically called out in the RFC on semver for Paketo, https://github.com/paketo-buildpacks/rfcs/blob/main/text/0029-semantic-versioning.md#changes. Not that this really solves the issue, but it provides some signal to users that a big change happened.
Lastly, I think that this is another reason to try and push forward with https://github.com/paketo-buildpacks/rfcs/pull/287 because once we can get dependencies out of the buildpacks, we can be more flexible and even have multiple releases which would give users a lot more choice.


ActionMenu: Remove focus trap

For ActionMenu to be accessible, it needs a couple of features that negate the focus trap that we have right now:

Pressing Tab while Menu is open should close menu and move focus to next focusable element (Shift + Tab should move it to previous)

See video
https://user-images.githubusercontent.com/1863771/159462569-aaf9ba21-f061-42cc-adb4-43d08995dbf7.mov

When Menu is opened with mouse click, the focus should stay on the anchor.

See video
https://user-images.githubusercontent.com/1863771/159461309-af8890f3-8b18-4364-be2e-677c59533eec.mov

To make this happen,

We need to disable focus trap for ActionMenu
~2. Render the menu's overlay inline instead of in a portal for natural focus management with Tab to work~

Features that need to be re-implemented after disabling focus trap:

[x] Check for missing features from spec
[x] Add tests
[x] When the menu is open with click:

[x] Pressing Arrow key after menu with click should start keyboard activation video
[x] Typeahead should activate when the menu is open video

~Fixes required after rendering Menu.Overlay inline:~
~- [x] Allow overlay contents to overflow outside so that menu can open with overflow:visible. Broken → Fixed~
~- [x] ActionMenu.Overlay should have z-index > 0~
~- [ ] Are there reasons to regret overflow:visible on Overlay? doesn't look like it~

Found a place where renderInPortal=false backfires :(
You can't render it inline with a container that has position:relative :(
https://user-images.githubusercontent.com/1863771/159739764-b7be6fe7-1431-4a51-83c5-cb4e697b1bf7.mov

@colebemis Can I get another review. Removed renderInPortal and overflow: visible from Overlay, it created more problems than it solved. Don't need that for focus mangement to work correctly :)

@siddharthkp Hi, I just tried the actionmenu in the docs. There is one issue i found that the whole pages scrolls down when we press down arrow key. Is that expected or a bug?

https://user-images.githubusercontent.com/6636360/185539825-0ec1bf4a-e307-4d1a-9c3d-84ee9b117a57.mov

Ouch, that's a bit janky.
🤔 We might need to prevent the scroll event when moving focus for the first time in useMoveFocusToMenuItem

Tracking in https://github.com/primer/react/issues/2250


Create Sawyer Stick Push and Pull V2 Envs and Scripted Policies

Environment now include goal_pos vector similar to other V2 policies

vector used to improve scripted policy writing

Created Scripted Policy for New Env

StickPull Policy passes with accuracy of ~98% with no noise and ~88% with 0.1 action_noise_pct
StickPush Policy passes with accuracy of ~98% with no noise and ~95% with 0.1 action_noise_pct

I'll hold off on approving until you've addressed hayden's comments

Yeah gonna need to do a refactor on these old policies. I'll do them and message you both


Plotting errors

Both matplotlib and bokeh OverlayPlot and ElementPlot update_frame methods would previously choke up when a DynamicMap lookup failed returning a None. This ensures that elements of Nones are handled correctly and also ensures that lookup errors for any exception except for KeyErrors are printed, ensuring that they will show up in the console. Resolves https://github.com/ioam/holoviews/issues/1102

Looks good. Happy to merge if you give me the go-ahead and the tests are green.

Ready to merge.


point-based knowledge distillation implementation

Your excellent work is impressive. I have reviewed your code, and it seems that only voxel-based knowledge distillation is implemented. Have you also implemented point-based knowledge distillation? If I missed it, could you please let me know which file contains the implementation of point-based knowledge distillation?

I have found out the code about point-based kd implementation

Hi @linjie-yang,
I see that you've closed the issue. The code can be found when you search keywords such as kd_loss. The implementations are conducted in different detector source codes.

Thank you for your reply,

Thank you for your response. I noticed that you mentioned in your article, "Note that these layers are trained with the student simultaneously and can be discarded during inference." Does this mean that both the student model and the teacher model, as well as the dynamic graph convolutional network, need to undergo backpropagation, or does it mean freezing the original weights of the teacher model and only updating the weights of the dynamic graph convolutional network for the teacher model and all network weights for the student model?

Hi @linjie-yang,
I see that you've closed the issue. The code can be found when you search keywords such as kd_loss. The implementations are conducted in different detector source codes.

Thank you for your response. I noticed that you mentioned in your article, "Note that these layers are trained with the student simultaneously and can be discarded during inference." Does this mean that both the student model and the teacher model, as well as the dynamic graph convolutional network, need to undergo backpropagation, or does it mean freezing the original weights of the teacher model and only updating the weights of the dynamic graph convolutional network for the teacher model and all network weights for the student model?

Hi @linjie-yang,
In general KD settings, the teacher model is frozen. Only the student and the projection networks need to be updated. If you unfreeze the teacher, it is called online KD, which is different from this paper.

Hi @linjie-yang,
In general KD settings, the teacher model is frozen. Only the student and the projection networks need to be updated. If you unfreeze the teacher, it is called online KD, which is different from this paper.
Got it, thanks!


[1.19.3] Remap Removed Entries

Remaps the removed entries that either had class or method changes that were reasonably determinable based on prior mappings. Also a few various fixes and additions here and there.
Originally based this on the commit before the current one on this branch since I originally planned on remapping the classes which only 'moved location', so it can't be automatically merged. Will eventually fix this or make this the main pr for the update.

Should be fixed in a separate branch for merge conflicts.


WIP: test all ql target

Signed-off-by: Alessandro Comodi<EMAIL_ADDRESS>

@acomodi : Travis is red with this merge

@kkumar23 yes, this because the all_ql_tests are now enabled. One of the first issues to solve is the following
/dev/stdin < /home/travis/build/QuickLogic-Corp/symbiflow-arch-defs/build/quicklogic/pp3/devices/ql-pp3e-virt/arch.unique_pack.xml > arch.timing.xml
Traceback (most recent call last):
  File "/home/travis/build/QuickLogic-Corp/symbiflow-arch-defs/utils/update_arch_timings.py", line 297, in <module>
    main()
  File "/home/travis/build/QuickLogic-Corp/symbiflow-arch-defs/utils/update_arch_timings.py", line 290, in main
    th.attrib['value'] = th.attrib['value'].format(**bel_timings)
KeyError: 'hold_QCK_QDI'

This is due to the fact that the SDF does not have the HOLD timing for the QCK to QDI connection. The liberty files do set that particualr timing to zero and it gets skipped. There is a fix for this here: https://github.com/QuickLogic-Corp/quicklogic-timings-importer/pull/2.

The next error that popped up in CI is the following:
vpr/src/base/read_netlist.cpp:1079 mark_constant_generators_rec: Assertion 'atom_ctx.nlist.pin_is_constant(driver_pin_id)' failed.

This might be due to a synthesis issue as it affects the netlist reading step and it is related to the constant nets

@acomodi : Is this pull request ready. By mistake i marked this as ready.

Is this pull request ready

@kkumar23 Not yet actually, I think it would be best to have CI always be green before merging on the current main branch, as it gets easier to track down regressions.
There are two outstanding issues with the all_ql_tests which are described here: https://github.com/QuickLogic-Corp/symbiflow-arch-defs/issues/97#issuecomment-673560981.
If we want to enable the all_ql_tests ASAP we might consider to temporarily disable the failing tests and open issues to solve those and re-enable the tests in a second step. What do you think?

@acomodi : If these are 2-3 testcases, then we can open a new PR for them and disable meanwhile.
One more thing we observed was that few testcases started failing from 11th Aug, after few merges.
These testcases fail during packer run.
quicklogic/pp3/tests/counter
quicklogic/pp3/tests/ram
quicklogic/pp3/tests/soc_clocks
quicklogic/pp3/tests/sdiomux_counter
I assume these are related to the same https://github.com/QuickLogic-Corp/symbiflow-arch-defs/issues/97#issuecomment-673560981

@kkumar23 Indeed, I have identified the issue with those failing tests that do trigger the VTR assertion. Working on a fix now.

This PR now takes more than an hour to complete and Travis is killed. This because of the amount of tests to build which are too many w.r.t. Travis capabilities.
Probably the basic tests should all be added to the all_quick_tests and leave the more complex designs out of travis CI check for now.


Suggestion: seismic velocity to density conversion

Dear all,
for my research I am interested in how we can constraining mantle densities from seismic tomography. Therefore, I implemented a python version of the conversion approach by Goes et al. (2000) who proposed a way to convert s/p-wave velocities to density and temperature. The authors use Newton iteration to match synthetic and observed velocities which makes a direct implementation in Python very slow. Since I was applying the conversion on 3D regular meshes, I was able to accelerate the conversion by using lookup-tables for the individual depth values of the mesh. With about 10 000 velocity values and 8 depth slices it runs in less than 10s. You can have a look at the code at this repository, I hope the comments make the code understandable ;).
Since fatiando is using PrismMeshes, I thought this conversion might be a nice addition to the package. @leouieda already suggested to create a new petrophysics module or similar.
So far, this would be a rough roadmap of what needs to be done and what could be improved:

[ ] update syntax from Python2 to Python3
[ ] implement function to read properties from PrismMeshes
[ ] implement function to define mantle rock mineralogy (at the moment uses a csv file), maybe with predefined mineralogies
[ ] implement function to write densities and temperatures back to the PrismMesh
[ ] clear out unused functions (or keep a command line interface?)
[ ] documentation
[ ] tests
[ ] (improvement) alternative pressure calculation with PREM or other reference models
[ ] (improvement) parallelise for large data sets
[ ] (improvement) allow for compositional heterogeneity by storing the mineralogy in the PrismMesh. This would be kind of a very distant stretch goal and should be restricted to a limited number of different mineralogies (e.g. Harzburgite and Basalt for mantle and subducting slab), otherwise there would be the need to calculate too many lookup tables

Except the parallelisation and compositional heteorgeneity these tasks are not too difficult. So what do you think? I'd be happy to answer any questions.
Looking forward to your comments!
Cheers,
Christian

@cmeessen thanks for sharing your code!
I think a new fatiando.petrophysics module would be a good place to house physical property conversions. I'm open to suggestions for alternatives.
If we're going with a new package, it would be better to create the empty package in a separate PR first to make things easier. It's not a lot of work but the package needs to be included in a few places in the docs. I can do this quickly.
When porting your code, it's best to do it in small portions so that we can quickly test, document, and merge. I have a tendency to start big PRs and that causes a lot of trouble when the work ends up taking a long time. I always have to split it up later. So don't do what I do :)
Regarding the command-line, I think that is best kept out of Fatiando. It could be a separate program that uses Fatiando to implement an application. We can host it on the organization account if you want and have it linked in the site. But that will give you more flexibility with the releases and updates.
cc @fatiando/contributors

I  haven't looked the code of @cmeessen, but something I was wondering sometime is if Bruges could be used in Fatiando (I don't know how Bruges is going, but I know there are Petrophysics and Rock Physics modules there). I'm mentioning this because of the possibility of starting this Petrophysical module in Fatiando (should we use what is already done? How?).
What do you think?

@victortxa that's a good point. I don't know how active bruges is or their status. I haven't seen updates for a while. Cc @kwinkunks @ben-bougher @EvanBianco
That's the problem with trying to have monolithic packages like Fatiando. I get their initial appeal but it gets frustrating when you want to use one part of the library but not all the rest that comes attached to it. Might be time we consider splitting Fatiando into several packages. They could all live under the Fatiando umbrella still.

@victortxa, Bruges hasn't had much added to it's compilation for a while, but I think it might be the right place for Petrophysical equations and calculatory stuff. It's heavier in rock physics and seismic equations so far, but that hasn't been deliberate. We've just started with the things we know best and are trying to fill it out from there. Happy to discuss / map out a Petrophysical sub-module within Bruges and we can start filling in the gap we have there.

@leouieda any thoughts about this (integrate the Petrophysical package from Bruges)? Maybe a general guide for this kind of thing can help in anothers future modules.


Improve database connection logging

Previously, we'd log information about the database instance when connecting to it (e.g., memory address), but this information didn't really include anything useful from an operations standpoint.
Let's log the actual database endpoint instead, so it's more clear what the service is actually connecting to.

/lgtm


New version: AntibodySoftware.WizTree version 4.08

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Resolves https://github.com/microsoft/winget-pkgs/pull/46151
Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Can you add Closes #46151 ?

@wingetbot waivers Add Validation-Domain


Xcode 13.3.1 builds ImageClassification iOS TensorFlow Lite example failed

git clone https://github.com/tensorflow/examples
cd examples/lite/examples/image_classification/ios
pod install
open open ImageClassification.xcodeproj
Using Xcode to build ImageClassification project. But the following error occurred.
No such module 'TensorFlowLite'

Could you please close this issue since the issue is similar to the issue which you have reported here https://github.com/tensorflow/tensorflow/issues/56176 and it's easier to track and escalate issue, since the underlying problem seems to be same for both the issue. Thanks!


Upgrade Django Select 2

fix #1792
Upgraded django_select2 from 7.1.1 to 7.2.0 thus select2js upgraded from 3.5.x to 4.x.
Select2 4.0 introduced AMD-based build so I have generated select2.multi-checkboxes.js from amd branch of wasikuss/select2-multi-checkboxes.
Select2 4.x doesn't have .wrap class around dropdown text so I needed to change CSS in  hypha/static_src/src/sass/apply/components/_select2.scss.
@frjo I wasn't sure if I need to change CSS for https://github.com/OpenTechFund/hypha/blob/master/hypha/static_src/src/sass/public/components/_select2.scss as I have gone through the code and I haven't found where it is used.

Thanks for fixing and investigating on this. Will be on the next deploy.


[nrf noup] loader: Fix reading reset addr to support ext flash

When mcuboot_secondary is on external flash, the image header cannot
dircetly be accessed via secondary_fa->fa_off. Instead the provided
function boot_img_hdr() is used now.
Additionally a similar issue is present when trying to read the address
of the reset handler. For this flash_area_read() is used now.
With this patch is possible to have the update partiton
mcuboot_secondary on external flash and update a updatable
bootloader (mcuboot) in s0 and/or s1.
Objective: To allow update the mcuboot from the image in the external memory,
Signed-off-by: Christian Taedcke<EMAIL_ADDRESS>

Opened this pr as discussed in discord with @nvlsianpu
Feel free to modify this. We use this patch to be able to update the updateable bootloader on a nrf9160.

This patch will make it impossible to update the network core on nrf5340, since pcd_network_core_update is called a few lines under and requires that vtable is defined, which is not the case here.

This patch will make it impossible to update the network core on nrf5340, since pcd_network_core_update is called a few lines under and requires that vtable is defined, which is not the case here.

You are right, i missed that. It seems that pcd_network_core_update() only works when the update data is in internal flash or in ram. Any ideas how to solve this issue here? I could recalculate the vtable variable in line https://github.com/nrfconnect/sdk-mcuboot/pull/197/files#diff-a004fdf5907914a360ce1e7da94221c0165d1c4c8ba7b8c4eaf67bd63af395c1R972 (so basically copying the old logic) but i do not have any hardware to check that.

@chrta I removed lines 965-991 completely and now I can do DFU of both core when they are in external flash.
The pcd_network_core_update() is now instead called using hooks inside nrf53_hooks.c file. I think it is how it's supposed to work and these lines could be removed from this file.

Thank you @chrta for this patch. We have added this issue to our internal issue tracking and will make sure its fixed prior to the next release. If you want we can use this PR to get the fix through, or we can create a separate one. You will be credited regardless.

@hakonfam Great, thank you. Just do whatever is easier for you. Please let me know if there is anything for me to do.

@chrta I removed lines 965-991 completely and now I can do DFU of both core when they are in external flash. The pcd_network_core_update() is now instead called using hooks inside nrf53_hooks.c file. I think it is how it's supposed to work and these lines could be removed from this file.

@nvlsianpu  @hakonfam  Could you confirm that the chunk of code from line 965 to 991 is outdated since nrf53_hooks.c has been added and that it should be removed ? If it is the case, should I make a PR about it ?

@jimmyzumthurm Hooks do not cover the code you mentioned yet.

We were not able to push to your remote so we moved the work here https://github.com/nrfconnect/sdk-mcuboot/pull/210.


Gamma models convergence checks and run time

I am trying to fit a Gamma model to a reaction time data (there is a recent paper that argues for not transforming RTs and using GLMM with Gamma or Inverse Gaussian --> http://journal.frontiersin.org/article/10.3389/fpsyg.2015.01171/full )
I have a few question about running GLMMs in Julia, but before asking them I will go over a reproducible example using a known dataset (my dataset is large and takes too long to run). I am new to GLMMs and Julia, so I might have done something wrong. Let me know if that's the case.
Using Baayen's data from langugaeR package in R, I ran 4 models, 3 out of which do not make sense for this data. There are number of variables, but I will focus on the native language (English and other) and word class (Animal and Plant).  Also, I've converted RTs to raw RTs, as in the dataset they are log-ed.
using DataArrays, DataFrames , MixedModels, GLM, RDatasets, RData
#Baayen's data from langugaeR package in R saved as .csv from R
lexdec=readtable("lexdec.csv", makefactors=true)

lexdec_1 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class*NativeLanguage|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))
   ERROR: MethodError: no method matching getindex(::DataFrames.DataFrame, ::Expr)

lexdec_2 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))

lexdec_3 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+NativeLanguage|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))

lexdec_4 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))

Lexdec_1 did not run. I suppose the interaction term is not supported in the random effects. Lexdec_2, 3, 4 ran without a problem. However, Lexdec_2 and 3 do not make sense for this data as random slopes for  native language are inappropriate here (each person has only one language background, so there's no data to estimate how that person would behave if they had the other language background). Only Lexdec_4 is a valid model here. Nevertheless, all models except lexdec_1 ran just fine. I also ran the models using lmm in Julia with identical results on convergence.
For comparison I ran Gamma models in R using lme4 and glmmTMB. glmer from lme4 sucsesfully ran all 4 models (including the interaction model). glmmTMB gave convergence warnings on Lexdec_1, 2, and 4, while no warning on Lexdec_3.
I observed different results when running  lmm models in R using lme4 and glmmTMB. lmer from lme4 gave warnings on Lexdec_1 and 3, while glmmTMB gave warnings on Lexdec_1, 2, and 3 (was glmmTMB able to catch the inappropriate models?)
My questions:

Are there any convergence checks? I can run any model with any parameters without getting any convergence warnings.
Are interactions of random effects supported?
What can I do to decrees runtime? My dataset has ~20k observations and there are 2 within factors with 3 levels each and one between factor with 2 levels.
Are there any plans to implement support for Inverse Gaussian? I ran Inverse Gaussian models using lme4 and glmmTMB with identical results, so I guess there is not much of difference from RT data.

I am running arch linux 4.12.3-1-ARCH with openblas-lapack installed from AUR.
julia> versioninfo()
Julia Version 0.6.0
Commit 903644385b* (2017-06-19 13:05 UTC)
Platform Info:
 OS: Linux (x86_64-pc-linux-gnu)
 CPU: Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
 WORD_SIZE: 64
 BLAS: libopenblas (HASWELL)
 LAPACK: liblapack
 LIBM: libm
 LLVM: libLLVM-4.0.0 (ORCJIT, haswell)

 julia> Pkg.status()
  - MixedModels 0.10.0
  - GLM 0.7.0

Thank you for opening what is indeed an interesting issue.  I can see that the results from lme4 and from this package do not coincide.  What I don't know is which one, if either, is correct.
It would probably help if @bbolker could take a look at this too.
Just to make sure that we are on the same page, when I copy the lexdec data from the languageR package, I don't have an rt_raw column.
julia> using RCall

julia> lexdec = rcopy(R"languageR::lexdec");

julia> dump(lexdec)
DataFrames.DataFrame  1659 observations of 28 variables
  Subject: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["A1", "A1", "A1", "A1"]
  RT: DataArrays.DataArray{Float64,1}(1659) [6.34036, 6.3081, 6.34914, 6.18621]
  Trial: DataArrays.DataArray{Int32,1}(1659) Int32[23, 27, 29, 30]
  Sex: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["F", "F", "F", "F"]
  NativeLanguage: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["English", "English", "English", "English"]
  Correct: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["correct", "correct", "correct", "correct"]
  PrevType: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["word", "nonword", "nonword", "word"]
  PrevCorrect: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["correct", "correct", "correct", "correct"]
  Word: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["owl", "mole", "cherry", "pear"]
  Frequency: DataArrays.DataArray{Float64,1}(1659) [4.85981, 4.60517, 4.99721, 4.72739]
  FamilySize: DataArrays.DataArray{Float64,1}(1659) [1.38629, 1.09861, 0.693147, 0.0]
  SynsetCount: DataArrays.DataArray{Float64,1}(1659) [0.693147, 1.94591, 1.60944, 1.09861]
  Length: DataArrays.DataArray{Int32,1}(1659) Int32[3, 4, 6, 4]
  Class: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["animal", "animal", "plant", "plant"]
  FreqSingular: DataArrays.DataArray{Int32,1}(1659) Int32[54, 69, 83, 44]
  FreqPlural: DataArrays.DataArray{Int32,1}(1659) Int32[74, 30, 49, 68]
  DerivEntropy: DataArrays.DataArray{Float64,1}(1659) [0.7912, 0.6968, 0.4754, 0.0]
  Complex: DataArrays.PooledDataArray{String,UInt8,1}(1659) String["simplex", "simplex", "simplex", "simplex"]
  rInfl: DataArrays.DataArray{Float64,1}(1659) [-0.310155, 0.814508, 0.518794, -0.427444]
  meanRT: DataArrays.DataArray{Float64,1}(1659) [6.3582, 6.415, 6.3426, 6.3353]
  SubjFreq: DataArrays.DataArray{Float64,1}(1659) [3.12, 2.4, 3.88, 4.52]
  meanSize: DataArrays.DataArray{Float64,1}(1659) [3.4758, 2.9999, 1.6278, 1.9908]
  meanWeight: DataArrays.DataArray{Float64,1}(1659) [3.1806, 2.6112, 1.2081, 1.6114]
  BNCw: DataArrays.DataArray{Float64,1}(1659) [12.0571, 5.73881, 5.71652, 2.05037]
  BNCc: DataArrays.DataArray{Float64,1}(1659) [0.0, 4.06225, 3.2498, 1.46241]
  BNCd: DataArrays.DataArray{Float64,1}(1659) [6.1756, 2.85028, 12.5887, 7.36322]
  BNCcRatio: DataArrays.DataArray{Float64,1}(1659) [0.0, 0.707856, 0.568493, 0.713242]
  BNCdRatio: DataArrays.DataArray{Float64,1}(1659) [0.512198, 0.496667, 2.20217, 3.59117]

julia> R"""packageVersion("languageR")"""
RCall.RObject{RCall.VecSxp}
[1] ‘1.4.1’

I am going to work on the assumption that the RT column here is what you have as rt_raw.  If I try to fit a GLM I get similar results in R
julia> R"""summary(glm(RT ~ 1 + Class * NativeLanguage, family=Gamma(link="identity"), data=languageR::lexdec))"""
RCall.RObject{RCall.VecSxp}

Call:
glm(formula = RT ~ 1 + Class * NativeLanguage, family = Gamma(link = "identity"),
    data = languageR::lexdec)

Deviance Residuals:
      Min         1Q     Median         3Q        Max
-0.091631  -0.023924  -0.005263   0.017681   0.165656

Coefficients:
                                Estimate Std. Error t value Pr(>|t|)
(Intercept)                     6.313149   0.009814 643.297   <2e-16 ***
Classplant                      0.011648   0.014759   0.789   0.4301
NativeLanguageOther             0.174059   0.015228  11.430   <2e-16 ***
Classplant:NativeLanguageOther -0.041166   0.022855  -1.801   0.0719 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.001275883)

    Null deviance: 2.3196  on 1658  degrees of freedom
Residual deviance: 2.0737  on 1655  degrees of freedom
AIC: -222.26

Number of Fisher Scoring iterations: 3

and using the GLM package in Julia
julia> using DataFrames, GLM, MixedModels

julia> glm(@formula(RT ~ 1 + Class * NativeLanguage), lexdec, Gamma(), GLM.IdentityLink())
DataFrames.DataFrameRegressionModel{GLM.GeneralizedLinearModel{GLM.GlmResp{Array{Float64,1},Distributions.Gamma{Float64},GLM.IdentityLink},GLM.DensePredChol{Float64,Base.LinAlg.Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}

Formula: RT ~ 1 + Class + NativeLanguage + Class & NativeLanguage

Coefficients:
                                        Estimate  Std.Error  z value Pr(>|z|)
(Intercept)                              6.31315 0.00981374  643.297   <1e-99
Class: plant                           0.0116479  0.0147591 0.789201   0.4300
NativeLanguage: Other                   0.174059  0.0152283    11.43   <1e-29
Class: plant & NativeLanguage: Other  -0.0411659  0.0228546 -1.80121   0.0717

julia> deviance(ans)   # I should change the show method for GeneralizedLinearModel to include this
2.0737368935267377

So far, so good.  I'm not quite sure why a identity link would be used here.  The canonical link for the Gamma() distribution is InverseLink() which doesn't really change that much except for the values of the coefficients, which are now on the inverse scale.
julia> glm(@formula(RT ~ 1 + Class * NativeLanguage), lexdec, Gamma())
DataFrames.DataFrameRegressionModel{GLM.GeneralizedLinearModel{GLM.GlmResp{Array{Float64,1},Distributions.Gamma{Float64},GLM.InverseLink},GLM.DensePredChol{Float64,Base.LinAlg.Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}

Formula: RT ~ 1 + Class + NativeLanguage + Class & NativeLanguage

Coefficients:
                                          Estimate   Std.Error   z value Pr(>|z|)
(Intercept)                                 0.1584 0.000246231   643.298   <1e-99
Class: plant                          -0.000291713 0.000369552 -0.789368   0.4299
NativeLanguage: Other                  -0.00425004  0.00037039  -11.4745   <1e-29
Class: plant & NativeLanguage: Other   0.000996327 0.000557006   1.78872   0.0737

julia> deviance(ans)
2.0737368935267413

The deviance is essentially the same as before which just indicates that the fitted values are over a very small range so the identity or inverse link give essentially the same predictions.
  The standard errors of the coefficients are very different, which I think has to do with estimation of the dispersion parameter.
However, glmer produces very different results.
julia> R"summary(glmer(RT ~ 1 + NativeLanguage + (1|Word), data=languageR::lexdec, family=Gamma(), nAGQ=1))"
WARNING: RCall.jl: Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.00106101 (tol = 0.001, component 1)
Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model is nearly unidentifiable: very large eigenvalue
 - Rescale variables?
RCall.RObject{RCall.VecSxp}
Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: Gamma  ( inverse )
Formula: RT ~ 1 + NativeLanguage + (1 | Word)
   Data: languageR::lexdec

     AIC      BIC   logLik deviance df.resid
  -355.6   -333.9    181.8   -363.6     1655

Scaled residuals:
    Min      1Q  Median      3Q     Max
-2.7398 -0.6618 -0.1312  0.5145  4.7924

Random effects:
 Groups   Name        Variance  Std.Dev.
 Word     (Intercept) 2.143e-06 0.001464
 Residual             1.162e-03 0.034082
Number of obs: 1659, groups:  Word, 79

Fixed effects:
                      Estimate Std. Error t value Pr(>|z|)
(Intercept)          0.1583137  0.0003481   454.9   <2e-16 ***
NativeLanguageOther -0.0038086  0.0002571   -14.8   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr)
NtvLnggOthr -0.325
convergence code: 0
Model failed to converge with max|grad| = 0.00106101 (tol = 0.001, component 1)
Model is nearly unidentifiable: very large eigenvalue
 - Rescale variables?

I'm not sure what to make of this.  Do you have any ideas, Ben?

I will try to dig into this tomorrow.  I agree that an identity link seems weird (and potentially could make things harder, numerically).   I might try the allFit extension to see how it behaves across optimizers.
The inverse Gaussian family probably wouldn't be very hard to implement.

Thanks for the quick response, Ben.
I have a vague recollection of discussion related to the dispersion parameter for the Gamma family and how its value influences the evaluation of the log-likelihood or deviance.  Does this ring a bell at all?

Thank you very much for a quick reply!
Regarding raw_rt, I did convert lexdec RTs back to milliseconds, so all my examples are on raw RTs. The entire question discussed in the paper has to do with running the analysis on untransformed RTs instead of log or using identity=log. However, since RTs are not normally distributed, the authors recommend using Gamma or Inverse Gaussian with identity link (or inverse RTs, i.e. -1000/RT). This all has theoretical basis in assumptions about mental chronometry and the additive nature of different effects on the resulting response times measured in psycholinguistic experiments.
As I was running these comparisons in R and Julia. I've noticed that lme4, glmmTMB, and glmm in Julia give different results not only with glmm, but also with lmm. For instance,
 fit!(lmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec))

will converge just fine in Julia and in R with lme4, but not with glmmTMB. The latter will give a convergence error and NA for AIC, BIC, logLik, and deviance. However, fixed parameter estimates and variance components seem to be the same.

FWIW glmmTMB refuses to report a log-likelihood (or associated statistics) if the Hessian is not positive definite.  You can still retrieve the negative log-likelihood with object$fit$objective ...

@hikea You write "Regarding raw_rt, I did convert lexdec RTs back to milliseconds, so all my examples are on raw RTs."  I'm not sure what that means. Can you be more specific, perhaps giving a formula for rt_raw in terms of the RT column in the data set?
One thing about the RT response is that its range is comparatively small,
julia> extrema(lexdec[:RT])
(5.828946, 7.587311)

which means that there will not be much difference between the inverse link and the identity link.  Also, if you look at a density plot for one of the combinations of levels of the fixed-effects parameters, e.g. Class .== "animal" and NativeLanguage .== "English" the density of the RT values doesn't look much like a Gamma to me.
Perhaps it would be better to consider another example.
If I fit the model you indicate to the RT response I get a singular fit.
julia> lmm1 = fit!(lmm(@formula(RT ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec))
Linear mixed model fit by maximum likelihood
 Formula: RT ~ 1 + Class * NativeLanguage + ((1 + Class + NativeLanguage) | Subject) + (1 | Word)
   logLik   -2 logLik     AIC        BIC
  460.29075 -920.58151 -896.58151 -831.61386

Variance components:
                   Column           Variance     Std.Dev.    Corr.
 Word     (Intercept)            0.00589016370 0.076747402
 Subject  (Intercept)            0.00791110551 0.088944396
          Class: plant           0.00009214977 0.009599467  1.00
          NativeLanguage: Other  0.00503482335 0.070956489  1.00  1.00
 Residual                        0.02970852476 0.172361610
 Number of obs: 1659; levels of grouping factors: 79, 21

  Fixed-effects parameters:
                                        Estimate Std.Error  z value P(>|z|)
(Intercept)                              6.31315 0.0291443  216.617  <1e-99
Class: plant                           0.0116479 0.0209007 0.557299  0.5773
NativeLanguage: Other                   0.174059 0.0602617  2.88839  0.0039
Class: plant & NativeLanguage: Other  -0.0411659 0.0177272 -2.32219  0.0202
julia> getθ(lmm1)
7-element Array{Float64,1}:
 0.44527
 0.516034
 0.0556938
 0.411672
 0.0
 7.63226e-5
 0.0

julia> getΛ(lmm1)[2]
3×3 Array{Float64,2}:
 0.516034   0.0         0.0
 0.0556938  0.0         0.0
 0.411672   7.63226e-5  0.0

The 3 by 3 covariance matrix for the Subject random-effects term is of rank 1.
@bbolker As this model converges on the boundary the Hessian is not required to be positive definite.  Do you know if glmmTMB takes into account that a constrained optimization problem can converge to a minimum without the Hessian being positive definite?

I did the converse like so in R (don't know how to do it in Julia so far)
lexdec$rt_raw <- exp(lexdec$RT)

These are the density curves when I plot rt_raw, which is in milliseconds.
ggplot(lexdec, aes(x=rt_raw)) +  geom_density() + facet_grid (NativeLanguage ~ Class, scale='free_x')

If you plot log transformed RTs (lexdec$RT), you get more "normal" picture.
One of my concerns above is that running with random by-subjects slopes for NativeLanguage should lead to non-convergence or a warning of some kind. glmmTMB did give convergence warnings on these models, but only with fits with Gaussian distribution, not Gamma. Julia on the other hand has never displayed any warnings for any model I ran so far.

@hikea Thanks for the explanation.  I went back and looked at the documentation for languageR::lexdec and found that the RT column is logarithmic.  Using lexdec[:rt_raw] = exp.(lexdec[:RT]) I get a model fit with a similar structure
julia> lmm2 = fit!(lmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec))
Linear mixed model fit by maximum likelihood
 Formula: rt_raw ~ 1 + Class * NativeLanguage + ((1 + Class + NativeLanguage) | Subject) + (1 | Word)
     logLik        -2 logLik          AIC             BIC
 -1.04862493×10⁴  2.09724985×10⁴  2.09964985×10⁴  2.10614662×10⁴

Variance components:
                   Column          Variance     Std.Dev.    Corr.
 Word     (Intercept)             2842.995443  53.3197472
 Subject  (Intercept)             2502.046695  50.0204628
          Class: plant              28.963076   5.3817354  1.00
          NativeLanguage: Other   4201.453564  64.8186205  1.00  1.00
 Residual                        16133.661777<PHONE_NUMBER>
 Number of obs: 1659; levels of grouping factors: 79, 21

  Fixed-effects parameters:
                                      Estimate Std.Error  z value P(>|z|)
(Intercept)                            563.536   17.4262  32.3384  <1e-99
Class: plant                           6.61877   14.7386 0.449079  0.6534
NativeLanguage: Other                    119.1   41.7748  2.85101  0.0044
Class: plant & NativeLanguage: Other  -28.9027   12.9058 -2.23951  0.0251

julia> getΛ(lmm2)[2]
3×3 Array{Float64,2}:
 0.393805    0.0         0.0
 0.0423697   0.0         0.0
 0.510309   -2.42915e-5  0.0

But it doesn't make sense to include a random effect for NativeLanguage with respect to Subject because NativeLanguage doesn't vary within subject.  Fitting the simpler model
julia> lmm3 = fit!(lmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class|Subject) + (1|Word)), lexdec))
Linear mixed model fit by maximum likelihood
 Formula: rt_raw ~ 1 + Class * NativeLanguage + ((1 + Class) | Subject) + (1 | Word)
     logLik        -2 logLik          AIC             BIC
 -1.04893234×10⁴  2.09786467×10⁴  2.09966467×10⁴  2.10453724×10⁴

Variance components:
              Column      Variance    Std.Dev.    Corr.
 Word     (Intercept)    2846.267870  53.350425
 Subject  (Intercept)    7091.953472  84.213737
          Class: plant     30.075374   5.484102  1.00
 Residual               16133.230828 127.016656
 Number of obs: 1659; levels of grouping factors: 79, 21

  Fixed-effects parameters:
                                      Estimate Std.Error  z value P(>|z|)
(Intercept)                            563.536   26.1962  21.5122  <1e-99
Class: plant                           6.61877   14.7473 0.448812  0.6536
NativeLanguage: Other                    119.1   38.0826  3.12742  0.0018
Class: plant & NativeLanguage: Other  -28.9027   12.9141 -2.23808  0.0252

julia> getΛ(lmm3)[2]
2×2 Array{Float64,2}:
 0.663013   0.0
 0.0431762  0.0

still produces a singular fit.  Notice that the log-likelihood has changed very little between lmm2 and lmm3.
Because of the singularity I would go further and reduce the model to
julia> lmm4 = fit!(lmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject) + (1|Word)), lexdec))
Linear mixed model fit by maximum likelihood
 Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject) + (1 | Word)
     logLik        -2 logLik          AIC             BIC
 -1.04896988×10⁴  2.09793976×10⁴  2.09933976×10⁴  2.10312954×10⁴

Variance components:
              Column    Variance   Std.Dev.
 Word     (Intercept)   2845.8845  53.346832
 Subject  (Intercept)   7506.9142  86.642450
 Residual              16141.2087 127.048056
 Number of obs: 1659; levels of grouping factors: 79, 21

  Fixed-effects parameters:
                                      Estimate Std.Error  z value P(>|z|)
(Intercept)                            563.536   26.8482  20.9897  <1e-97
Class: plant                           6.61877   14.6626 0.451405  0.6517
NativeLanguage: Other                    119.1   39.1281  3.04386  0.0023
Class: plant & NativeLanguage: Other  -28.9027   12.6888 -2.27782  0.0227

As a GLMM with the inverse link it is
julia> glmm1 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject) + (1|Word)), lexdec, Gamma()), fast=true)
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject) + (1 | Word)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.InverseLink()

  Deviance (Laplace approximation): 90.5431

Variance components:
             Column        Variance        Std.Dev.
 Word    (Intercept)  0.000000000000000 0.00000000000
 Subject (Intercept)  0.000000015758068 0.00012553114

 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
                                          Estimate   Std.Error   z value P(>|z|)
(Intercept)                              0.0017758  8.52957e-5   20.8194  <1e-95
Class: plant                           -2.05845e-5 0.000115231 -0.178637  0.8582
NativeLanguage: Other                 -0.000304747 0.000120173   -2.5359  0.0112
Class: plant & NativeLanguage: Other    6.98092e-5 0.000161009  0.433574  0.6646

which must be reduced to
julia> glmm2 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)), lexdec, Gamma()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.InverseLink()

  Deviance (Laplace approximation): 90.5248

Variance components:
             Column        Variance        Std.Dev.
 Subject (Intercept)  0.000000015872202 0.00012598493

 Number of obs: 1659; levels of grouping factors: 21

Fixed-effects parameters:
                                          Estimate   Std.Error   z value P(>|z|)
(Intercept)                             0.00178218  8.55298e-5   20.8369  <1e-95
Class: plant                           -2.05235e-5 0.000115529 -0.177647  0.8590
NativeLanguage: Other                 -0.000304179 0.000120528  -2.52372  0.0116
Class: plant & NativeLanguage: Other    6.95288e-5 0.000161447  0.430659  0.6667

julia> glmm2.LMM.optsum
Initial parameter vector: [0.0017758, -2.05845e-5, -0.000304747, 6.98092e-5, 0.000125531]
Initial objective value:  90.54308478875748

Optimizer (from NLopt):   LN_BOBYQA
Lower bounds:             [-Inf, -Inf, -Inf, -Inf, 0.0]
ftol_rel:                 1.0e-12
ftol_abs:                 1.0e-8
xtol_rel:                 0.0
xtol_abs:                 [1.0e-10]
initial_step:             [2.84319e-5, 3.84104e-5, 4.00576e-5, 5.36696e-5, 3.13828e-5]
maxfeval:                 -1

Function evaluations:     77
Final parameter vector:   [0.00178218, -2.05235e-5, -0.000304179, 6.95288e-5, 0.000125985]
Final objective value:    90.52478628806914
Return code:              FTOL_REACHED

If you really want the identity link it would look like
julia> glmm3 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Word) + (1|Subject)), lexdec, Gamma(), GLM.IdentityLink()), fast=true)
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Word) + (1 | Subject)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 91.9169

Variance components:
             Column    Variance  Std.Dev.
 Word    (Intercept)     0.0000  0.000000
 Subject (Intercept)  1492.1437 38.628276

 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                            561.603   26.8466   20.9189  <1e-96
Class: plant                           6.47181    36.919  0.175298  0.8608
NativeLanguage: Other                  114.858   45.1489   2.54399  0.0110
Class: plant & NativeLanguage: Other   -29.445   62.1656 -0.473654  0.6357

julia> glmm4 = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)), lexdec, Gamma(), GLM.IdentityLink()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 91.9053

Variance components:
             Column    Variance Std.Dev.
 Subject (Intercept)  1495.1625 38.66733

 Number of obs: 1659; levels of grouping factors: 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                            563.544   26.9076   20.9437  <1e-96
Class: plant                           6.45074   37.0112  0.174292  0.8616
NativeLanguage: Other                   114.57   45.2377   2.53262  0.0113
Class: plant & NativeLanguage: Other  -29.3727   62.3007 -0.471467  0.6373

or, eliminating the insignificant fixed-effects terms in Class
julia> glmm5 = fit!(glmm(@formula(rt_raw ~ 1 + NativeLanguage + (1|Subject)), lexdec, Gamma(), GLM.IdentityLink()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + NativeLanguage + (1 | Subject)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 92.1422

Variance components:
             Column    Variance  Std.Dev.
 Subject (Intercept)  1482.8712 38.508066

 Number of obs: 1659; levels of grouping factors: 21

Fixed-effects parameters:
                       Estimate Std.Error z value P(>|z|)
(Intercept)             566.399   21.4695 26.3815  <1e-99
NativeLanguage: Other    101.59    35.368 2.87238  0.0041

Note that the deviance as reported here with the inverse link is slightly better (i.e. smaller) than the corresponding fits with the identity link.  I say as reported here because I am not entirely sure that the calculation of the deviance for a Gamma GLMM is correct.  I am also unsure about the standard errors on the fixed-effects coefficients in this case.

@hikea Regarding the failure to produce a warning for models including random effects for NativeLanguage by Subject, the fitted model is obviously singular and I presume that the user is going to check for singularity.  Trying to guess in what way a user may specify a nonsensical model and check if they have done so becomes a game of Whac-A-Mole and I don't think it is a good use of my time.  Pull requests would be welcome, of course.

Thank you!
It looks like I get a proper fit for the Gamma model with Identitylink when I don't use fast=true
julia> lexdec_glmm_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject) + (1 | Word)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 91.9053

Variance components:
             Column        Variance        Std.Dev.
 Word    (Intercept)     0.000016739485  0.0040913915
 Subject (Intercept)  1496.106669109329 38.6795381191

 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                            563.546    26.909   20.9426  <1e-96
Class: plant                           6.45169   37.0112  0.174317  0.8616
NativeLanguage: Other                  114.567   45.2397   2.53245  0.0113
Class: plant & NativeLanguage: Other  -29.3727   62.3006 -0.471468  0.6373

julia> getΛ(lexdec_glmm_gamma)[2]
1×1 Array{Float64,2}:
 38.6795

@hikea Regrettably that fit fails in the development version of MixedModels.  I need to patch up some starting estimates
julia> lexdec_glmm_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject) + (1|Word)), lexdec, Gamma(), GLM.IdentityLink()))
ERROR: ArgumentError: invalid NLopt arguments
Stacktrace:
 [1] chk(::Int32) at /home/bates/.julia/v0.6/NLopt/src/NLopt.jl:259
 [2] chkn at /home/bates/.julia/v0.6/NLopt/src/NLopt.jl:277 [inlined]
 [3] initial_step!(::NLopt.Opt, ::Array{Float64,1}) at /home/bates/.julia/v0.6/NLopt/src/NLopt.jl:365
 [4] NLopt.Opt(::MixedModels.OptSummary{Float64}) at /home/bates/.julia/v0.6/MixedModels/src/types.jl:94
 [5] #fit!#68(::Bool, ::Bool, ::Function, ::MixedModels.GeneralizedLinearMixedModel{Float64}) at /home/bates/.julia/v0.6/MixedModels/src/PIRLS.jl:213
 [6] fit!(::MixedModels.GeneralizedLinearMixedModel{Float64}) at /home/bates/.julia/v0.6/MixedModels/src/PIRLS.jl:193

What happens is that the fast = true optimization  is always performed first to get starting estimates for the more general fit.  I will need to modify the starting estimates for the more general fit when one of the constrained θ parameters converges to zero in the fast = true case.  See https://github.com/dmbates/MixedModels.jl/issues/95
In the fit you show it looks as if the nonzero standard deviation for the Word random effect is essentially round-off error

Not a problem. I've noticed some weird behaviour when using fast=true. Is it similar to calc.derivs = FALSE in lme4? When I use that, I can fir any model, fast, and without warnings.
The standard deviation for the Word random effect is indeed close to zero, but the fit is non-singular.

The fast=true version of the fit uses Penalized Iteratively Reweighted Least Squares (PIRLS) to determine the conditional mode of the random effects and the conditional estimate of the fixed-effects parameter, given a value of θ.  It is similar to using nAGQ=0L in a glmer fit.
Generally the difference between the fast=true fit and the optimization of all the parameters using PIRLS only to determine the conditional modes of the random effects is very small.
When you say that you have noticed some weird behaviour, do you have examples you can share?

Unfortunately, I don't have anything to share at the moment, but I will when I encounter something again.
Thank you for all the explanations. I hope this post is useful not only to me but also to everyone who is new to GLMM and Julia.
Could you please address my questions 2 and 4?
2. Are interactions of random effects supported?
4. Are there any plans to implement support for Inverse Gaussian? (@bbolker mentioned that this is a possibility)

To address my third question, using my data (20k observations, 3x3x2 design), I dropped a by-word random slope (the maximal model for my data requires one) and used fast=true. This decreased the run time from 304 seconds to 117 seconds. With by-item slope and fast=true I get 406 seconds.
I have openblas-lapack installed, but I only allow 2 threads for openblas via export OPENBLAS_NUM_THREADS=2 as I am using a laptop and want to prevent overheating issues.

I'm falling behind a bit.

with regard to interactions of random effects in Julia: I don't know how the formulas are evaluated, but at the very worst you can construct your own interaction term and add it to the data frame. The R analogue would be

lexdat$CNLint <- with(lexdat, interaction(Class,NativeLanguage))

then fit the model with a (1+CNLint|grpvar) term in it.

with regard to an inverse-Gamma family: you (or someone) would need to go to the Julia GLM package (?library? module? and implement all the bits of the inverse-Gamma family (variance function etc.) that are needed. Shouldn't be too hard to port from R's inverse.gamma function ...
with regard to singular fits, variations among platforms:

I agree with Doug that trying to detect bad model specifications is often whac-a-mole-ish, although lme4's pre-convergence checks (checking numbers of observations vs. rank of Z, number of levels, number of random effects) are reasonably sensible. It might not be impossible to come up with some automated ways to test for the required minimal replication levels, but it's not high on my list ...
glmmTMB parameterizes variance-covariance matrices via decomposing them into a correlation matrix (further parameterized by lower-triangle elements, see here whose parameters are (I think) naturally unconstrained) and log-standard deviations.  It should be easy to guess that singularity occurring when log-sd gets sufficiently negative, but I'm not sure whether there are any other conditions/limits on the parameters (it's probably necessary but ? not sufficient for some set of the theta values to get large?)

@bbolker thank you! This is very helpful. I've never done any implementations, but I'll take a look.

Looking a bit more at this (not necessarily in the right direction), I've noticed that correlations of random effects do not match.
julia> lexdec_model_rt_raw = fit!(lmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec))
Linear mixed model fit by maximum likelihood
 Formula: rt_raw ~ 1 + Class * NativeLanguage + ((1 + Class + NativeLanguage) | Subject) + (1 | Word)
     logLik        -2 logLik          AIC             BIC
 -1.04862493×10⁴  2.09724986×10⁴  2.09964986×10⁴  2.10614662×10⁴

Variance components:
                   Column          Variance   Std.Dev.    Corr.
 Word     (Intercept)             2842.95699  53.319387
 Subject  (Intercept)             2502.20502  50.022045
          Class: plant              28.94764   5.380301  1.00
          NativeLanguage: Other   4200.34712  64.810085  1.00  1.00
 Residual                        16133.67862 127.018418
 Number of obs: 1659; levels of grouping factors: 79, 21

  Fixed-effects parameters:
                                      Estimate Std.Error  z value P(>|z|)
(Intercept)                            563.536   17.4266  32.3377  <1e-99
Class: plant                           6.61877   14.7385 0.449082  0.6534
NativeLanguage: Other                    119.1   41.7728  2.85115  0.0044
Class: plant & NativeLanguage: Other  -28.9027   12.9057 -2.23952  0.0251

julia> lexdec_glmm_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + ((1 + Class + NativeLanguage) | Subject) + (1 | Word)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 88.5160

Variance components:
                  Column             Variance        Std.Dev.     Corr.
 Word    (Intercept)               0.000013282934  0.0036445759
 Subject (Intercept)               0.000000000000  0.0000000000
         Class: plant              2.154574504719  1.4678468942   NaN
         NativeLanguage: Other  6919.833771948175 83.1855382380   NaN  0.99

 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                             563.54   24.5249   22.9783  <1e-99
Class: plant                           6.61341   37.0896  0.178309  0.8585
NativeLanguage: Other                   114.65   50.0573   2.29038  0.0220
Class: plant & NativeLanguage: Other  -30.0731    61.753 -0.486989  0.6263

> summary( lmer(rt_raw ~ Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word), data=lexdec, REML=F) )
Linear mixed model fit by maximum likelihood
t-tests use  Satterthwaite approximations to degrees of freedom ['lmerMod']
Formula: rt_raw ~ Class * NativeLanguage + (1 + Class + NativeLanguage |      Subject) + (1 | Word)
   Data: lexdec

     AIC      BIC   logLik deviance df.resid
 20996.5  21061.5 -10486.2  20972.5     1647

Scaled residuals:
    Min      1Q  Median      3Q     Max
-2.1722 -0.5469 -0.1480  0.3082  8.1841

Random effects:
 Groups   Name                Variance Std.Dev. Corr
 Word     (Intercept)          2842.96  53.319
 Subject  (Intercept)          2502.17  50.022
          Classplant             28.96   5.381  1.00
          NativeLanguageOther  4201.33  64.818  1.00 1.00
 Residual                     16133.66 127.018
Number of obs: 1659, groups:  Word, 79; Subject, 21

Fixed effects:
                               Estimate Std. Error      df t value Pr(>|t|)
(Intercept)                     563.536     17.427  19.500  32.338   <2e-16 ***
Classplant                        6.619     14.738 103.630   0.449   0.6543
NativeLanguageOther             119.100     41.775  11.900   2.851   0.0147 *
Classplant:NativeLanguageOther  -28.903     12.906 259.890  -2.240   0.0260 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) Clsspl NtvLnO
Classplant  -0.283
NtvLnggOthr -0.328  0.013
Clsspln:NLO  0.036 -0.375  0.037

> summary( glmer(rt_raw ~ Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word), data=lexdec, family=Gamma(link="identity")) )
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: Gamma  ( identity )
Formula: rt_raw ~ Class * NativeLanguage + (1 + Class + NativeLanguage |      Subject) + (1 | Word)
   Data: lexdec

     AIC      BIC   logLik deviance df.resid
 20343.6  20408.6 -10159.8  20319.6     1647

Scaled residuals:
    Min      1Q  Median      3Q     Max
-1.7847 -0.5918 -0.1717  0.3281  8.2704

Random effects:
 Groups   Name                Variance  Std.Dev. Corr
 Word     (Intercept)         1.529e+03 39.1034
 Subject  (Intercept)         8.950e+02 29.9174
          Classplant          1.861e+01  4.3135   0.45
          NativeLanguageOther 2.176e+03 46.6512  -0.15  0.81
 Residual                     4.127e-02  0.2032
Number of obs: 1659, groups:  Word, 79; Subject, 21

Fixed effects:
                               Estimate Std. Error t value Pr(>|z|)
(Intercept)                     580.836     11.858   48.98  < 2e-16 ***
Classplant                        6.813     10.282    0.66  0.50759
NativeLanguageOther             124.780     10.898   11.45  < 2e-16 ***
Classplant:NativeLanguageOther  -24.912      7.757   -3.21  0.00132 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) Clsspl NtvLnO
Classplant   0.041
NtvLnggOthr  0.015 -0.037
Clsspln:NLO -0.059 -0.140  0.099

> summary( glmmTMB(rt_raw ~ Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word), data=lexdec) )
 Family: gaussian  ( identity )
Formula:          rt_raw ~ Class * NativeLanguage + (1 + Class + NativeLanguage |      Subject) + (1 | Word)
Data: lexdec

     AIC      BIC   logLik deviance df.resid
      NA       NA       NA       NA     1647

Random effects:

Conditional model:
 Groups   Name                Variance  Std.Dev.  Corr
 Word     (Intercept)         2.846e+03 5.335e+01
 Subject  (Intercept)         7.507e+03 8.664e+01
          Classplant          5.503e-54 2.346e-27 -1.00
          NativeLanguageOther 1.545e-17 3.931e-09 -0.97  0.97
 Residual                     1.614e+04 1.270e+02
Number of obs: 1659, groups:  Word, 79; Subject, 21

Dispersion estimate for gaussian family (sigma^2): 1.61e+04

Conditional model:
                               Estimate Std. Error z value Pr(>|z|)
(Intercept)                     563.536     26.848  20.990  < 2e-16 ***
Classplant                        6.619     14.663   0.451  0.65169
NativeLanguageOther             119.101     39.128   3.044  0.00234 **
Classplant:NativeLanguageOther  -28.903     12.689  -2.278  0.02274 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning messages:
1: In nlminb(start = par, objective = fn, gradient = gr) :
  NA/NaN function evaluation
2: In nlminb(start = par, objective = fn, gradient = gr) :
  NA/NaN function evaluation
3: In glmmTMB(rt_raw ~ Class * NativeLanguage + (1 + Class + NativeLanguage |  :
  Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')

> summary( glmmTMB(rt_raw ~ Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word), data=lexdec, family=list(family="Gamma",link="identity")) )
 Family: Gamma  ( identity )
Formula:          rt_raw ~ Class * NativeLanguage + (1 + Class + NativeLanguage |      Subject) + (1 | Word)
Data: lexdec

     AIC      BIC   logLik deviance df.resid
      NA       NA       NA       NA     1647

Random effects:

Conditional model:
 Groups  Name                Variance   Std.Dev.  Corr
 Word    (Intercept)          2.123e+03 4.608e+01
 Subject (Intercept)          7.615e+04 2.760e+02
         Classplant          6.378e-119 7.986e-60 -1.00
         NativeLanguageOther  4.414e+03 6.644e+01  1.00 -0.99
Number of obs: 1659, groups:  Word, 79; Subject, 21

Dispersion estimate for Gamma family (sigma^2): 0.0327

Conditional model:
                               Estimate Std. Error z value Pr(>|z|)
(Intercept)                      266.34         NA      NA       NA
Classplant                        31.71      12.63   2.511    0.012 *
NativeLanguageOther              125.93         NA      NA       NA
Classplant:NativeLanguageOther   -56.56      10.97  -5.154 2.55e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
There were 47 warnings (use warnings() to see them)

All correlations look pretty high, but there are discrepancies both in direction and magnitude.

@hikea You have almost convinced me that I should print warning messages about convergence to singular covariance matrices.  All of GLMM fits are to singular covariance matrices for the Subject factor.
julia> using MixedModels, RCall

julia> lexdec = rcopy(R"languageR::lexdec");

julia> lexdec[:rt_raw] = exp.(lexdec[:RT]);
julia> lexdec_glmm_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1+Class+NativeLanguage|Subject) + (1|Word)), lexdec, Gamma(), IdentityLink()), fast=true)
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + ((1 + Class + NativeLanguage) | Subject) + (1 | Word)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 88.5302

Variance components:
                  Column             Variance        Std.Dev.     Corr.
 Word    (Intercept)               0.000008148119  0.0028544911
 Subject (Intercept)               0.000000000000  0.0000000000
         Class: plant              2.141102817949  1.4632507707   NaN
         NativeLanguage: Other  6917.959907320534 83.1742743120   NaN  0.99

 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                            563.536   24.5248   22.9783  <1e-99
Class: plant                           6.61613   37.0894  0.178383  0.8584
NativeLanguage: Other                  110.297   49.9933   2.20624  0.0274
Class: plant & NativeLanguage: Other  -30.3897   61.6327 -0.493078  0.6220

julia> getΛ(lexdec_glmm_gamma)[2]
3×3 Array{Float64,2}:
  0.0       0.0        0.0
  1.32808   0.614256   0.0
 74.3338   34.6921    13.7442

Also, it is nonsensical to include random effects for NativeLanguage by Subject because NativeLanguage is a property of Subject.
You can't expect consistency in fits to nonsense models.

I am glad that I am being of help here as well (although,  I thought it was the opposite).
I know that these are nonsensical models with wrong parameters, but I thought I would get consistent results nevertheless.
Thank you for implementing Inverse Gaussian in GLM --> https://github.com/JuliaStats/GLM.jl/issues/193

Thank you @dmbates I've just noticed that Inverse Gaussian implementation was merged and it works in MixedModels (after using Pgk.checkout("GLM") and Pkg.chekout("MixedModels") ).
However, I get the same error you were getting earlier
julia> lexdec_inv_gauss = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)), lexdec, InverseGaussian(), IdentityLink()))
ERROR: ArgumentError: invalid NLopt arguments

but not with Gamma
julia> lexdec_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)), lexdec, Gamma(), IdentityLink()))
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject)
  Distribution: Distributions.Gamma{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 91.9053

Variance components:
             Column    Variance Std.Dev.
 Subject (Intercept)  1495.1625 38.66733

 Number of obs: 1659; levels of grouping factors: 21

Fixed-effects parameters:
                                      Estimate Std.Error   z value P(>|z|)
(Intercept)                            563.544   26.9076   20.9437  <1e-96
Class: plant                           6.45074   37.0112  0.174292  0.8616
NativeLanguage: Other                   114.57   45.2377   2.53262  0.0113
Class: plant & NativeLanguage: Other  -29.3727   62.3007 -0.471467  0.6373

however, Gamma will give the same error if I include random effects for words (1|Word), which has a 0 variance in Julia (see below for R output)
julia> lexdec_gamma = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)+(1|Word)), lexdec, Gamma(), IdentityLink()))
ERROR: ArgumentError: invalid NLopt arguments

using fast=true helps with this issue
julia> lexdec_inv_gauss = fit!(glmm(@formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject)), lexdec, InverseGaussian(), IdentityLink()), fast=true)
Generalized Linear Mixed Model fit by minimizing the Laplace approximation to the deviance
  Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject)
  Distribution: Distributions.InverseGaussian{Float64}
  Link: GLM.IdentityLink()

  Deviance (Laplace approximation): 0.1438

Variance components:
             Column   Variance Std.Dev.
 Subject (Intercept)         0        0

 Number of obs: 1659; levels of grouping factors: 21

Fixed-effects parameters:
                                      Estimate Std.Error    z value P(>|z|)
(Intercept)                            563.536   582.191   0.967957  0.3331
Class: plant                           6.61877   883.313 0.00749313  0.9940
NativeLanguage: Other                    119.1   1068.76   0.111438  0.9113
Class: plant & NativeLanguage: Other  -28.9027   1580.41 -0.0182882  0.9854

We can see that the model with InverseGaussian returns 0 variance for (1|Subject) as well. I guess that's why it didn't converge without fast=true, just like Gamma
The fixed effects estimates are close to R output with nAGQ=0L, but std.errors, random effects and deviance are completely different. You can see that neither Word nor Subject has 0 variance (the same is true for Gamma model), although the residual is zero-ish.
> lexdec_inv_gauss_ <- glmer(rt_raw ~ 1+ Class*NativeLanguage + (1|Subject) + (1|Word), data=lexdec, family=inverse.gaussian(link="identity"), nAGQ=0)
> summary(lexdec_inv_gauss_)
Generalized linear mixed model fit by maximum likelihood (Adaptive Gauss-Hermite Quadrature, nAGQ = 0) ['glmerMod']
 Family: inverse.gaussian  ( identity )
Formula: rt_raw ~ 1 + Class * NativeLanguage + (1 | Subject) + (1 | Word)
   Data: lexdec

     AIC      BIC   logLik deviance df.resid
 20185.1  20223.0 -10085.6  20171.1     1652

Scaled residuals:
    Min      1Q  Median      3Q     Max
-1.7972 -0.5759 -0.1617  0.3632  8.2905

Random effects:
 Groups   Name        Variance  Std.Dev.
 Word     (Intercept) 1.400e+03 37.412913
 Subject  (Intercept) 1.909e+03 43.692319
 Residual             6.799e-05  0.008245
Number of obs: 1659, groups:  Word, 79; Subject, 21

Fixed effects:
                               Estimate Std. Error t value Pr(>|z|)
(Intercept)                     561.088     14.604   38.42  < 2e-16 ***
Classplant                        6.484     11.026    0.59   0.5565
NativeLanguageOther             109.614     21.039    5.21 1.89e-07 ***
Classplant:NativeLanguageOther  -29.105     12.064   -2.41   0.0158 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) Clsspl NtvLnO
Classplant  -0.332
NtvLnggOthr -0.590  0.092
Clsspln:NLO  0.121 -0.370 -0.261

Updating the last example for the current release, we still have a problem for the general optimization, and then the general optimization fails (see #95).
julia> using RCall, MixedModels, GLM

julia> lexdec = rcopy(R"languageR::lexdec");

julia> lexdec[:rt_raw] = exp.(lexdec[:RT]);

julia> f = @formula(rt_raw ~ 1 + Class*NativeLanguage + (1|Subject) + (1|Word));

julia> lexdec_glmm_gamma = fit!(GeneralizedLinearMixedModel(f, lexdec, Gamma(), IdentityLink()), fast=true)
Generalized Linear Mixed Model fit by maximum likelihood (nAGQ = 1)
  rt_raw ~ 1 + Class + NativeLanguage + Class & NativeLanguage + (1 | Subject) + (1 | Word)
  Distribution: Gamma{Float64}
  Link: IdentityLink()

  Deviance: 91.9169

Variance components:
             Column    Variance  Std.Dev.
 Word    (Intercept)     0.0000  0.000000
 Subject (Intercept)  1492.1437 38.628276
 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
──────────────────────────────────────────────────────────────────────────────
                                       Estimate  Std.Error    z value  P(>|z|)
──────────────────────────────────────────────────────────────────────────────
(Intercept)                           561.603      6.69334  83.9047     <1e-99
Class: plant                            6.47181    9.20457   0.703109   0.4820
NativeLanguage: Other                 114.858     11.2564   10.2038     <1e-23
Class: plant & NativeLanguage: Other  -29.445     15.499    -1.8998     0.0575
──────────────────────────────────────────────────────────────────────────────

julia> fit!(lexdec_glmm_gamma, fast=false)
ERROR: ArgumentError: invalid NLopt arguments: zero step size
. . .

julia> lexdec_glmm_invgauss = fit!(GeneralizedLinearMixedModel(f, lexdec, InverseGaussian(), IdentityLink()), fast=true)
Generalized Linear Mixed Model fit by maximum likelihood (nAGQ = 1)
  rt_raw ~ 1 + Class + NativeLanguage + Class & NativeLanguage + (1 | Subject) + (1 | Word)
  Distribution: InverseGaussian{Float64}
  Link: IdentityLink()

  Deviance: 0.1438

Variance components:
             Column   Variance Std.Dev.
 Word    (Intercept)         0        0
 Subject (Intercept)         0        0
 Number of obs: 1659; levels of grouping factors: 79, 21

Fixed-effects parameters:
─────────────────────────────────────────────────────────────────────────────
                                       Estimate  Std.Error   z value  P(>|z|)
─────────────────────────────────────────────────────────────────────────────
(Intercept)                           563.536      6.03062  93.4458    <1e-99
Class: plant                            6.61877    9.14979   0.72338   0.4694
NativeLanguage: Other                 119.1       11.0707   10.7582    <1e-26
Class: plant & NativeLanguage: Other  -28.9027    16.3706   -1.76552   0.0775
─────────────────────────────────────────────────────────────────────────────

julia> fit!(lexdec_glmm_invgauss, fast=false)
ERROR: ArgumentError: invalid NLopt arguments: zero step size
. . .


Add Same Course in Wishlist array

Describe the bug
Right now we are able to add the same course multiple times in the wishlist array of the same user.
To Reproduce
We can resolve this by adding a condition whether currseId exists in that user wishlist array if yes we can give an exception.

Please assign this issue to me if this is a valid issue.

Sure @dhwaj1902 Go ahead.
This issue still persist right.


Feat(Dropdown): Optionally return new text value pair from onAddItem

As you can probably tell by now I've been having to do a lot of work with dropdown menus lately :).
I noticed recently that when a new item is added to the dropdown select it calls onChange directly afterwards with the value being the inputed string. I'm proposing we give an optional return value from onAddItem (or something to a similar effect) which would allow the user to specify what they want the value to be which is sent to the onChange function.
The scenario I ran into what that I was adding an item and inserting that item into my redux store with a unique id as the key. Say I added an item called "test", it would call onAddItem which would insert that "test" value into the store with a unique id, then onChange is called with the value "test". Of course it can't find an item with the value "test" so the dropdown just becomes empty. I solved this by using onAddItem to change the state and then blocked onChange from running but I think it would be much more elegantly done with the proposed return value.
I doubt it would take very much effort and I could write up the pull request myself, I just want to verify first that that is a direction we want to go.
Thanks.

Of course it can't find an item with the value "test" so the dropdown just becomes empty.

Help me understand why this is so, if the store in fact includes the test item that was added after onAddItem.  I'd expect the store to to find the test item if it were just added.

Sorry, I misspoke. I meant it cannot find a value with the key "test" in the Map. You're absolutely right that there is an item with the value "test". That is how I was able to stop onChange from running is I checked to see if test was included in the object.
In my options prop for the Dropdown I am storing the data as { text: 'some text', value: uniqueID } so when it comes out with "test" instead of a uid as the value it trips up. Adding a new value of 'test' will return { text: 'test', value: 'test' } and there isn't going to be a matching unique-id to 'test'.
Hopefully I explained that a little better :).

I believe an option's value should always be unique and can/should be used as the uid in a store.  This would solve the issue.
Otherwise, I think your solution is the way to go for now:

I solved this by using onAddItem to change the state and then blocked onChange from running.

I would, however, consider calling only onAddItem and allowing the user change the value themselves.  This might actually make more sense than the current workflow.  In that case, onAddItem wouldn't do anything except give you the item added.  Your use case would add the uid at this point and set state (or dispatch an action).
My resolve, for now, is to close this as is for now and if it comes up again in the future we'll implement one of the changes we've discussed in this issue.


Enable non-multiuse aggressive fusion logic by default

Enable most of the aggressive fusion logic that is not related to multiuse fusion.
benchmarks: all

No change in the dispatch numbers on the benchmark suite:
BertForMaskedLMTF,213
BertLargeTF,413
DeepLabV3_fp32,78
EfficientNet_int8,136
EfficientNetV2STF,278
MiniLML12H384Uncased,211
MobileBertSquad_fp16,752
MobileBertSquad_fp32,752
MobileBertSquad_int8,1452
MobileNetV1_fp32,57
MobileNetV2_fp32,74
MobileNetV3Small_fp32,98
MobileSSD_fp32,121
PersonDetect_int8,86
PoseNet_fp32,48
Resnet50TF,75

I expect no changes in the number of dispatches, will post results here once the build finished

I expect no changes in the number of dispatches, will post results here once the build finished

Confirmed no changes in the number of dispatches