training | - Workshop materials | Learning library
kandi X-RAY | training Summary
kandi X-RAY | training Summary
Workshop materials.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of training
training Key Features
training Examples and Code Snippets
Community Discussions
Trending Discussions on training
QUESTION
I would like to extract the definitions from the book The Navajo Language: A Grammar and Colloquial Dictionary by Young and Morgan. They look like this (very blurry):
I tried running it through the Google Cloud Vision API, and got decent results, but it doesn't know what to do with these "special" letters with accent marks on them, or the curls and lines on/through them. And because of the blurryness (there are no alternative sources of the PDF), it gets a lot of them wrong. So I'm thinking of doing it from scratch in Tesseract. Note the term is bold and the definition is not bold.
How can I use Node.js and Tesseract to get basically an array of JSON objects sort of like this:
...ANSWER
Answered 2021-Jun-15 at 20:17Tesseract takes a lang
variable that you can expand to include different languages if they're installed. I've used the UB Mannheim (https://github.com/UB-Mannheim/tesseract/wiki) installation which includes a ton of languages supported.
To get better and more accurate results, the best thing to do is to process the image before handing it to Tesseract. Set a white/black threshold so that you have black text on white background with no shading. I'm not sure how to do this in Node, but I've done it with Python's OpenCV library.
If that font doesn't get you decent results with the out of the box, then you'll want to train your own, yes. This blog post walks through the process in great detail: https://towardsdatascience.com/simple-ocr-with-tesseract-a4341e4564b6. It revolves around using the jTessBoxEditor to hand-label the objects detected in the images you're using.
Edit: In brief, the process to train your own:
- Install jTessBoxEditor (https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/). Requires Java Runtime installed as well.
- Collect your training images. They want to be .tiffs. I found I got fairly accurate results with not a whole lot of images that had a good sample of all the characters I wanted to detect. Maybe 30/40 images. It's tedious, so you don't want to do TOO many, but need enough in order to get a good sampling.
- Use jTessBoxEditor to merge all the images into a single .tiff
- Create a training label file (.box)j. This is done with Tesseract itself.
tesseract your_language.font.exp0.tif your_language.font.exp0 makebox
- Now you can open the box file in jTessBoxEditor and you'll see how/where it detected the characters. Bounding boxes and what character it saw. The tedious part: Hand fix all the bounding boxes and characters to accurately represent what is in the images. Not joking, it's tedious. Slap some tv episodes up and just churn through it.
- Train the tesseract model itself
- save a file:
font_properties
who's content isfont 0 0 0 0 0
- run the following commands:
tesseract num.font.exp0.tif font_name.font.exp0 nobatch box.train
unicharset_extractor font_name.font.exp0.box
shapeclustering -F font_properties -U unicharset -O font_name.unicharset font_name.font.exp0.tr
mftraining -F font_properties -U unicharset -O font_name.unicharset font_name.font.exp0.tr
cntraining font_name.font.exp0.tr
You should, in there close to the end see some output that looks like this:
Master shape_table:Number of shapes = 10 max unichars = 1 number with multiple unichars = 0
That number of shapes should roughly be the number of characters present in all the image files you've provided.
If it went well, you should have 4 files created: inttemp
normproto
pffmtable
shapetable
. Rename them all with the prefix of your_language
from before. So e.g. your_language.inttemp
etc.
Then run:
combine_tessdata your_language
The file: your_language.traineddata
is the model. Copy that into your Tesseract's data folder. On Windows, it'll be like: C:\Program Files x86\tesseract\4.0\tessdata
and on Linux it's probably something like /usr/shared/tesseract/4.0/tessdata
.
Then when you run Tesseract, you'll pass the lang=your_language
. I found best results when I still passed an existing language as well, so like for my stuff it was still English I was grabbing, just funny fonts. So I still wanted the English as well, so I'd pass: lang=your_language+eng
.
QUESTION
I am trying to use my own train step in with Keras by creating a class that inherits from Model. It seems that the training works correctly but the evaluate function always returns 0 on the loss even if I send to it the train data, which have a big loss value during the training. I can't share my code but was able to reproduce using the example form the Keras api in https://keras.io/guides/customizing_what_happens_in_fit/ I changed the Dense layer to have 2 units instead of one, and made its activation to sigmoid.
The code:
...ANSWER
Answered 2021-Jun-12 at 17:27As you manually use the loss and metrics function in the train_step
(not in the .compile
) for the training set, you should also do the same for the validation set or by defining the test_step
in the custom model in order to get the loss score and metrics score. Add the following function to your custom model.
QUESTION
The Question
How do I best execute memory-intensive pipelines in Apache Beam?
Background
I've written a pipeline that takes the Naemura Bird dataset and converts the images and annotations to TF Records with TF Examples of the required format for the TF object detection API.
I tested the pipeline using DirectRunner with a small subset of images (4 or 5) and it worked fine.
The Problem
When running the pipeline with a bigger data set (day 1 of 3, ~21GB) it crashes after a while with a non-descriptive SIGKILL
.
I do see a memory peak before the crash and assume that the process is killed because of a too high memory load.
I ran the pipeline through strace
. These are the last lines in the trace:
ANSWER
Answered 2021-Jun-15 at 13:51Multiple things could cause this behaviour, because the pipeline runs fine with less Data, analysing what has changed could lead us to a resolution.
Option 1 : clean your input dataThe third line of the logs you provide might indicate that you're processing unclean data in your bigger pipeline mmap(NULL,
could mean that | "Get Content" >> beam.Map(lambda x: x.read_utf8())
is trying to read a null value.
Is there an empty file somewhere ? Are your files utf8 encoded ?
Option 2 : use smaller files as inputI'm guessing using the fileio.ReadMatches()
will try to load into memory the whole file, if your file is bigger than your memory, this could lead to errors. Can you split your data into smaller files ?
If files are too big for your current machine with a DirectRunner
you could try to use an on-demand infrastructure using another runner on the Cloud such as DataflowRunner
QUESTION
I would like to know whether there is a recommended way of measuring execution time in Tensorflow Federated. To be more specific, if one would like to extract the execution time for each client in a certain round, e.g., for each client involved in a FedAvg round, saving the time stamp before the local training starts and the time stamp just before sending back the updates, what is the best (or just correct) strategy to do this? Furthermore, since the clients' code run in parallel, are such a time stamps untruthful (especially considering the hypothesis that different clients may be using differently sized models for local training)?
To be very practical, using tf.timestamp()
at the beginning and at the end of @tf.function
client_update(model, dataset, server_message, client_optimizer)
-- this is probably a simplified signature -- and then subtracting such time stamps is appropriate?
I have the feeling that this is not the right way to do this given that clients run in parallel on the same machine.
Thanks to anyone can help me on that.
...ANSWER
Answered 2021-Jun-15 at 12:01There are multiple potential places to measure execution time, first might be defining very specifically what is the intended measurement.
Measuring the training time of each client as proposed is a great way to get a sense of the variability among clients. This could help identify whether rounds frequently have stragglers. Using
tf.timestamp()
at the beginning and end of theclient_update
function seems reasonable. The question correctly notes that this happens in parallel, summing all of these times would be akin to CPU time.Measuring the time it takes to complete all client training in a round would generally be the maximum of the values above. This might not be true when simulating FL in TFF, as TFF maybe decided to run some number of clients sequentially due to system resources constraints. In practice all of these clients would run in parallel.
Measuring the time it takes to complete a full round (the maximum time it takes to run a client, plus the time it takes for the server to update) could be done by moving the
tf.timestamp
calls to the outer training loop. This would be wrapping the call totrainer.next()
in the snippet on https://www.tensorflow.org/federated. This would be most similar to elapsed real time (wall clock time).
QUESTION
I am programming in Python 3.8 with Tensorflow installed along with my natural language processing project. When I want to begin the training phase, I get this message right before I begin...
...ANSWER
Answered 2021-Mar-10 at 14:44I would suggest you to use conda
(Ananconda/Miniconda) to create a separate environment and install tensorflow-gpu
, cudnn
and cudatoolkit
. Miniconda has a much smaller footprint than Anaconda. I would suggest you to install Miniconda if you do not have conda
already.
QUESTION
I have issues fine-tuning the pretrained model deeplabv3_mnv2_pascal_train_aug in Google Colab.
When I do the visualization with vis.py, the results appear to be displaced to the left/upper side of the image if it has a bigger height/width, namely, the image is not square.
The dataset used for the fine-tune is Look Into Person. The steps done to do so are:
- Create dataset in deeplab/datasets/data_generator.py
ANSWER
Answered 2021-Jun-15 at 09:13After some time, I did find a solution for this problem. An important thing to know is that, by default, train_crop_size and vis_crop_size are 513x513.
The issue was due to vis_crop_size being smaller than the input images, so vis_crop_size is needed to be greater than the max dimension of the biggest image.
In case you want to use export_model.py, you must use the same logic than vis.py, so your masks are not cropped to 513 by default.
QUESTION
I am trying to follow this tutorial here - https://juliasilge.com/blog/xgboost-tune-volleyball/
I am using it on the most recent Tidy Tuesday dataset about great lakes fishing - trying to predict agency based on many other values.
ALL of the code below works except the final row where I get the following error:
...ANSWER
Answered 2021-Jun-15 at 04:08If we look at the documentation of last_fit() We see that split
must be
An rsplit object created from `rsample::initial_split().
You accidentally passed the cross-validation folds object stock_folds
into split
but you should have passed rsplit
object stock_split
instead
QUESTION
I am trying to make a next-word prediction model with LSTM + Mixture Density Network Based on this implementation(https://www.katnoria.com/mdn/).
Input: 300-dimensional word vectors*window size(5) and 21-dimensional array(c) representing topic distribution of the document, used to train hidden initial states.
Output: mixing coefficient*num_gaussians, variance*num_gaussians, mean*num_gaussians*300(vector size)
x.shape, y.shape, c.shape with an experimental 161 obserbations gives me such:
(TensorShape([161, 5, 300]), TensorShape([161, 300]), TensorShape([161, 21]))
...ANSWER
Answered 2021-Jun-14 at 19:07for MDN model , the likelihood for each sample has to be calculated with all the Gaussians pdf , to do that I think you have to reshape your matrices ( y_true and mu) and take advantage of the broadcasting operation by adding 1 as the last dimension . e.g:
QUESTION
I am following this tutorial here: https://huggingface.co/transformers/training.html - though, I am coming across an error, and I think the tutorial is missing an import, but i do not know which.
These are my current imports:
...ANSWER
Answered 2021-Jun-14 at 15:08The error states that you do not have a variable called sentences
in the scope. I believe the tutorial presumes you already have a list of sentences and are tokenizing it.
Have a look at the documentation The first argument can be either a string or list of string or list of list of strings.
QUESTION
ANSWER
Answered 2021-Jun-14 at 13:00Sure, you can use the API "Test Point - Update" to update the outcome of test points.
For example, I have two test points (id are 22
and 23
) are 'Active
'.
I can use this API to update one to be 'Passed
' and another one to be 'Failed
'.
- Request URI:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install training
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page