GuessSketch | Machine Learning class - using TensorFlow | Machine Learning library

 by   nuaimat Java Version: Current License: No License

kandi X-RAY | GuessSketch Summary

kandi X-RAY | GuessSketch Summary

GuessSketch is a Java library typically used in Artificial Intelligence, Machine Learning applications. GuessSketch has no bugs, it has no vulnerabilities and it has low support. However GuessSketch build file is not available. You can download it from GitHub.

Guess a Sketch - a project for Machine Learning class - using TensorFlow , python, Java and an Android App. We had 3 layers, the first one is the Guess a Sketch Android App, we created an android app with a drawing canvas based on Valerio Bozzolan’s open source project called Acrylic Paint (it is GNU license. The Android app was modified such that it doesn’t save sketches locally, but instead, send them over the internet in a POST HTTP request to the middle layer. Which in turn would return a JSON format response with labels it predicts would match this sketch. Guess a Sketch Android app would then display those predictions to the user in a list of radio buttons, There also would be an option to suggest a different label. If the predictions provided by the Middle layer were correct and the user selects one of them, then that would be a positive feedback for the system, we simply guessed it right, this positive feedback would be used later on to retrain the engine and increase the confidence of this prediction. If the user didn’t find the label they were expecting, then they can choose the “Other (Please specify)” button, which would by then asks them to enter a label for the sketch the drew. This is called “Negative feedback”, this Label along with the sketch would be sent to the middle layer and would be used later on to retrain the system and introduce a new class (label) if number of images submitted by users matches a certain threshold (30 images, for now, it’s a requirement by tensorflow), In order to help faster builds for the Android app as well as better dependency handling we used a software project management tool and build management called Gradle (Guess a Sketch Android App - Along with the predicted labels. The middle layer is Java based and uses Jersey Java library (to provide a RESTFul web service for the system. It’s deployed on Apache Tomcat (Application server and built using Maven software project management (Maven helps to build project much faster and provides dependencies resolving feature. Middle layer also uses a special logic to sanitize illegal input sent by users when asked about labels as this might cause a security threat. Functionalities of Middle layers: Guess a sketch, in this API call, the android app would send the image binary data, middle layer would forward this binary data along with a specially crafted HTTP POST request to the Guess-Sketch Engine, This engine would reply with a JSON string containing a list of predictions matching that sketch. Middle layer would then pass this JSON string back to the Android app. Positive Feedback: Android app sends the binary data of the image along with the label predicted by the Guess a sketch engine earlier, this image data along with that label would be kept inside a positive feedback folder and would be used later to retrain the system. Retraining would happen in this case by copying over all new images from the positive feedback folder to their appropriate locations inside the dataset folder and run the retraining script. Negative Feedback: Android app sends the binary data of the image along with the label entered by the user, this image data along with that label would be kept inside a negative feedback folder and would be used later to retrain the system once the number of images reaches a threshold (30 images in this case). Retraining would happen copying over this label-named new folder along with images inside it to the dataset folder and run the retraining script. Guess A Sketch Engine is python based FastCGI script that uses TensorFlow (inception engine to predict images sent by the middle layer and responds back in a JSON format string. Tensorflow initially comes untrained, we trained that system by drawing sketches for 12 different classes (refer to Dataset section above), once trained the system generates a bottleneck files, labels file and a .pb file which acts like a knowledge database that tensorflow engine can use later on to make predictions. Guess a Sketch Engine was deployed as a FastCGI script, using Apache FastCGI Module (the benefit of this approach is that we will always have parameterized number of script instances loaded in memory and waiting to serve requests. We also deploy this on Apache web server (It also used several python libraries in order to achieve the functionality needed: Flipflop (: FastCGI wrapper for WSGI applications Werkzeug (: WSGI utility library for Python that simplifies handling of HTTP Requests/Response and supports multipart/form-data uploads. Tensorflow : The tensorflow inception engine python interface JSON : to produce output in JSON format. PS: please refer to file inside the android app and inside the middle layer to change hardcoded folder paths. Didn't have time to solve these static values in a better way.

            kandi-support Support

              GuessSketch has a low active ecosystem.
              It has 27 star(s) with 11 fork(s). There are 5 watchers for this library.
              It had no major release in the last 6 months.
              GuessSketch has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of GuessSketch is current.

            kandi-Quality Quality

              GuessSketch has no bugs reported.

            kandi-Security Security

              GuessSketch has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              GuessSketch does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              GuessSketch releases are not available. You will need to build from source code and install.
              GuessSketch has no build file. You will be need to create the build yourself to build the component from source.

            Top functions reviewed by kandi - BETA

            kandi has reviewed GuessSketch and discovered the below as its top functions. This is intended to give you an instant insight into GuessSketch implemented functionality, and help decide if they suit your requirements.
            • Creates the parent view
            • Load the application s intent
            • Adds view to the PictureView
            • Determines if this is the first time
            • Called when an options item is selected
            • Refresh predictions
            • Saves data to file
            • Takes a screenshot of the current screen
            • Try to guess a photo from the user
            • Writes an uploaded input stream to a temp file
            • Performs POST to supplied URL
            • Region BufferedPicture
            • Draws a picture to the canvas
            • Resize the view
            • Start the activity
            • Synchronized
            • Sets the about textView
            • Creates the default color picker view
            • Called when the bitmap is changed
            • Invoked when the double back button pressed
            • Invalidate a dirty view in the parent
            Get all kandi verified functions for this library.

            GuessSketch Key Features

            No Key Features are available at this moment for GuessSketch.

            GuessSketch Examples and Code Snippets

            No Code Snippets are available at this moment for GuessSketch.

            Community Discussions


            Using RNN Trained Model without pytorch installed
            Asked 2022-Feb-28 at 20:17

            I have trained an RNN model with pytorch. I need to use the model for prediction in an environment where I'm unable to install pytorch because of some strange dependency issue with glibc. However, I can install numpy and scipy and other libraries. So, I want to use the trained model, with the network definition, without pytorch.

            I have the weights of the model as I save the model with its state dict and weights in the standard way, but I can also save it using just json/pickle files or similar.

            I also have the network definition, which depends on pytorch in a number of ways. This is my RNN network definition.



            Answered 2022-Feb-17 at 10:47

            You should try to export the model using torch.onnx. The page gives you an example that you can start with.

            An alternative is to use TorchScript, but that requires torch libraries.

            Both of these can be run without python. You can load torchscript in a C++ application

            ONNX is much more portable and you can use in languages such as C#, Java, or Javascript (even on the browser)

            A running example

            Just modifying a little your example to go over the errors I found

            Notice that via tracing any if/elif/else, for, while will be unrolled



            Flux.jl : Customizing optimizer
            Asked 2022-Jan-25 at 07:58

            I'm trying to implement a gradient-free optimizer function to train convolutional neural networks with Julia using Flux.jl. The reference paper is this: This paper proposes RSO, a gradient-free optimization algorithm updates single weight at a time on a sampling bases. The pseudocode of this algorithm is depicted in the picture below.


            I'm using MNIST dataset.



            Answered 2022-Jan-14 at 23:47

            Based on the paper you shared, it looks like you need to change the weight arrays per each output neuron per each layer. Unfortunately, this means that the implementation of your optimization routine is going to depend on the layer type, since an "output neuron" for a convolution layer is quite different than a fully-connected layer. In other words, just looping over Flux.params(model) is not going to be sufficient, since this is just a set of all the weight arrays in the model and each weight array is treated differently depending on which layer it comes from.

            Fortunately, Julia's multiple dispatch does make this easier to write if you use separate functions instead of a giant loop. I'll summarize the algorithm using the pseudo-code below:



            How can I check a confusion_matrix after fine-tuning with custom datasets?
            Asked 2021-Nov-24 at 13:26

            This question is the same with How can I check a confusion_matrix after fine-tuning with custom datasets?, on Data Science Stack Exchange.


            I would like to check a confusion_matrix, including precision, recall, and f1-score like below after fine-tuning with custom datasets.

            Fine tuning process and the task are Sequence Classification with IMDb Reviews on the Fine-tuning with custom datasets tutorial on Hugging face.

            After finishing the fine-tune with Trainer, how can I check a confusion_matrix in this case?

            An image of confusion_matrix, including precision, recall, and f1-score original site: just for example output image



            Answered 2021-Nov-24 at 13:26

            What you could do in this situation is to iterate on the validation set(or on the test set for that matter) and manually create a list of y_true and y_pred.



            CUDA OOM - But the numbers don't add upp?
            Asked 2021-Nov-23 at 06:13

            I am trying to train a model using PyTorch. When beginning model training I get the following error message:

            RuntimeError: CUDA out of memory. Tried to allocate 5.37 GiB (GPU 0; 7.79 GiB total capacity; 742.54 MiB already allocated; 5.13 GiB free; 792.00 MiB reserved in total by PyTorch)

            I am wondering why this error is occurring. From the way I see it, I have 7.79 GiB total capacity. The numbers it is stating (742 MiB + 5.13 GiB + 792 MiB) do not add up to be greater than 7.79 GiB. When I check nvidia-smi I see these processes running



            Answered 2021-Nov-23 at 06:13

            This is more of a comment, but worth pointing out.

            The reason in general is indeed what talonmies commented, but you are summing up the numbers incorrectly. Let's see what happens when tensors are moved to GPU (I tried this on my PC with RTX2060 with 5.8G usable GPU memory in total):

            Let's run the following python commands interactively:



            How to compare baseline and GridSearchCV results fair?
            Asked 2021-Nov-04 at 21:17

            I am a bit confusing with comparing best GridSearchCV model and baseline.
            For example, we have classification problem.
            As a baseline, we'll fit a model with default settings (let it be logistic regression):



            Answered 2021-Nov-04 at 21:17

            No, they aren't comparable.

            Your baseline model used X_train to fit the model. Then you're using the fitted model to score the X_train sample. This is like cheating because the model is going to already perform the best since you're evaluating it based on data that it has already seen.

            The grid searched model is at a disadvantage because:

            1. It's working with less data since you have split the X_train sample.
            2. Compound that with the fact that it's getting trained with even less data due to the 5 folds (it's training with only 4/5 of X_val per fold).

            So your score for the grid search is going to be worse than your baseline.

            Now you might ask, "so what's the point of best_model.best_score_? Well, that score is used to compare all the models used when searching for the optimal hyperparameters in your search space, but in no way should be used to compare against a model that was trained outside of the grid search context.

            So how should one go about conducting a fair comparison?

            1. Split your training data for both models.



            Getting Error 524 while running jupyter lab in google cloud platform
            Asked 2021-Oct-15 at 02:14

            I am not able to access jupyter lab created on google cloud

            I created one notebook using Google AI platform. I was able to start it and work but suddenly it stopped and I am not able to start it now. I tried building and restarting the jupyterlab, but of no use. I have checked my disk usages as well, which is only 12%.

            I tried the diagnostic tool, which gave the following result:

            but didn't fix it.

            Thanks in advance.



            Answered 2021-Aug-20 at 14:00


            TypeError: brain.NeuralNetwork is not a constructor
            Asked 2021-Sep-29 at 22:47

            I am new to Machine Learning.

            Having followed the steps in this simple Maching Learning using the Brain.js library, it beats my understanding why I keep getting the error message below:

            I have double-checked my code multiple times. This is particularly frustrating as this is the very first exercise!

            Kindly point out what I am missing here!

            Find below my code:



            Answered 2021-Sep-29 at 22:47

            Turns out its just documented incorrectly.

            In reality the export from brain.js is this:



            Ordinal Encoding or One-Hot-Encoding
            Asked 2021-Sep-04 at 06:43

            IF we are not sure about the nature of categorical features like whether they are nominal or ordinal, which encoding should we use? Ordinal-Encoding or One-Hot-Encoding? Is there a clearly defined rule on this topic?

            I see a lot of people using Ordinal-Encoding on Categorical Data that doesn't have a Direction. Suppose a frequency table:



            Answered 2021-Sep-04 at 06:43

            You're right. Just one thing to consider for choosing OrdinalEncoder or OneHotEncoder is that does the order of data matter?

            Most ML algorithms will assume that two nearby values are more similar than two distant values. This may be fine in some cases e.g., for ordered categories such as:

            • quality = ["bad", "average", "good", "excellent"] or
            • shirt_size = ["large", "medium", "small"]

            but it is obviously not the case for the:

            • color = ["white","orange","black","green"]

            column (except for the cases you need to consider a spectrum, say from white to black. Note that in this case, white category should be encoded as 0 and black should be encoded as the highest number in your categories), or if you have some cases for example, say, categories 0 and 4 may be more similar than categories 0 and 1. To fix this issue, a common solution is to create one binary attribute per category (One-Hot encoding)



            How to increase dimension-vector size of BERT sentence-transformers embedding
            Asked 2021-Aug-15 at 13:35

            I am using sentence-transformers for semantic search but sometimes it does not understand the contextual meaning and returns wrong result eg. BERT problem with context/semantic search in italian language

            by default the vector side of embedding of the sentence is 78 columns, so how do I increase that dimension so that it can understand the contextual meaning in deep.




            Answered 2021-Aug-10 at 07:39

            Increasing the dimension of a trained model is not possible (without many difficulties and re-training the model). The model you are using was pre-trained with dimension 768, i.e., all weight matrices of the model have a corresponding number of trained parameters. Increasing the dimensionality would mean adding parameters which however need to be learned.

            Also, the dimension of the model does not reflect the amount of semantic or context information in the sentence representation. The choice of the model dimension reflects more a trade-off between model capacity, the amount of training data, and reasonable inference speed.

            If the model that you are using does not provide representation that is semantically rich enough, you might want to search for better models, such as RoBERTa or T5.



            How to identify what features affect predictions result?
            Asked 2021-Aug-11 at 15:55

            I have a table with features that were used to build some model to predict whether user will buy a new insurance or not. In the same table I have probability of belonging to the class 1 (will buy) and class 0 (will not buy) predicted by this model. I don't know what kind of algorithm was used to build this model. I only have its predicted probabilities.

            Question: how to identify what features affect these prediction results? Do I need to build correlation matrix or conduct any tests?

            Table example:



            Answered 2021-Aug-11 at 15:55

            You could build a model like this.

            x = features you have. y = true_lable

            from that you can extract features importance. also, if you want to go the extra mile,you can do Bootstrapping, so that the features importance would be more stable (statistical).


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install GuessSketch

            You can download it from GitHub.
            You can use GuessSketch like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the GuessSketch component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer For Gradle installation, please refer .


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone nuaimat/GuessSketch

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link