我安装了Ancaconda3和Tensorflow.当我尝试在python shell中导入Tensorflow时,我收到以下错误:
ModuleNotFoundError:没有名为'numpy.core._multiarray_umath'的模块ImportError:numpy.core.multiarray无法导入
上述异常是以下异常的直接原因:
回溯(最近一次调用最后一次):文件"",第980行,在_find_and_load中SystemError:返回错误集导入的结果ImportError:numpy.core._multiarray_umath无法导入ImportError:numpy.core.umath导入失败
我不确定问题是什么,因为我的系统上安装了numpy并且可以在python中成功导入.我使用的是Windows10.
提前致谢.
我被以下两者之间的明显不一致所困扰:
keras.preprocessing,它们是PIL函数的包装器tf.image.我正在为Keras的计算机视觉任务培训深度学习模型(实际上,有tf.keras,但这并不重要).然后,我使用TF Serving为模型提供服务,这需要我将图像作为编码的字节串发送到模型,在tf.image.decode_png通过模型图之前使用它们进行解码.
我调整图像大小时会出现问题.用双线性内插(或任何其它方法)改变给出具有PIL不同的结果与用tf.image,到这样的程度使得由模型分类的变化取决于我使用的功能.
下面的代码提供了一个可重现的示例.
import numpy as np
from PIL import Image
from keras.preprocessing.image import load_img, img_to_array
import tensorflow as tf
# Generate an 'image' with numpy, save as png
np.random.seed(42)
image = np.random.randint(0, 255, size=(256, 256, 3)).astype(np.uint8)
Image.fromarray(image).convert("RGB").save('my_image.png')
Run Code Online (Sandbox Code Playgroud)
现在,让我们以两种方式加载图像.首先从Keras的PIL包装,作为模型的训练过程中,随后被编码成一个二进制字符串,并用TensorFlow解码功能,如在我的模型服务器.
# Using Keras PIL wrappers
keras_image = img_to_array(load_img('./my_image.png'))
# Using TF functionalities
with tf.Session() as sess:
with open('./my_image.png', 'rb') as f:
tf_image_ = tf.image.decode_png(f.read())
tf_image …Run Code Online (Sandbox Code Playgroud) python python-imaging-library deep-learning keras tensorflow
关于如何使用fbprophet库导出年度季节性趋势的任何想法?该plot_components()函数绘制趋势、每年和每周。我只想获得每年的值。
我的模型定义如下:
def build(data):
model = Sequential()
model.add(Cropping2D(cropping=((79, 145), (50, 250)), input_shape=
(160,320,3)))
model.add(Lambda(lambda x: x/127.5 - 1.0))
model.add(Conv2D(24, (2, 2), padding='same'))
model.add(ELU())
model.add(Conv2D(36, (2, 2), padding='same'))
model.add(ELU())
model.add(Conv2D(48, (2, 2), padding='same'))
model.add(ELU())
# Add a flatten layer
model.add(Flatten())
model.summary()
model.add(Dense(100))
model.add(ELU())
model.add(Dense(50))
model.add(ELU())
model.add(Dense(10))
model.add(ELU())
model.add(Dense(1))
return model
Run Code Online (Sandbox Code Playgroud)
得到此错误:
ValueError:
Dense应定义输入的最后一个维度.找到了None.
我跑了model.summary(),得到了以下输出
Layer (type) Output Shape Param #
=================================================================
cropping2d_15 (Cropping2D) (None, 0, 20, 3) 0
_________________________________________________________________
lambda_23 (Lambda) (None, 0, 20, 3) 0
_________________________________________________________________ …Run Code Online (Sandbox Code Playgroud) 我正在使用一个包含 3000 多个图像的数据集进行迁移学习。这是代码的一部分:
import glob
import numpy as np
import os
import shutil
np.random.seed(42)
files = glob.glob('train/*')
cat_files = [fn for fn in files if 'cat' in fn]
dog_files = [fn for fn in files if 'dog' in fn]
len(cat_files), len(dog_files)
cat_train = np.random.choice(cat_files, size=1500, replace=False)
Run Code Online (Sandbox Code Playgroud) I have a pandas dataframe containing filenames of positive and negative examples as below
img1 img2 y
001.jpg 002.jpg 1
003.jpg 004.jpg 0
003.jpg 002.jpg 1
Run Code Online (Sandbox Code Playgroud)
I want to train my Siamese network using Keras ImageDataGenerator and flow_from_dataframe. How do I set up my training so that the code inputs 2 images with 1 label simultaneously.
Below is the code for my model
def siamese_model(input_shape) :
left = Input(input_shape)
right = Input(input_shape)
model = Sequential()
model.add(Conv2D(32, (3,3), activation='relu', input_shape=input_shape))
model.add(BatchNormalization()) …Run Code Online (Sandbox Code Playgroud) machine-learning computer-vision deep-learning conv-neural-network keras
我正在尝试编写区分猫和狗的CNN。我将标签设置为dog:0和cat:1,因此我希望CNN如果是狗则输出0,如果是猫则输出1。但是,它反而相反(给它的猫是0,给狗1则是0)。请查看我的代码,看看我哪里出错了。谢谢
我目前正在使用jupyter笔记本使用python 3.6.8(内部的所有代码都是我从jupyter笔记本中复制粘贴代码的不同部分)
import os
import cv2
from random import shuffle
import numpy as np
from keras.preprocessing.image import ImageDataGenerator, load_img, img_to_array
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense, Activation, Conv2D, MaxPooling2D, Flatten, Dropout, BatchNormalization
from keras.callbacks import EarlyStopping, ReduceLROnPlateau
%matplotlib inline
train_dir = r'C:\Users\tohho\Desktop\Python pypipapp\Machine Learning\data\PetImages\train'
test_dir = r'C:\Users\tohho\Desktop\Python pypipapp\Machine Learning\data\PetImages\test1'
IMG_WIDTH = 100
IMG_HEIGHT = 100
batch_size = 32
######## THIS IS WHERE I LABELLED 0 …Run Code Online (Sandbox Code Playgroud) 我有一个包含两列的pandas数据帧,一列有图像路径,另一列有字符串类标签.
我还编写了以下函数,这些函数从数据框加载图像,重新规范化它们并将类标签转换为单热矢量.
def prepare_data(df):
data_X, data_y = df.values[:,0], df.values[:,1]
# Load images
data_X = np.array([np.array(imread(fname)) for fname in data_X])
# Normalize input
data_X = data_X / 255 - 0.5
# Prepare labels
data_y = np.array([label2int[label] for label in data_y])
data_y = to_categorical(data_y)
return data_X, data_y
Run Code Online (Sandbox Code Playgroud)
我想将此数据帧提供给Keras CNN,但整个数据集太大而无法立即加载到内存中.
本网站的其他答案告诉我,为此我应该使用Keras ImageDataGenerator,但说实话,我不明白如何从文档中做到这一点.
将延迟加载批次中的数据提供给模型的最简单方法是什么?
如果它是一个ImageDataGenerator,我如何创建一个ImageDataGenerator,它接受初始化Dataframe并通过我的函数传递批次来创建适当的numpy数组?我如何使用ImageDataGenerator拟合模型?
我使用 TensorFlow 后端在 Keras 中实现了一个图像分类器。对于具有两个输出类的数据集,我检查了预测标签,如下所示:
if result[0][0] == 1:
prediction ='adathodai'
else:
prediction ='thamarathtai'Run Code Online (Sandbox Code Playgroud)
完整代码链接: 这里
通过三个类,我得到[[0. 0. 1.]]了结果输出。如何以 if else 格式检查两个以上类别的预测标签?
调用包含或不包含模型顶层的 VGG16 模型有什么区别?我想知道,为什么在不包括顶层的情况下调用模型时,模型摘要中没有显示层的输入参数。我通过以下两种方式使用了 VGG16 模型:
from keras.applications import vgg16
model = vgg16.VGG16(weights='imagenet', include_top=False)
print(model.summary)
Run Code Online (Sandbox Code Playgroud)
模型中层的形状不显示任何输入即(无,无,无,64),请参见下文
Layer (type) Output Shape Param
===================================================================
block1_conv1 (Conv2D) (None, None, None, 64) 1792
block1_conv2 (Conv2D) (None, None, None, 64) 36928
block1_pool (MaxPooling2D) (None, None, None, 64) 0
Run Code Online (Sandbox Code Playgroud)
但是,以下代码返回输入参数
from keras.applications import vgg16
model = vgg16.VGG16()
print(model.summary)
Run Code Online (Sandbox Code Playgroud)
层的形状,在这种情况下,返回输入参数
Layer (type) Output Shape Param
==================================================================
block1_conv1 (Conv2D) (None, 224, 224, 64) 1792
block1_conv2 (Conv2D) (None, 224, 224, 64) 36928
block1_pool (MaxPooling2D) (None, 112, 112, 64) 0
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么会这样,请发表评论
keras ×7
python ×5
tensorflow ×5
python-3.x ×3
numpy ×2
pandas ×2
anaconda ×1
keras-2 ×1
keras-layer ×1
time-series ×1