c814903929 2021-02-25 09:48 采纳率: 50%
浏览 116
已采纳

请问一下,Dataset数据应该怎么传入神经网络呢

from DataSet import get_data
import tensorflow as tf


path = 'C:\\Users\\CYH\\Desktop\\神经网络\\猫狗大战\\train'
c = 'Cat_Dog.csv'
img_Ext = '*.jpg'

images, labels = get_data(path, c, img_Ext)  # 得到的是图像的路径和对应的标签


def get_tensor(image_list, label_list):
    ims = []
    for image in image_list:
        x = tf.io.read_file(image)
        x = tf.image.decode_jpeg(x, channels=3)
        x = tf.image.resize(x, [32, 32])
        ims.append(x)
    img = tf.convert_to_tensor(ims)
    y = tf.convert_to_tensor(label_list)
    return img, y


X, Y = get_tensor(images, labels)
print(len(X))
db = tf.data.Dataset.from_tensor_slices((X, Y))
db = db.shuffle(1000).repeat(250).batch(50, drop_remainder=True)


model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.Conv2D(filters=64, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2))

model.add(tf.keras.layers.Conv2D(filters=128, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.Conv2D(filters=128, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2))

model.add(tf.keras.layers.Conv2D(filters=256, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.Conv2D(filters=256, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2))

model.add(tf.keras.layers.Conv2D(filters=512, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.Conv2D(filters=512, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2))

model.add(tf.keras.layers.Conv2D(filters=512, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.Conv2D(filters=512, kernel_size=[3, 3], activation='relu', padding='same'))
model.add(tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2))

model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(units=256, activation='relu'))
model.add(tf.keras.layers.Dense(units=64, activation='relu'))
model.add(tf.keras.layers.Dense(units=10, activation='sigmoid'))

model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss=tf.keras.losses.sparse_categorical_crossentropy,
              metrics=['accuracy'])
model.fit(db,
          epochs=5,
          steps_per_epoch=(len(X))//50)

model.summary()

想问一下,要给神经网络输入数据的话,应该怎么输入呢,我这样写确实可以训练但是看不到准确率

真的搞了很久了,求大佬帮帮忙,给红包也是可以的

  • 写回答

3条回答 默认 最新

  • 爱晚乏客游 2021-02-25 13:04
    关注

    建议debug,然后一行一行看内容,主要是一些数据内容,不确定的可以跳过,确定下你能确定是什么东西的内容,看下和你预期的有没有一样。要是不会debug,那就用print()慢慢尝试。比如测试下第行9有没有正确传入图片和标签,

    print(images[0])

    print(labels[0])

    看下第一张图片是否正确,然后对应看下的labels是否正确。

    慢慢学习,没有具体工程和报错信息,这么问是问不出怎么结果的,我们也不能确定你什么地方有问题,或者你能确定说你的代码第几行的什么值不是正确的,这样子才能确定你什么地方出问题了。

    如果都正确的话,你就应该是你显示的问题,有出结果但是你没有显示出来而已。

     

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用