OSError: [E053] Could not read meta.json from model-best.zip - machine-learning

I tried to load the trained spacy model but this error appear:
OSError: [E053] Could not read meta.json from model-best.zip
this is my code:
nlp_ner = spacy.load("model-best.zip")

For spaCy 3, you can load models from 3 sources:
Pretrained models (downloaded via a command like python -m spacy download YOUR_MODEL
Custom models you have trained via spacy train.
Loaded models via nlp.from_disk
Usually, any of these models is stored as a folder or directory, with an structure similar to this one (for a NER model, which it seems it is what you are attempting to load):
/path/to/your/model/
├── model-best <== THIS DIRECTORY IS WHAT YOU MIGHT HAVE
│   ├── config.cfg
│   ├── meta.json
│   ├── ner
│   │   ├── cfg
│   │   ├── model
│   │   └── moves
│   ├── tok2vec
│   │   ├── cfg
│   │   └── model
│   ├── tokenizer
│   └── vocab
│   ├── key2row
│   ├── lookups.bin
│   ├── strings.json
│   ├── vectors
│   └── vectors.cfg
└── model-last
├── config.cfg
├── meta.json
├── ner
│   ├── cfg
│   ├── model
│   └── moves
├── tok2vec
│   ├── cfg
│   └── model
├── tokenizer
└── vocab
├── key2row
├── lookups.bin
├── strings.json
├── vectors
└── vectors.cfg
8 directories, 26 files
This discards "loading directly from a .zip file" as a valid option.
I think you may want to try the following:
Try to unzip model-best.zip and see if you find a similar directory structure than the one shown above. If you are in a Linux-based system, here is how.
If the previous structure is confirmed, then proceed with step 3, otherwise your file may be corrupted, or not a spaCy model as such, and you won't be able to load the model.
Try nlp_ner = spacy.load("/path/to/your/model-best") (nlp_ner = spacy.load("./model-best") in your case) and see if it works.
Hope it helps.

Related

Remove some class file from all jars packaged in tar(each tar is a layer of a docker image)

OK so I know how to remove class files from all the jars under a dir. But, now I have different layer from a docker image, each layer is a tar file, and in the tar file there are the jar files.
Can I remove the class files from the jar files, packaged in tar files?
$ tree -L 3
.
├── 29e0fb8afe376cb02219c977cba1c9a80cca895f7f17b72c356f3e25a63337b9
│   ├── json
│   ├── layer.tar
│   └── VERSION
├── 3b75d6634da4d4f4932d2affeabb7454dc51ba160c3833b386c34e328da8f0ba
│   ├── amq # <<<<< this layer is extracted already, and you can see all the jars here. Other layers are not
│   │   ├── activemq-all-5.11.0.redhat-630495.jar
│   │   ├── bin
│   │   ├── conf
│   │   ├── data
│   │   ├── docs
│   │   ├── examples
│   │   ├── lib
│   │   ├── LICENSE
│   │   ├── NOTICE
│   │   ├── README.txt
│   │   ├── webapps
│   │   └── webapps-demo
│   ├── json
│   ├── layer.tar
│   ├── temp
│   └── VERSION
├── c1fa0e994b2d29f60fd2a6caecbe1ac3f987d001903523d60e532b6e08b094f0
│   ├── json
│   ├── layer.tar
│   └── VERSION
├── c8c84a6c1be5bdfc8caafd23082fd725e84f1c9cddb98fd56cad3a62544b2a3c.json
├── ef5088f89fbac64d2d5982ba14492227f60db1221f6bfd6290c6364a2a95a7e3
│   ├── json
│   ├── layer.tar
│   └── VERSION
├── manifest.json
├── repositories
└── script.sh # <<<<< the script is here
So you ask me why?
Well, did you hear people talking about log4j recently? :) I am doing this right now: log4j vulnerability check: how to quickly detect if log4j is used, in mavevn/in an image? "mvn dependency:tree" does not give a full picture
If someone can tell me how to remove these classes from jib maven plugin, that's better. They are from a base image and I doubt we could do that, though.

How to change path to public files on Drupal 8?

By default the path to public filesystem is sites/<site-name>/files in a multi-site environment or just sites/default/files for a single site. How can I change it? I need to keep files on a separate docker volume(s).
You can keep the standard folder structure as it is, and use symlinks to actually use a different path (folder, volume, etc) as the real storage.
Here's the folder structure for a Drupal 8 site I have on my local Homestead. Update the paths according to your own structure.
/home/vagrant/Projects/D/Drupal8/
├── ..
├── private_files
├── public_files
│   ├── ctools
│   ├── field
│   │   └── image
│   └── styles
│   ├── large
│   │   └── public
│   │   └── field
│   │   └── image
│   ├── medium
│   │   └── public
│   │   └── field
│   │   └── image
│   └── thumbnail
│   └── public
│   └── field
│   └── image
├── vendor
└── web
├── includes
├── misc
├── modules
├── profiles
├── scripts
├── sites
│   ├── all
│   └── default
│   └── files -> (symlink) /home/vagrant/Projects/D/Drupal8/public_files/
└── themes
First move current public files directory to outside of Drupal root, or anywhere on your file-system:
$ mv web/sites/default/files public_files
Create a new files directory in its place (Do this only if the next step doesn't work for you):
$ mkdir web/sites/default/files
Create the symlink:
$ ln -s /home/vagrant/Projects/D/Drupal8/public_files/ /home/vagrant/Projects/D/Drupal8/web/sites/default/files
Two important points to pay attention to:
Always use full paths instead of relative paths when creating symbolic links.
Notice the trailing forward-slash usage in source and destination.

docker-compose up with multiple yml confs does not start off

This is the tree structure of my project:
.
├── backend-codebase
│   ├── app.js
│   ├── bin
│   │   └── www
│   ├── config.js
│   ├── db
│   │   ├── index.js
│   │   ├── repos
│   │   │   └── todos.js
│   │   └── sql
│   │   ├── index.js
│   │   └── todos
│   ├── dev
│   │   └── postgres
│   ├── index.js
│   ├── package.json
│   ├── public
│   │   ├── images
│   │   ├── javascripts
│   │   └── stylesheets
│   │   └── style.css
│   ├── routes
│   │   ├── api.js
│   │   ├── index.js
│   │   └── users.js
│   ├── scripts
│   │   ├── applyFixtures.js
│   │   ├── dev_entrypoint.sh
│   │   ├── fixtures.json
│   │   └── psql_dump.sql
│   ├── views
│   │   ├── api.ejs
│   │   ├── db.ejs
│   └── yarn.lock
├── dev
│   ├── Dockerfile-node
│   ├── Dockerfile-postgres
│   ├── development.sh
│   ├── docker-compose-common.yml
│   ├── docker-compose-dev.yml
│   └── postgres
│   ├── 12-12-2016_16_58_59.dump
...
I use docker-compose in order to create three containers and orcherstrate everything:
- a node server
- a postgres DB
- a data container for the DB
plus, I created two (and a third one is missing) yaml files under /dev/docker-compose-*.yml. docker-compose-dev extends the common one and should build the images as well as run all the images.
In order to start off everything I tried to launch the following:
$ docker-compose up --file dev/docker-compose-common.yml --file dev/docker-compose-dev.yml
But what I get is this output:
Builds, (re)creates, starts, and attaches to containers for a service.
Unless they are already running, this command also starts any linked services.
The `docker-compose up` command aggregates the output of each container. When
the command exits, all cont
I really don't understand what I'm doing wrong
Silly, silly me.
It was simply the order between the arguments and the command upside-down.
Plus, I can remove the first --file argument, since it is referenced by using the extends yaml key.
docker-compose -f dev/docker-compose-dev.yml up

pub serve Transformer library "package:observe/transformer.dart" not found

When run pub serve on Mac, it could not find transformer.dart:
Transformer library "package:observe/transformer.dart" not found
I'm using OSX 10.9, DartEditor 30798.
pub build works fine.
I searched and saw pub build fails if proxy is define. But I'm connecting to network directory without proxy.
Here is the observe package under packages directory, transformer.dart is there:
observe
├── html.dart
├── observe.dart
├── src
│   ├── bind_property.dart
│   ├── change_notifier.dart
│   ├── change_record.dart
│   ├── compound_path_observer.dart
│   ├── dirty_check.dart
│   ├── list_diff.dart
│   ├── list_path_observer.dart
│   ├── metadata.dart
│   ├── microtask.dart
│   ├── observable.dart
│   ├── observable_box.dart
│   ├── observable_list.dart
│   ├── observable_map.dart
│   ├── path_observer.dart
│   └── to_observable.dart
├── transform.dart
└── transformer.dart
I had such problem in the renamed polymer project. After I made new polymer project and copy all logic in created files. The problem was solved.

Mustache conflict at release build

I use wooga's fork of mustache.erl (https://github.com/wooga/mustache.erl) in my project. And when I try to create release I get an error because rebar uses this mustache.beam file instead of a file included in its source.
What should I do to resolve this conflict?
The reason is not in rebar but is that some app in release tool search path contains the mustache.erl file as you release does.
Usually rel.config file contains {lib_dirs, ["../.."]} that force release tool search libs (apps) up your release directory. See example below. To fix it, move your release directory dipper (for example -> you_release/you_release) or move app that contains the same file (mustache.erl) to other place.
├── your_release_directory
│   ├── deps
│   │   └── mustache
│   │   ├── ebin
│   │   │   ├── mustache.app
│   │   │   └── mustache.beam
│   │   └── src
│   │   ├── mustache.app.src
│   │   └── mustache.erl
│   ├── ebin
│   │   └── mustache.beam
├── rebar (or any other app contains mustache.erl)
│   ├── ebin
│   │   └── mustache.beam
│   ├── src
│   │   └── mustache.erl

Resources