-
-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to **
apply an object as kwargs
#209
Comments
**
and object into kwargs**
apply an object as kwargs
(require '[libpython-clj2.python :as py])
(require '[libpython-clj2.require :refer [import-python])
(import-python) ;; gives us access to python builtins
;; py** has similar syntax to ** in Python, last argument is considered **kwargs
;; py.. is similar in syntax to (.. ) syntax in Clojure
;; note that python datatypes need to be wrapped when using the helper macros,
;; that's why I'm employing (python/list [1]) instead of a Clojure vector of [1]
(def outputs (py/py** model :labels (py/py.. torch (LongTensor (python/list [1]))) encoding)) |
If you put in the Python import statements you used I can show you how to translate them as well. I omitted them from the above snippet. |
thank you @jjtolton! I tried your example and it still did not work. I think the issue is that I was able to invoke it in this cumbersome way: (libpython-clj2.python.fn/call-kw
model
[]
(py/as-map (py/set-attr! encoding :labels (torch/LongTensor [1])))) Re: import statements, here's the entire code example (require-python '[transformers :bind-ns])
(require-python '[torch :bind-ns])
(def tokenizer
(py. (py.- transformers BertTokenizer)
from_pretrained "bert-base-uncased"))
(def model
(py. (py.- transformers "BertForNextSentencePrediction") from_pretrained "bert-base-uncased"))
(let [prompt "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
next-sequence "The sky is blue due to the shorter wavelength of blue light."
encoding (py/$c tokenizer prompt next-sequence :return_tensors "pt")]
(libpython-clj2.python.fn/call-kw
model
[]
(py/as-map (py/set-attr! encoding :labels (torch/LongTensor [1]))))) |
Ahhh that's a tricky situation I did not consider. |
@den1k Looking back on this, the solution is (py/py** model __call__ :labels (py/py.. torch (LongTensor (python/list [1]))) encoding) not sure why I didn't think of that earlier. |
how can this part from this huggingface example
be translated to libpython-clj?
The text was updated successfully, but these errors were encountered: