簡體   English   中英

有沒有一種方法可以將數組轉換為張量 tensorflow?

[英]is there a method to transform array to tensor tensorflow?

我想訓練文本以確定文本是正面的、中性的還是負面的,所以我訓練了 BERT 基礎 model 但最后在 learner.validate 的步驟中返回錯誤,你能幫幫我嗎?

 !pip install ktrain==0.23.2
 import ktrain

 X=["hello","i'am here..","..."]
 y=np.array([1,2,0,2,1,2,0,1,1,...])
 categories=["neg","neut","pos"]
 X_train, X_test, y_train, y_test = train_test_split(X[:100], y[:100], test_size=0.33, 
 random_state=42)
 model_name='distilbert-base-multilingual-cased'
 trans = text.Transformer(model_name, maxlen=512, class_names=categories)
 train_data=trans.preprocess_train(X_train,y_train)
 test_data = trans.preprocess_test(X_test, y_test)
 model= trans.get_classifier()
 learner= ktrain.get_learner(model, train_data=train_data,val_data=test_data,batch_size=8)
 learner.fit_onecycle(3e-5,1)
 learner.validate(class_names=categories)

但我得到錯誤:

      ValueError                                Traceback (most recent call last)
     <ipython-input-39-d99399b4f681> in <module>()
     ----> 1 learner.validate(class_names=categories)

     8 frames
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/constant_op.py in 
   convert_to_eager_tensor(value, ctx, dtype)
   96       dtype = dtypes.as_dtype(dtype).as_datatype_enum
   97   ctx.ensure_initialized()
   ---> 98   return ops.EagerTensor(value, ctx.device_name, dtype)
   99 
   100 

   ValueError: Attempt to convert a value (TFSequenceClassifierOutput(loss=None, 
   logits=array([[-0.14492714, -0.308572  ,  0.41551754],
   [-0.02239409, -0.22379267,  0.13737921],
   [-0.15169457, -0.26776308,  0.3646287 ],
   [-0.11638386, -0.30610234,  0.42503807],
   [-0.14799587, -0.2751274 ,  0.3999261 ],
   [-0.1224369 , -0.2705566 ,  0.37462863],
   [-0.16992202, -0.26875758,  0.38301754],
   [-0.02906444, -0.22582646,  0.16817996],
   [-0.14451084, -0.3335299 ,  0.45228514],
   [-0.12560453, -0.15705517,  0.3202087 ],
   [-0.1477989 , -0.28774017,  0.40492412],
   [-0.15207294, -0.27476442,  0.41782793],
   [-0.14203653, -0.24748898,  0.4224902 ],
   [-0.02594737, -0.23538935,  0.17150217],
   [-0.10563572, -0.31230217,  0.37387425],
   [-0.13637367, -0.28157175,  0.38459644],
   [-0.14043958, -0.29381162,  0.41240314],
   [-0.03989747, -0.23261254,  0.19984315],
   [-0.12188954, -0.25612894,  0.4106647 ],
   [-0.1576367 , -0.32221746,  0.44524238],
   [-0.14458796, -0.29356796,  0.43222305],
   [-0.0947336 , -0.26198757,  0.30835733],
   [-0.18257669, -0.28770167,  0.43495163],
   [-0.17199922, -0.27865767,  0.3720437 ],
   [-0.12301907, -0.2829709 ,  0.42322537],
   [-0.10598033, -0.2630937 ,  0.36105153],
   [-0.01495049, -0.21938747,  0.14062764],
   [-0.12164614, -0.3101943 ,  0.4182844 ],
   [-0.10304911, -0.24770047,  0.353735  ],
   [-0.16426452, -0.29451552,  0.42003003],
   [-0.16851503, -0.2555803 ,  0.41026738],
   [-0.10907209, -0.26942176,  0.40432337],
   [-0.13107793, -0.25909895,  0.34871536]], dtype=float32), hidden_states=None, attentions=None)) 
    with an unsupported type (<class 'transformers.modeling_tf_outputs.TFSequenceClassifierOutput'>) 
    to a Tensor.

我們如何解決這個問題,我在互聯網上發現這個問題與 tensorflow 的版本有關,但我嘗試了 tensorflow 2.1 的版本,但我有同樣的問題......請有任何想法

使用舊版本的 Transformers 幫助我解決了這個問題。

!pip install transformers==3.5.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM