我正在尝试使用 Tensorflow 2.5.0 在 MobileNetV3-Small 上进行迁移学习来预测狗品种(133 个类别),并且由于它在 ImageNet 数据集(1000 个类别)上获得了合理的准确性,我认为它应该没有问题适应我的问题。
我尝试了多种训练变化,最近取得了突破,但现在我的训练停滞在大约 60% 的验证准确度,验证损失略有波动(下面是训练和验证的准确度和损失曲线)。
我尝试ReduceLROnPlateau在下面的第三张图中使用,但这对改善问题没有帮助。谁能建议我如何改进培训?
from tensorflow.keras.models import Model
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.callbacks import ModelCheckpoint, ReduceLROnPlateau
from tensorflow.keras.layers import GlobalMaxPooling2D, Dense, Dropout, BatchNormalization
from tensorflow.keras.applications import MobileNetV3Large, MobileNetV3Small
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True # needed for working with this dataset
# define generators
train_datagen = ImageDataGenerator(vertical_flip=True, horizontal_flip=True,
rescale=1.0/255, brightness_range=[0.5, 1.5],
zoom_range=[0.5, 1.5], rotation_range=90)
test_datagen = ImageDataGenerator(rescale=1.0/255)
train_gen = train_datagen.flow_from_directory(train_dir, target_size=(224,224),
batch_size=32, …Run Code Online (Sandbox Code Playgroud) 我正在尝试打开一个 MATLAB 文件,它是一个“结构数组”。使用 scipy.io.loadmat 打开文件时,出现以下错误:
File "<ipython-input-15-0951b80baef6>", line 1, in <module>
data = sio.loadmat('C:\Users\Martin\Desktop\Biophysics PhD\Results\180321_agonists_spreading_conditions\180321_agonists_spreading_conditions\Compare_ADPdexBSA.mat')
File "C:\Users\Martin\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", line 141, in loadmat
MR, file_opened = mat_reader_factory(file_name, appendmat, **kwargs)
File "C:\Users\Martin\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", line 64, in mat_reader_factory
byte_stream, file_opened = _open_file(file_name, appendmat)
TypeError: 'NoneType' object is not iterable
Run Code Online (Sandbox Code Playgroud)
对编程来说仍然足够新,所以我不确定如何解释错误。非常感谢您能给我的任何帮助
我已经制作了一个用于从网站下载多个文件的 python 脚本,我想在 Tkinter 中制作一个进度条,当每个文件保存到计算机时,它应该更新。我看过一些使用 OOP 的例子,但我仍然在掌握 OOP,希望有一天能理解为什么人们在 Tkinter 中制作 GUI 应用程序时使用 OOP。也许好心的用户可以为我澄清这一点。
我的代码显示在这里:
from Tkinter import *
import ttk
import numpy as np
global files
files = np.arange(1,1000000)
def loading():
global downloaded
downloaded = 0
for i in array:
downloaded +=1
root = Tk()
progress= ttk.Progressbar(root, orient = 'horizontal', maximum = 1000000, value = downloaded, mode = 'determinate')
progress.pack(fill=BOTH)
start = ttk.Button(root,text='start',command=loading)
start.pack(fill=BOTH)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我创建了一个代表文件数量的变量(我并不是真的想下载 1000000 个文件,这只是一些让进度条工作的代码)。
当点击开始按钮时,代码应该运行加载功能,但它没有。我非常感谢您在这个问题上能给我的任何帮助 =)
我有一个 27 列的数据框(26 列是数字变量,第 27 列告诉我每行与哪个组关联)。总共有 7 个组,我试图将 Kruskal-Wallis 检验应用于每个变量,按组划分,以确定是否存在显着差异。
我试过了:
df.groupby(['treatment']).apply(kruskal)
Run Code Online (Sandbox Code Playgroud)
这会引发错误“在 stats.kruskal() 中需要至少 2 组两组”。
我的其他尝试也没有产生输出。我将定期使用更大的数据集进行类似的分析。有人可以帮助我理解这个问题以及如何解决它吗?
到目前为止,我一直在 pandas 的数值数据集上练习神经网络,但现在我需要创建一个模型,该模型将图像作为输入并输出该图像的二进制掩码。
我的训练数据为形状为 (602, 2048, 2048, 1) 的 numpy 数组。1 个通道 602 张尺寸为 2048x2048 的图像。输出掩码数组具有相同的维度。
我不明白的是如何定义第一层或如何正确地将数据输入模型。我非常感谢你在这个问题上的帮助
python ×4
keras ×2
apply ×1
io ×1
matlab ×1
mobilenet ×1
oop ×1
pandas ×1
progress-bar ×1
python-3.x ×1
scipy ×1
tensorflow ×1
tkinter ×1