Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    rcurtin
    @ryan:ratml.org
    [m]
    we definitely don't need to take the time to adapt every layer of the ANN code---since the API should be stable moving forward, when we re-introduce layers it can be a minor release
    zoq
    @marcusedel:matrix.org
    [m]
    Is the mlpack bot not working? mlpack/mlpack#3204
    rcurtin
    @ryan:ratml.org
    [m]
    huh, I'll try and check the logs
    rcurtin
    @ryan:ratml.org
    [m]
    maybe the versions of everything was too old? I did a very scary npm update then restarted mlpack-bot and it seems to work...
    Shubham Agrawal
    @shubhamag:matrix.org
    [m]
    rcurtin: In max pooling layer, why is there a variable named offset
    What is its functionality?
    rcurtin
    @ryan:ratml.org
    [m]
    Shubham Agrawal: it's possible the documentation for that member could be improved. take a look at ComputeOutputDimensions(), which sets its value based on the floor member. then, offset is used in the actual pooling to specify the bounds of the operation
    in general, I believe the problem that we are trying to solve with floor and offset is, what if I have a 9x9 input image but the pooling size is 2x2---what do we do with the last row and column?
    2 replies
    you may be right, I am not sure---I did not write the original max pooling operation, I only adapted it in the ann-vtable branch; if you have a correct implementation, definitely we should merge a fix
    Shubham Agrawal
    @shubhamag:matrix.org
    [m]
    I will see this tmrw
    As I will try a fix with mean pooling layer first
    rcurtin
    @ryan:ratml.org
    [m]
    👍️ thanks! it may be good to implement some test cases that break the current implementation, and work from there 😄
    jonpsy
    @jonpsy:matrix.org
    [m]
    hey shrit , you're workin currently @ Ireland right? How's Amazon Dublin?
    Anwaar Khalid
    @khalidanwaar:matrix.org
    [m]
    Hello! I was hoping to adapt the concat layer but looks like rcurtin has already made some effort there. In the previous implementation, we first flattened all the axes till the axis of concatenation i.e the output of every layer contained in the concat object would first be reshaped as out.reshape(out.n_rows / channels, out.n_cols * channels) and then we used armadillo to join the columns. In 2777, you treat all the axes that come before the axis of concatenation as "flattened slices" and all the axes that come after as "flattened rows" & you convert every layer output to a cube like arma::Cube<typename OutputType::elem_type>(this->layerOutputs[i].memptr(), rows,this->network[i]->OutputDimensions()[axis], slices, false, true) and then you join the columns. There are two things about this that I do not understand:
    1. Was there a problem with the previous implementation? Why does converting to a cube make more sense?
    2. The way you calculate rows & slices seems wrong: size_t slices = (axis == 0) ? input.n_cols : std::accumulate(this->outputDimensions.begin(),this->outputDimensions.begin() + axis, 0) + input.n_cols. Shouldn't we multiply these dimensions instead of adding them?
    Gopi M Tatiraju
    @gopitatiraju:matrix.org
    [m]
    I read that NVIDIA went open source with GPU drivers, some parts atleast...
    Haven't read the whole article but I guess it's a start...
    rcurtin
    @ryan:ratml.org
    [m]
    Anwaar Khalid: sorry for the slow response! I think the first thing to do is define how the Concat layer is supposed to work. I never totally decided this and I think this is the reason that the current sort-of-adapted implementation doesn't completely make sense
    right now, the Concat layer seems to want to hold a set of layers itself, and so when you call Forward(), it doesn't concatenate the input---what it actually does is run that input through each layer independently, and then concatenates the output. so in that sense, the name Concat is somewhat inaccurate
    when the DAG-network idea came up, it became clear to me that what might actually be necessary is a simpler Concat layer that accepts an arbitrary-shape input (as specified with InputDimensions()), and then collapses it by adding together everything on one particular axis
    that way, any DAG-network we implement could use this "simpler" Concat layer; or, maybe, it makes more sense to simply inline the concatenation implementation into the DAG-network's Forward() and Backward() methods, meaning that there is no reason to preserve the Concat layer
    so... there are lots of options... honestly, I might lean towards the last one (no Concat layer that the user can use; the concatenation operation lives entirely in the DAG-network class)
    well... hmm... I'm not sure of that. maybe the simpler Concat layer makes sense to use in a regular FFN too? hmm, so maybe that is the better idea... you can see there are lots of tradeoffs and advantages and disadvantages of each approach 😄
    one thing I think I can say for sure is that the current Concat layer that is based on MultiLayer is probably not the right way to go
    Gopi M Tatiraju
    @gopitatiraju:matrix.org
    [m]

    shrit: I did a new installation of Ubuntu, and then added some ssh keys...

    When I shifted to i3 these keys are not working, any idea why?

    Anwaar Khalid
    @khalidanwaar:matrix.org
    [m]
    Hello rcurtin ! I'm also sorry for the late response, I was on a trek 😃
    I agree that the concatenation operation should be integrated with the DAG class. In general, we should integrate all merging layers ( add_merge, multiply_merge & concat) with the DAG class. I think we can achieve this with the 'Add' function where in a user can specify an arbitrary no. of Multilayers & how to merge these layers. So something like:
    DAG.Add(Multlayer A, Multilayer B, Multilayer C, "merge_type")
    So, if we decide to stick with the Multilayer adaptation of merging layers, we can internally add these layers to the network. This way these merging layers can still be used in a regular FFN as well. What do you think about this ?
    1 reply
    Shubham Agrawal
    @shubhamag:matrix.org
    [m]
    rcurtin: zoq @marcusedel:matrix.org: you please see TEST_CASE_METHOD as it has issue in static code analysis of Static Initialization Order Fiasco
    rcurtin
    @ryan:ratml.org
    [m]
    Anwaar Khalid: no worries about the slow response :) for the DAG class, I don't see the reason we need "merge_type". we can adopt the semantic that a layer with multiple in-edges will have its outputs concatenated (so e.g. three layers each outputting a 2x6x2 tensor will result in a 2x6x2x3 input to the next layer), and then we can have a Sum layer (or similar), which could reduce the 2x6x2x3 input to a 2x6x2x1 output by summing the values along the last axis
    (the DAG network can perform an optimization to avoid forming the 2x6x2x3 input, if a Sum layer (or whatever we call it) has multiple in-edges)
    I'm not sure that I understand the rest of the comment, and how it relates to MultiLayer though
    Shubham Agrawal: can you provide more information on the TEST_CASE_METHOD issue? I am not sure what you're referring to
    Shubham Agrawal
    @shubhamag:matrix.org
    [m]
    ```
    src/mlpack/tests/main_tests/gmm_generate_test.cpp:27: error: Static Initialization Order Fiasco
      Initializer of anonymous_namespace__home_jenkins_workspace_pull-requests-mlpack-static-code-analysis_src_mlpack_tests_main_tests_gmm_generate_test.cpp::autoRegistrar13 accesses global variable from a different translation unit: std::nothrow|.
      25. 
      26. // Checking that Samples must greater than 0.
      27. TEST_CASE_METHOD(GmmGenerateTestFixture, "GmmGenerateSamplesTest",
          ^
      28.                  "[GmmGenerateMainTest][BindingTests]")
      29. {
    You can see here
    I have cross checked all 503 issue came from same method
    rcurtin
    @ryan:ratml.org
    [m]
    I have no idea what you are talking about though; how did you come to this issue? what even is the issue? is this a compilation issue? what is the context?
    1 reply
    rcurtin
    @ryan:ratml.org
    [m]
    okay, it is something that is coming up in the static code analysis checks for one of your PRs?
    1 reply
    which PR is it? did you change any code related to the line that you pasted?
    1 reply
    I'm sorry to ask so many questions but please understand I have basically zero context on what you are up to or what you are trying to do---and even if you did tell me before, I jump between so many things you should not in general assume that I remember any of what you have told me :)
    I don't understand the response---you didn't answer either question that I asked. I agree that the catch code is very complicated, and ideally we should ignore any static code analysis errors that come from catch and not our code
    1 reply
    if "we should ignore static code analysis errors" is the answer you were looking for originally, cool, we have solved the issue 😄 but maybe not? I am not sure
    Tamandeep Singh
    @tamandeeps
    Hello Everyone
    I am not selected in GSOC this year, but still I wanna contribute for this organization.
    Can anyone help me on which issues should I work on ?
    Tamandeep Singh
    @tamandeeps
    Hello
    Amir Rouatbi
    @fRod5799_twitter
    Hello, where can I find some tutorial on how to use mlpack in google collab?
    Domenico Stefani
    @domenicostefani

    Hi, I wanted to ask for some help to load trained models on a piece of C++ code because this is making me go crazy! My case, which is not extremely peculiar, is that of having to train a bunch of models on Python, find the best, and export it to be deployed in a C++ environment (on RaspberryPI).

    There seems to be no documentation on saving models from Python with something else than pickles.
    However, a few months back when I stopped working on this problem, I found that the pickles coming from MLPack models were the result of calling the getstate() method plus some header from the pickle library.

    So I tried direcly writing to file the bytes obtained from getstate() but I don't think I'm on the right track because the C++ library is throwing all kinds of errors when trying to load the binary file to a new model.

    I could provide error logs, but I don't think I'm on the right track yet, so they would probably be useless.

    Is someone able help with this?
    Thank you

    Also, the "slack-inviter.mlpack.org:4000" has been down for months. Is the Slack channel itself still active? If so, is it possible to enter there without the invited?
    Gaurav Bhardwaj
    @gaurav-bhardwaj29
    Screenshot from 2022-07-28 02-00-19.png
    I am getting this error while building mlpack particularly when passing: 'make -j4 command.
    Santhosh_Rao
    @santhosh-RP
    Hi developers. i want to contribute to the ml pack . can anybody provide proper guidelines to contribute
    Rohan Kumar Singh
    @RohanHBTU
    I would love to contribute to organisation such as mlpack but can anyone please tell me how to get started, what resources should I follow, so that I can embark on my future endeavour.
    Hoping to hear from you soon.
    AdarshSantoria
    @AdarshSantoria
    Hi myself Adarsh Santoria , second yearite at IIT Mandi, enthusiatic towards ML and CP and love to contribute in this organisation.
    SANJAI_3
    @sanjail3
    I am Sanjai second-year undergraduate studying in the field of machine learning.I would love to contribute to this organisation.Can anybody help me out with this
    Nilesh Das
    @nilesh05apr
    Hello @community myself Nilesh Das. I am 3rd year undergdatuate at IIT Kharagpur pursuing minor in CSE and will be doing my Masters in AI and Machine Learning. I have experience in machine learning and deep projects as well as backend development. I would love to contribute to this organisation. Looking to collab and make new friends.