我无法从keras运行简单的数据生成器代码
import os
import keras as K
from keras.preprocessing.image import ImageDataGenerator
def save_images_from_generator(maximal_nb_of_images, generator):
nb_of_images_processed = 0
for x, _ in generator:
nb_of_images += x.shape[0]
if nb_of_images <= maximal_nb_of_images:
for image_nb in range(x.shape[0]):
your_custom_save(x[image_nb]) # your custom function for saving images
else:
break
Gen=ImageDataGenerator(featurewise_center=True,
samplewise_center=False,
featurewise_std_normalization=False,
samplewise_std_normalization=False,
zca_whitening=True,
rotation_range=90,
width_shift_range=0.2,
height_shift_range=0.1,
shear_range=0.5,
zoom_range=0.2,
channel_shift_range=0.1,
fill_mode='nearest',
cval=0.,
horizontal_flip=True,
vertical_flip=True,
rescale=None,
preprocessing_function=None)
if __name__ == '__main__':
save_images_from_generator(40,Gen.flow_from_directory('C:\\Users\\aanilil\\PycharmProjects\\untitled\\images_input', target_size=(150, 150),class_mode=None,save_prefix='augm',save_to_dir='C:\\Users\\aanilil\\PycharmProjects\\untitled\\im_output\\'))
Run Code Online (Sandbox Code Playgroud)
Using TensorFlow backend.
Found 0 images belonging to 0 classes.
Found 0 …Run Code Online (Sandbox Code Playgroud) 我已经使用Debug标志编译了caffe.现在我跑的时候
./examples/mnist/train_lenet.sh
Run Code Online (Sandbox Code Playgroud)
我得到输出
I0112 22:50:49.680357 114020 data_layer.cpp:103] Read time: 0.095 ms.
I0112 22:50:49.680376 114020 data_layer.cpp:104] Transform time: 0.821 ms.
I0112 22:50:49.681077 113921 solver.cpp:409] Test net output #0: accuracy = 0.9902
I0112 22:50:49.681115 113921 solver.cpp:409] Test net output #1: loss = 0.0292544 (* 1 = 0.0292544 loss)
I0112 22:50:49.681125 113921 solver.cpp:326] Optimization Done.
I0112 22:50:49.681133 113921 caffe.cpp:215] Optimization Done.
I0112 22:50:49.681915 114020 data_layer.cpp:102] Prefetch batch: 1 ms.
I0112 22:50:49.681929 114020 data_layer.cpp:103] Read time: 0.095 ms.
I0112 22:50:49.681948 114020 data_layer.cpp:104] Transform time: …Run Code Online (Sandbox Code Playgroud) import tensorflow as tf
import numpy as np
import scipy as sci
import cv2
import input_data_conv
# Parameters
learning_rate = 0.001
training_iters = 200000
batch_size = 64
display_step = 20
n_classes=101 # number of classes
#Input data and classes
global train_data,train_class,test_data,test_classs,train_i,test_i
test_i, train_i = 0,0
train_data=input_data_conv.train_list_file
train_class=input_data_conv.train_single_classes
test_data=input_data_conv.test_single_frames
test_classs=input_data_conv.test_single_classes
# Network Parameters
n_input = [227, 227, 3 ]# MNIST data input (img shape: 227*227*3)
dropout = 0.5 # Dropout, probability to keep units
# tf Graph input
x = tf.placeholder(tf.float32, …Run Code Online (Sandbox Code Playgroud) 我在使用caffe从图像生成HDF5数据文件时遇到了这个问题.
所述caffe.io.load_image载荷图像转换成在归一化范围0-1 varible.
调整大小,但所有值都img转换为零
img = caffe.io.load_image( patht_to_file )
print img.shape
print img.dtype
img = caffe.io.resize( img, (3,SIZE, SIZE) ) #resizes but all values in img converted to zero
print img.shape
print img.dtype
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
(240, 320, 3)
float32
(3, 58, 58)
float64
Run Code Online (Sandbox Code Playgroud)
img对于某些值,将值更改为全0,任何人都可以帮我修复此问题.
我想同样的float32改变resize命令的顺序给出正确的输出
给var真正的非零值,img
但顺序和类型不是我需要的
img = caffe.io.resize( img, (SIZE, SIZE, 3) ) # Gives real non zero values to var img
print img.shape
print img.dtype
Run Code Online (Sandbox Code Playgroud)
产量
(240, 320, 3)
float32 …Run Code Online (Sandbox Code Playgroud) 我想实现一个小型程序,该程序将随机翻转并引入RGB抖动/轻微值变化。
并尽可能将抖动/轻微值更改为彩色图像中3层中的2层。
import cv2
import random
probofflip=0.5
probofRGBjit= 0.6
img=cv2.imread('path/to/img.png',1)
if (random.uniform(0,1)>1-probofflip):
img= cv2.flip(img,1)
if if (random.uniform(0,1)>1-probofRGBjit):
#function to jitter the RGB layers
#do something with resultant image.
Run Code Online (Sandbox Code Playgroud)