- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是一名初学者,正在使用 keras_flow_from_dataframe
类训练有关糖尿病视网膜病变的图像数据集。但是我的模型一直欠拟合。所以我尝试预处理,通过使用 OpenCV 的自适应阈值实现编写一个自定义预处理函数传递到我的图像数据生成器类中。当我在 Keras 之外使用它时,该函数运行良好,但是当我将它添加到我的图像数据生成器类并适合我的模型时,它返回一个类型错误,提示 bad argument type for built-in operation
在我的第一个纪元开始之前。
这是预处理代码:
def preprocess(im):
im = cv2.imread(im, 1)
im= cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
im=cv2.resize(im, (300,300))
im.resize(300, 300, 1)
block_size = 73
constant = 2
# ADAPTIVE GAUSSIAN THRESHOLDING
thr2 = cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, block_size, constant)
return thr2
当我使用我的数据框中的图像对其进行测试时,它在 Keras 之外运行良好,但是当我将它添加到我的图像数据生成器类时,它会抛出错误。
train_datagen = ImageDataGenerator(
rotation_range=30,
width_shift_range=0.4,
height_shift_range=0.4,
shear_range=0.3,
zoom_range=0.3,
horizontal_flip = True,
fill_mode='nearest',
preprocessing_function = preprocess)
valid_datagen = ImageDataGenerator(preprocessing_function = preprocess)
然后我从数据框中加载我的数据集:
from keras.preprocessing.image import ImageDataGenerator
traingen = train_datagen.flow_from_dataframe(x_train, x_col='path', y_col='level',class_mode='other',
target_size=(300,300), color_mode='grayscale', batch_size=16)
validgen = valid_datagen.flow_from_dataframe(valid, x_col='path', y_col='level',class_mode='other',
target_size=(300,300), color_mode='grayscale', batch_size=16)
然后我使用 model.fit_generator
拟合模型,然后抛出类型错误:内置操作的错误参数类型
。
TypeError Traceback (most recent call last)
<ipython-input-126-30ceb84a2574> in <module>()
2
3 history = model.fit_generator(traingen, validation_data = validgen, epochs=100, steps_per_epoch=10,
----> 4 validation_steps=10, verbose=1, callbacks=[lr_reduction])
5
6
~/var/python/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/var/python/lib/python3.6/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
1416 use_multiprocessing=use_multiprocessing,
1417 shuffle=shuffle,
-> 1418 initial_epoch=initial_epoch)
1419
1420 @interfaces.legacy_generator_methods_support
~/var/python/lib/python3.6/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
179 batch_index = 0
180 while steps_done < steps_per_epoch:
--> 181 generator_output = next(output_generator)
182
183 if not hasattr(generator_output, '__len__'):
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
599 except Exception as e:
600 self.stop()
--> 601 six.reraise(*sys.exc_info())
602
603
~/var/python/lib/python3.6/site-packages/six.py in reraise(tp, value, tb)
691 if value.__traceback__ is not tb:
692 raise value.with_traceback(tb)
--> 693 raise value
694 finally:
695 value = None
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
593 try:
594 while self.is_running():
--> 595 inputs = self.queue.get(block=True).get()
596 self.queue.task_done()
597 if inputs is not None:
~/var/python/lib/python3.6/multiprocessing/pool.py in get(self, timeout)
642 return self._value
643 else:
--> 644 raise self._value
645
646 def _set(self, i, obj):
~/var/python/lib/python3.6/multiprocessing/pool.py in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
117 job, i, func, args, kwds = task
118 try:
--> 119 result = (True, func(*args, **kwds))
120 except Exception as e:
121 if wrap_exception and func is not _helper_reraises_exception:
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get_index(uid, i)
399 The value at index `i`.
400 """
--> 401 return _SHARED_SEQUENCES[uid][i]
402
403
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in __getitem__(self, idx)
63 index_array = self.index_array[self.batch_size * idx:
64 self.batch_size * (idx + 1)]
---> 65 return self._get_batches_of_transformed_samples(index_array)
66
67 def __len__(self):
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in _get_batches_of_transformed_samples(self, index_array)
233 params = self.image_data_generator.get_random_transform(x.shape)
234 x = self.image_data_generator.apply_transform(x, params)
--> 235 x = self.image_data_generator.standardize(x)
236 batch_x[i] = x
237 # optionally save augmented images to disk for debugging purposes
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/image_data_generator.py in standardize(self, x)
695 """
696 if self.preprocessing_function:
--> 697 x = self.preprocessing_function(x)
698 if self.rescale:
699 x *= self.rescale
<ipython-input-112-7bddefa5e731> in preprocess(im)
1 def preprocess(im):
----> 2 im = cv2.imread(im, 1)
3 im= cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
4 im=cv2.resize(im, (300,300))
5 im.resize(300, 300, 1)
TypeError: bad argument type for built-in operation
TypeError Traceback (most recent call last)
<ipython-input-126-30ceb84a2574> in <module>()
2
3 history = model.fit_generator(traingen, validation_data = validgen, epochs=100, steps_per_epoch=10,
----> 4 validation_steps=10, verbose=1, callbacks=[lr_reduction])
5
6
~/var/python/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/var/python/lib/python3.6/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
1416 use_multiprocessing=use_multiprocessing,
1417 shuffle=shuffle,
-> 1418 initial_epoch=initial_epoch)
1419
1420 @interfaces.legacy_generator_methods_support
~/var/python/lib/python3.6/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
179 batch_index = 0
180 while steps_done < steps_per_epoch:
--> 181 generator_output = next(output_generator)
182
183 if not hasattr(generator_output, '__len__'):
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
599 except Exception as e:
600 self.stop()
--> 601 six.reraise(*sys.exc_info())
602
603
~/var/python/lib/python3.6/site-packages/six.py in reraise(tp, value, tb)
691 if value.__traceback__ is not tb:
692 raise value.with_traceback(tb)
--> 693 raise value
694 finally:
695 value = None
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
593 try:
594 while self.is_running():
--> 595 inputs = self.queue.get(block=True).get()
596 self.queue.task_done()
597 if inputs is not None:
~/var/python/lib/python3.6/multiprocessing/pool.py in get(self, timeout)
642 return self._value
643 else:
--> 644 raise self._value
645
646 def _set(self, i, obj):
~/var/python/lib/python3.6/multiprocessing/pool.py in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
117 job, i, func, args, kwds = task
118 try:
--> 119 result = (True, func(*args, **kwds))
120 except Exception as e:
121 if wrap_exception and func is not _helper_reraises_exception:
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get_index(uid, i)
399 The value at index `i`.
400 """
--> 401 return _SHARED_SEQUENCES[uid][i]
402
403
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in __getitem__(self, idx)
63 index_array = self.index_array[self.batch_size * idx:
64 self.batch_size * (idx + 1)]
---> 65 return self._get_batches_of_transformed_samples(index_array)
66
67 def __len__(self):
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in _get_batches_of_transformed_samples(self, index_array)
233 params = self.image_data_generator.get_random_transform(x.shape)
234 x = self.image_data_generator.apply_transform(x, params)
--> 235 x = self.image_data_generator.standardize(x)
236 batch_x[i] = x
237 # optionally save augmented images to disk for debugging purposes
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/image_data_generator.py in standardize(self, x)
695 """
696 if self.preprocessing_function:
--> 697 x = self.preprocessing_function(x)
698 if self.rescale:
699 x *= self.rescale
<ipython-input-112-7bddefa5e731> in preprocess(im)
1 def preprocess(im):
----> 2 im = cv2.imread(im, 1)
3 im= cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
4 im=cv2.resize(im, (300,300))
5 im.resize(300, 300, 1)
TypeError: bad argument type for built-in operation
TypeError Traceback (most recent call last)
<ipython-input-126-30ceb84a2574> in <module>()
2
3 history = model.fit_generator(traingen, validation_data = validgen, epochs=100, steps_per_epoch=10,
----> 4 validation_steps=10, verbose=1, callbacks=[lr_reduction])
5
6
~/var/python/lib/python3.6/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~/var/python/lib/python3.6/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
1416 use_multiprocessing=use_multiprocessing,
1417 shuffle=shuffle,
-> 1418 initial_epoch=initial_epoch)
1419
1420 @interfaces.legacy_generator_methods_support
~/var/python/lib/python3.6/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
179 batch_index = 0
180 while steps_done < steps_per_epoch:
--> 181 generator_output = next(output_generator)
182
183 if not hasattr(generator_output, '__len__'):
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
599 except Exception as e:
600 self.stop()
--> 601 six.reraise(*sys.exc_info())
602
603
~/var/python/lib/python3.6/site-packages/six.py in reraise(tp, value, tb)
691 if value.__traceback__ is not tb:
692 raise value.with_traceback(tb)
--> 693 raise value
694 finally:
695 value = None
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get(self)
593 try:
594 while self.is_running():
--> 595 inputs = self.queue.get(block=True).get()
596 self.queue.task_done()
597 if inputs is not None:
~/var/python/lib/python3.6/multiprocessing/pool.py in get(self, timeout)
642 return self._value
643 else:
--> 644 raise self._value
645
646 def _set(self, i, obj):
~/var/python/lib/python3.6/multiprocessing/pool.py in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
117 job, i, func, args, kwds = task
118 try:
--> 119 result = (True, func(*args, **kwds))
120 except Exception as e:
121 if wrap_exception and func is not _helper_reraises_exception:
~/var/python/lib/python3.6/site-packages/keras/utils/data_utils.py in get_index(uid, i)
399 The value at index `i`.
400 """
--> 401 return _SHARED_SEQUENCES[uid][i]
402
403
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in __getitem__(self, idx)
63 index_array = self.index_array[self.batch_size * idx:
64 self.batch_size * (idx + 1)]
---> 65 return self._get_batches_of_transformed_samples(index_array)
66
67 def __len__(self):
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py in _get_batches_of_transformed_samples(self, index_array)
233 params = self.image_data_generator.get_random_transform(x.shape)
234 x = self.image_data_generator.apply_transform(x, params)
--> 235 x = self.image_data_generator.standardize(x)
236 batch_x[i] = x
237 # optionally save augmented images to disk for debugging purposes
~/var/python/lib/python3.6/site-packages/keras_preprocessing/image/image_data_generator.py in standardize(self, x)
695 """
696 if self.preprocessing_function:
--> 697 x = self.preprocessing_function(x)
698 if self.rescale:
699 x *= self.rescale
<ipython-input-112-7bddefa5e731> in preprocess(im)
1 def preprocess(im):
----> 2 im = cv2.imread(im, 1)
3 im= cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
4 im=cv2.resize(im, (300,300))
5 im.resize(300, 300, 1)
TypeError: bad argument type for built-in operation
我也考虑过预处理图像并将它们保存到一个文件夹中,然后我将它们从该文件夹加载到一个数据框中,但这在计算上非常昂贵且耗时。
最佳答案
我遇到了像你这样的问题,我的老师通过指向 tf preprocess_function 的文档帮助我,它说 preprocess_function
参数是一个图像,你可以在 this 上阅读更多信息.
这就是它在 cv2.imread(image)
处给您错误的原因。您应该删除该行,因为 im
是生成器提供给您的图像。不需要加载它,因为它已经加载了
我的一个很好,希望你的也很好。
关于python - 在 Keras 中编写用于图像预处理的自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244001/
好的,所以我编辑了以下... 只需将以下内容放入我的 custom.css #rt-utility .rt-block {CODE HERE} 但是当我尝试改变... 与 #rt-sideslid
在表格 View 中,我有一个自定义单元格(在界面生成器中高度为 500)。在该单元格中,我有一个 Collection View ,我按 (10,10,10,10) 固定到边缘。但是在 tablev
对于我的无能,我很抱歉,但总的来说,我对 Cocoa、Swift 和面向对象编程还很陌生。我的主要来源是《Cocoa Programming for OS X》(第 5 版),以及 Apple 的充满
我正在使用 meta-tegra 为我的 NVIDIA Jetson Nano 构建自定义图像。我需要 PyTorch,但没有它的配方。我在设备上构建了 PyTorch,并将其打包到设备上的轮子中。现
在 jquery 中使用 $.POST 和 $.GET 时,有没有办法将自定义变量添加到 URL 并发送它们?我尝试了以下方法: $.ajax({type:"POST", url:"file.php?
Traefik 已经默认实现了很多中间件,可以满足大部分我们日常的需求,但是在实际工作中,用户仍然还是有自定义中间件的需求,为解决这个问题,官方推出了一个 Traefik Pilot[1] 的功
我想让我的 CustomTextInputLayout 将 Widget.MaterialComponents.TextInputLayout.OutlinedBox 作为默认样式,无需在 XML 中
我在 ~/.emacs 中有以下自定义函数: (defun xi-rgrep (term) (grep-compute-defaults) (interactive "sSearch Te
我有下表: 考虑到每个月的权重,我的目标是在 5 个月内分散 10,000 个单位。与 10,000 相邻的行是我最好的尝试(我在这上面花了几个小时)。黄色是我所追求的。 我试图用来计算的逻辑如下:计
我的表单中有一个字段,它是文件类型。当用户点击保存图标时,我想自然地将文件上传到服务器并将文件名保存在数据库中。我尝试通过回显文件名来测试它,但它似乎不起作用。另外,如何将文件名添加到数据库中?是在模
我有一个 python 脚本来发送电子邮件,它工作得很好,但问题是当我检查我的电子邮件收件箱时。 我希望该用户名是自定义用户名,而不是整个电子邮件地址。 最佳答案 发件人地址应该使用的格式是: You
我想减小 ggcorrplot 中标记的大小,并减少文本和绘图之间的空间。 library(ggcorrplot) data(mtcars) corr <- round(cor(mtcars), 1)
GTK+ noob 问题在这里: 是否可以自定义 GtkFileChooserButton 或 GtkFileChooserDialog 以删除“位置”部分(左侧)和顶部的“位置”输入框? 我实际上要
我正在尝试在主页上使用 ajax 在 magento 中使用 ajax 显示流行的产品列表,我可以为 5 或“N”个产品执行此操作,但我想要的是将分页工具栏与结果集一起添加. 这是我添加的以显示流行产
我正在尝试使用 PasswordResetForm 内置函数。 由于我想要自定义表单字段,因此我编写了自己的表单: class FpasswordForm(PasswordResetForm):
据我了解,新的 Angular 7 提供了拖放功能。我搜索了有关 DnD 的 Tree 组件,但没有找到与树相关的内容。 我在 Stackblitz 上找到的一个工作示例.对比drag'ndrop功能
我必须开发一个自定义选项卡控件并决定使用 WPF/XAML 创建它,因为我无论如何都打算学习它。完成后应该是这样的: 到目前为止,我取得了很好的进展,但还有两个问题: 只有第一个/最后一个标签项应该有
我要定制xtable用于导出到 LaTeX。我知道有些问题是关于 xtable在这里,但我找不到我要找的具体东西。 以下是我的表的外观示例: my.table <- data.frame(Specif
用ejs在这里显示日期 它给我结果 Tue Feb 02 2016 16:02:24 GMT+0530 (IST) 但是我需要表现为 19th January, 2016 如何在ejs中执行此操作?
我想问在 JavaFX 中使用自定义对象制作 ListView 的最佳方法,我想要一个每个项目如下所示的列表: 我搜了一下,发现大部分人都是用细胞工厂的方法来做的。有没有其他办法?例如使用客户 fxm
我是一名优秀的程序员,十分优秀!