Я пытаюсь обучить простую классификационную модель, используя кера, которая работает с текстом и имеет две выходные классификации: 0 или 1. Я преобразовал свои текстовые данные, используя tfidvectorizer () из Sklearn, и все было хорошо, пока я не попытался предсказать, используя тестовый набор данных (здесь называется x_test_tfid). Я думал, что это может быть потому, что это разреженная матрица, и керас не мог справиться с ней очень хорошо, поэтому я даже преобразовал в тензорфлоуз -процесс, используя очень простой алгоритм преобразования, но возникает та же ошибка. Я понятия не имею, что может быть возможно. Я ценю любые советы.
Обратите внимание, что если я попытаюсь «предсказать», используя набор учебного заведения, все работает очень хорошо. Я скопирую основные части кода здесь, так как это простой код: < /p>
import pandas as pd
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.metrics import classification_report
from sklearn.svm import SVC
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
import numpy as np
from keras.utils import to_categorical
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
vectorizer = TfidfVectorizer()
X_train_tfid = vectorizer.fit_transform(X_train)
X_test_tfid = vectorizer.transform(X_test)
#Simple transforming the Y to categorical values so it can be read by the Neural Network
y_train_categorical = y_train.copy()
y_train_categorical.replace({'F': 0, 'M': 1}, inplace= True)
y_test_categorical = y_test.copy()
y_test_categorical.replace({'F': 0, 'M': 1}, inplace= True)
y_train_categorical = to_categorical(y_train_categorical)
y_test_categorical = to_categorical(y_test_categorical)
#Creating the simple model - note that I harded code the dimension here, but it is the correct number in my example
model = Sequential()
model.add(Dense(8, input_dim=1388, activation='relu'))
model.add(Dense(8, input_dim=20, activation='relu'))
model.add(Dense(2, activation="softmax"))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
#Fitting the model
model.fit(X_train_tfid, y_train_categorical, epochs=10, verbose=1)
#Results and ran well
Epoch 1/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.1075
Epoch 2/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 1.0000 - loss: 0.0681
Epoch 3/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 1.0000 - loss: 0.0446
Epoch 4/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 1.0000 - loss: 0.0316
Epoch 5/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.0228
Epoch 6/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.0179
Epoch 7/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 1.0000 - loss: 0.0141
Epoch 8/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.0118
Epoch 9/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.0095
Epoch 10/10
45/45 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 1.0000 - loss: 0.0079
#Now trying to predict the model when the error occurs:
keras_predict = model.predict(X_test_tfidf)
#ERROR BELOW
2024-09-11 11:26:55.182607: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[31] = 607 is not in [0, 607)
2024-09-11 11:26:55.182687: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[31] = 607 is not in [0, 607)
2024-09-11 11:26:55.185070: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[0] = 608 is not in [0, 607)
2024-09-11 11:26:55.185277: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[0] = 608 is not in [0, 607)
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
Cell In[103], line 1
----> 1 keras_predict = model.predict(X_test_tfid)
File ~/.conda/envs/python3.11/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py:122, in filter_traceback..error_handler(*args, **kwargs)
119 filtered_tb = _process_traceback_frames(e.__traceback__)
120 # To get the full stack trace, call:
121 # `keras.config.disable_traceback_filtering()`
--> 122 raise e.with_traceback(filtered_tb) from None
123 finally:
124 del filtered_tb
File ~/.conda/envs/python3.11/lib/python3.11/site-packages/tensorflow/python/framework/ops.py:5983, in raise_from_not_ok_status(e, name)
5981 def raise_from_not_ok_status(e, name) -> NoReturn:
5982 e.message += (" name: " + str(name if name is not None else ""))
-> 5983 raise core._status_to_exception(e) from None
InvalidArgumentError: {{function_node __wrapped__IteratorGetNext_output_types_1_device_/job:localhost/replica:0/task:0/device:CPU:0}} Error in user-defined function passed to ParallelMapDatasetV2:697 transformation with iterator: Iterator::Root::Prefetch::ParallelMapV2: indices[31] = 607 is not in [0, 607)
[[{{node RaggedGather_1/RaggedGather}}]] [Op:IteratorGetNext] name:
< /code>
Как я уже упоминал, я также пытался преобразовать x_test_tfid и x_train_tfid в скудный тензор с очень простым алгоритмом. Такая же проблема возникла: она работала просто отлично в методе соответствия, но получила такую же ошибку на методе прогнозирования (даже не лучший способ, но работает!) < /P>
#Transforming the Sparse Matrix created by the Vectorization from Sklearn to a TensorFlow Sparse Matrix
def transform_to_sparse_tensor(sparse_matrix):
indexes = []
values = []
for l in range(sparse_matrix.shape[0]):
for c in range(sparse_matrix.shape[1]):
if sparse_matrix[l, c] != 0:
indexes.append([l, c])
values.append(sparse_matrix[l,c])
st = SparseTensor(indices=indexes, values=values, dense_shape=[sparse_matrix.shape[0],sparse_matrix.shape[1]])
return st
X_train_tensor = transform_to_sparse_tensor(X_train_tfidf)
X_test_tensor = transform_to_sparse_tensor(X_test_tfidf)
Then I fit using X_train_tensor (worked!) and when I predict with X_test_tensor I got the exactly same error.
Я думаю, что это должно быть очень просто, поскольку у него нет причудливого кода или шагов .. кто -нибудь получил ту же ошибку и мог бы помочь здесь?
Я пытаюсь обучить простую классификационную модель, используя кера, которая работает с текстом и имеет две выходные классификации: 0 или 1. Я преобразовал свои текстовые данные, используя tfidvectorizer () из Sklearn, и все было хорошо, пока я не попытался предсказать, используя тестовый набор данных (здесь называется x_test_tfid). Я думал, что это может быть потому, что это разреженная матрица, и керас не мог справиться с ней очень хорошо, поэтому я даже преобразовал в тензорфлоуз -процесс, используя очень простой алгоритм преобразования, но возникает та же ошибка. Я понятия не имею, что может быть возможно. Я ценю любые советы. Обратите внимание, что если я попытаюсь «предсказать», используя набор учебного заведения, все работает очень хорошо. Я скопирую основные части кода здесь, так как это простой код: < /p> [code]import pandas as pd from sklearn.metrics import ConfusionMatrixDisplay from sklearn.metrics import classification_report from sklearn.svm import SVC
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split
import numpy as np from keras.utils import to_categorical
#Simple transforming the Y to categorical values so it can be read by the Neural Network y_train_categorical = y_train.copy() y_train_categorical.replace({'F': 0, 'M': 1}, inplace= True) y_test_categorical = y_test.copy() y_test_categorical.replace({'F': 0, 'M': 1}, inplace= True) y_train_categorical = to_categorical(y_train_categorical) y_test_categorical = to_categorical(y_test_categorical)
#Creating the simple model - note that I harded code the dimension here, but it is the correct number in my example
#Now trying to predict the model when the error occurs:
keras_predict = model.predict(X_test_tfidf)
#ERROR BELOW
2024-09-11 11:26:55.182607: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[31] = 607 is not in [0, 607) 2024-09-11 11:26:55.182687: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[31] = 607 is not in [0, 607) 2024-09-11 11:26:55.185070: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[0] = 608 is not in [0, 607) 2024-09-11 11:26:55.185277: W tensorflow/core/framework/op_kernel.cc:1840] OP_REQUIRES failed at ragged_gather_op.cc:77 : INVALID_ARGUMENT: indices[0] = 608 is not in [0, 607) --------------------------------------------------------------------------- InvalidArgumentError Traceback (most recent call last) Cell In[103], line 1 ----> 1 keras_predict = model.predict(X_test_tfid)
File ~/.conda/envs/python3.11/lib/python3.11/site-packages/keras/src/utils/traceback_utils.py:122, in filter_traceback..error_handler(*args, **kwargs) 119 filtered_tb = _process_traceback_frames(e.__traceback__) 120 # To get the full stack trace, call: 121 # `keras.config.disable_traceback_filtering()` --> 122 raise e.with_traceback(filtered_tb) from None 123 finally: 124 del filtered_tb
File ~/.conda/envs/python3.11/lib/python3.11/site-packages/tensorflow/python/framework/ops.py:5983, in raise_from_not_ok_status(e, name) 5981 def raise_from_not_ok_status(e, name) -> NoReturn: 5982 e.message += (" name: " + str(name if name is not None else "")) -> 5983 raise core._status_to_exception(e) from None
InvalidArgumentError: {{function_node __wrapped__IteratorGetNext_output_types_1_device_/job:localhost/replica:0/task:0/device:CPU:0}} Error in user-defined function passed to ParallelMapDatasetV2:697 transformation with iterator: Iterator::Root::Prefetch::ParallelMapV2: indices[31] = 607 is not in [0, 607) [[{{node RaggedGather_1/RaggedGather}}]] [Op:IteratorGetNext] name:
< /code> Как я уже упоминал, я также пытался преобразовать x_test_tfid и x_train_tfid в скудный тензор с очень простым алгоритмом. Такая же проблема возникла: она работала просто отлично в методе соответствия, но получила такую же ошибку на методе прогнозирования (даже не лучший способ, но работает!) < /P> #Transforming the Sparse Matrix created by the Vectorization from Sklearn to a TensorFlow Sparse Matrix
def transform_to_sparse_tensor(sparse_matrix): indexes = [] values = [] for l in range(sparse_matrix.shape[0]): for c in range(sparse_matrix.shape[1]): if sparse_matrix[l, c] != 0: indexes.append([l, c]) values.append(sparse_matrix[l,c]) st = SparseTensor(indices=indexes, values=values, dense_shape=[sparse_matrix.shape[0],sparse_matrix.shape[1]]) return st
Then I fit using X_train_tensor (worked!) and when I predict with X_test_tensor I got the exactly same error. [/code] Я думаю, что это должно быть очень просто, поскольку у него нет причудливого кода или шагов .. кто -нибудь получил ту же ошибку и мог бы помочь здесь?
Я пытаюсь предсказать цену корпуса для этого набора данных
Я пытаюсь использовать модель линейной регрессии, я получаю ошибку значения как
valueError: не удалось преобразовать строку в плавание: как показано ниже
У меня есть модель, и я хочу обучить ее со скоростью обучения = 0,8 в течение нескольких эпох, затем установить скорость обучения = 0,4 и продолжить обучение.
Но поскольку скорость обучения задается при компиляции модели... И что произойдет ли с...
Я стараюсь преобразовать модель ONNX в керас, но когда я вызываю функцию преобразования, я получаю следующее сообщение об ошибке TypeError: Unlastable Type: 'Google.protobuf.pyext._message.repeatedScalarcontainer'
Сразу хочу сказать, что я новичок в этом деле.
У меня есть код, который обучает модель прогнозированию урожайности сельскохозяйственных культур.
Вот наборы данных которые использовались:
import numpy as np # линейная алгебра
import pandas as pd #...
Вопрос:
Я работаю над проектом прогнозирования временных рядов, в котором мне нужно спрогнозировать еженедельные продажи ( kg_ordered_sum ) для различных комбинаций продукта и клиента. Данные собираются еженедельно ( W-MON ) для каждого...