python - 从文件路径中删除目录
问题描述
我使用 Python 和 Keras 制作了一个卷积神经网络。我正在测试集上测试我的模型,每个类有随机数量的图像(1 个文件夹包含 x 数量的图像)。我能够获得一个数据框,其中显示图像和目录的文件名以及预测。我想从文件名中删除目录。它显示随机的 350 张图像/dogs1.tif,我希望它只显示 dog1.tif。
#import my model
new_model = tf.keras.models.load_model('model folder')
#upload my test data
train_datagen = ImageDataGenerator(rescale=1./255)
test_batches = train_datagen.flow_from_directory(
'folder containing random images',
target_size=(224, 224),
batch_size=10,
classes = None,
class_mode = None,
shuffle = False)
#my prediction
predictions = new_model.predict(test_batches, steps=35, verbose=0)
#rounding my predctions
rounded_predictions = np.argmax(predictions, axis = -1)
#converting one hot encoded labels to categorical labels
labels =["dog","cat","horse"]
names = [0,1,2]
labels_name = dict(zip(names, labels))
#joining them together
labels_name = dict((v,k) for k,v in labels_name.items())
predictions = [labels[k] for k in rounded_predictions]
#getting files names for the images
filenames= test_batches.filenames
#creating the dataframe
results=pd.DataFrame({"file":filenames,"pr":predictions})
解决方案
#getting files names for the images
filenames= test_batches.filenames
filename_extr=[]
for i in filenames:
filename_extr.append(os.path.basename(i))
#creating the dataframe
results=pd.DataFrame({"file":filename_extr,"pr":predictions})
应该这样做。(这(使用 for 循环)只是一种方法。当然还有很多其他方法。)
推荐阅读
- selenium - 同时使用 Selenium 运行多个 Chromedriver 浏览器窗口:需要多少 vCPU 和多少 GB RAM?
- javascript - 如何从 Node.js 服务器向客户端发送结合随机数的图像
- ios - 将 MLMultiArray 转换为 C#/.Net 等价物?Xamarin IOS
- c# - System.ArgumentOutOfRangeException:容量小于当前大小。(参数“值”)
- r - 如何使用 openxlsx 修改 Excel 中的现有工作表(具有相同的布局)?
- python - 在熊猫中拆分对象 dtype 列
- numpy - Numba 是否支持内置 python 函数,例如`setitem`
- .net - 恢复项目时出现 Dotnet maui 问题
- python - python中的网络抓取-从产品网格中提取absolute_links或href
- node.js - 如何跟踪用户是否已经看过帖子?