Ich habe diesen Google Colab-Code und möchte ein Modell für MP3-Dateien mit einer Länge von 3 Sekunden, 44,10 kHz, 47,8 KB und 128 KBit/s trainieren, die sich in 6 Ordnern befinden, und ich erhalte immer wieder diese Fehlermeldung, wenn ich versuche zu trainieren :
ValueError Traceback (most recent call last)
in ()
----> 1 hist = model.fit(train, epochs=4, validation_data=test)
1 frames
/usr/local/lib/python3.10/dist-packages/keras/engine/training.py in tf__train_function(iterator)
13 try:
14 do_return = True
---> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1160, in train_function *
return step_function(self, iterator)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1146, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1135, in run_step **
outputs = model.train_step(data)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 998, in train_step
return self.compute_metrics(x, y, y_pred, sample_weight)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1092, in compute_metrics
self.compiled_metrics.update_state(y, y_pred, sample_weight)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 577, in update_state
self.build(y_pred, y_true)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 483, in build
self._metrics = tf.__internal__.nest.map_structure_up_to(
File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 631, in _get_metric_objects
return [self._get_metric_object(m, y_t, y_p) for m in metrics]
File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 631, in
return [self._get_metric_object(m, y_t, y_p) for m in metrics]
File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 652, in _get_metric_object
y_t_rank = len(y_t.shape.as_list())
ValueError: as_list() is not defined on an unknown TensorShape.
DAS IST MEIN CODE und ich weiß nicht, was falsch ist. Ich hatte einen Fehler beim Laden des Sounds, aber jetzt funktioniert es, weil ich ein tf.Tensor-Objekt anstelle eines Strings erhalten habe. Jetzt weiß ich nicht warum Es funktioniert nicht. Ich verwende Tensoflow 2.10.0 und librosa:
Ich habe diesen Google Colab-Code und möchte ein Modell für MP3-Dateien mit einer Länge von 3 Sekunden, 44,10 kHz, 47,8 KB und 128 KBit/s trainieren, die sich in 6 Ordnern befinden, und ich erhalte immer wieder diese Fehlermeldung, wenn ich versuche zu trainieren : [code] ValueError Traceback (most recent call last) in () ----> 1 hist = model.fit(train, epochs=4, validation_data=test)
File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1160, in train_function * return step_function(self, iterator) File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1146, in step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1135, in run_step ** outputs = model.train_step(data) File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 998, in train_step return self.compute_metrics(x, y, y_pred, sample_weight) File "/usr/local/lib/python3.10/dist-packages/keras/engine/training.py", line 1092, in compute_metrics self.compiled_metrics.update_state(y, y_pred, sample_weight) File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 577, in update_state self.build(y_pred, y_true) File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 483, in build self._metrics = tf.__internal__.nest.map_structure_up_to( File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 631, in _get_metric_objects return [self._get_metric_object(m, y_t, y_p) for m in metrics] File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 631, in return [self._get_metric_object(m, y_t, y_p) for m in metrics] File "/usr/local/lib/python3.10/dist-packages/keras/engine/compile_utils.py", line 652, in _get_metric_object y_t_rank = len(y_t.shape.as_list())
ValueError: as_list() is not defined on an unknown TensorShape.
[/code] DAS IST MEIN CODE und ich weiß nicht, was falsch ist. Ich hatte einen Fehler beim Laden des Sounds, aber jetzt funktioniert es, weil ich ein tf.Tensor-Objekt anstelle eines Strings erhalten habe. Jetzt weiß ich nicht warum Es funktioniert nicht. Ich verwende Tensoflow 2.10.0 und librosa: [code]from google.colab import drive drive.mount('/content/drive')
!pip install librosa tensorflow==2.10.0
import tensorflow as tf import librosa import os import joblib import numpy as np from matplotlib import pyplot as plt
# Parametri globali BATCH_SIZE = 4 SAMPLE_RATE = 44100 # Fișierele tale sunt 44.1 kHz TARGET_SAMPLE_RATE = 16000 # Resamplează la 16 kHz DURATION = 3 # Durata fișierului audio în secunde N_MELS = 300 # Număr de benzi Mel N_FFT = 1024 # Număr de puncte FFT HOP_LENGTH = int((TARGET_SAMPLE_RATE * DURATION) / 1400) # Calculăm hop_length pentru a obține 1400 frame-uri
# Funcție pentru încărcarea și preprocesarea fișierelor MP3 def load_sound(filename):
file_path = filename if (isinstance(filename,tf.Tensor)): file_path = filename.numpy().decode('utf-8')
# Încărcăm fișierul audio MP3 cu Librosa print("F name: ", file_path) # Verifică că avem path-ul corect wav, sr = librosa.load(file_path, sr=TARGET_SAMPLE_RATE)
# Padding la o durată fixă de 3 secunde wav = librosa.util.fix_length(wav, size=TARGET_SAMPLE_RATE * DURATION)
return wav
# Funcție pentru crearea spectrogramelor Mel def create_spectrogram(file_path, label): # Încărcăm fișierul audio wav = load_sound(file_path)
train = data.take(2300) test = data.skip(2300).take(150)
for spectrogram, label in train.skip(2299).take(1): # Verifică un lot din train print("Spectrogram shape:", spectrogram.shape) print("Label shape:", label.shape)
# Modelul CNN from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, Dense, Flatten, MaxPooling2D
Ich versuche, RTDetrv2 zur Erkennung auf der Ziffer der Wassermesser zu trainieren. Ich verwende hier ein IPYNB-Dateiformular hier Aber wenn ich den Code durchlasse:
model =...
wie man ein Element unter der Taste Feiern hinzufügt, die die gleiche Anzahl von Elemente wie die Anzahl der Dateien in der ./ Blog enthält, wobei der Titel jeder -Anname die Datei aufnimmt. Tab?....