使用seed_the_data工具创建和管理库存数据库

需积分: 5 0 下载量 125 浏览量 更新于2024-11-17 收藏 6KB ZIP 举报
资源摘要信息:"seed_the_data" 知识点: 1. 数据库设计:本文描述了一个数据库设计的过程,包括建立库存数据库以及两个相关表格:产品(Products)和存货(Inventory)。数据库设计是信息系统开发中的重要环节,它涉及到数据的组织、存储以及如何高效地进行数据访问。 2. 表格结构定义: - 产品表(Products)包含的字段有: - id序列:通常用作唯一标识符,可能采用自增主键,以便于每条记录的区分和索引。 - 名称(TEXT类型):用来存储产品名称的文字信息。 - 说明(TEXT类型):提供产品详细描述的文本信息。 - 价格(DECIMAL(2)类型):用于存储产品的价格,DECIMAL类型适合存储精确的小数点数值,这里假设价格有两位小数。 - createdDATETIME:记录产品被创建的时间戳。 - updatedDATETIME:记录产品最后更新的时间戳,便于追踪数据变更历史。 - 存货表(Inventory)包含的字段有: - ID:库存项的唯一标识符,通常使用自增主键。 - 数量(整数类型):存储库存中某个产品的数量。 - product_id(FK,即外键):关联产品表的ID字段,用于标识存货项对应的特定产品。 - 命令表(Commands)包含的字段有: - ID:用于唯一标识命令记录。 - 名称(TEXT类型):记录执行的命令名称。 - product_id(FK,即外键):表示该命令所涉及的产品ID,用于关联产品表。 - 数量(整数类型):记录执行命令时所涉及的产品数量。 3. 数据库关系: - 存货表与产品表通过product_id建立外键关系,实现了数据的关联性和完整性。 - 命令表也通过product_id与产品表建立外键关系,实现对产品操作的追踪。 4. REST服务器的作用: - 在数据库设计后提到建立REST服务器,说明本数据库可能是用于一个在线系统中,REST服务器允许客户端通过HTTP请求与数据库交互。 - REST(Representational State Transfer)是一种软件架构风格,用于网络系统的设计,特别适合于Web服务的开发。使用REST架构可以设计出简洁、易于理解、易于扩展的Web服务。 5. 技术栈及实现工具(可选): - 标签中的"JavaScript"表明在开发过程中可能会使用JavaScript语言或相关的技术栈,例如Node.js,Express框架等,来构建REST服务器。 - 具体到压缩包子文件的文件名称列表中的"seed_the_data-master",暗示可能是一个版本控制系统(如Git)的仓库名称,其中包含了用于初始化数据库的种子数据脚本和相关代码。 6. 编程实践: - 在实际的开发实践中,创建数据库和表通常涉及编写SQL(Structured Query Language)语句。利用SQL语句可以定义表结构、字段属性、数据类型等,并执行数据的增删改查操作。 - 种子数据(Seeding)是指在数据库初始化阶段填充的数据,这样做可以为测试或实际使用环境提供初始数据集,便于后续操作和测试。 通过上述知识点的梳理,可以得出"seed_the_data"这篇文档主要讲述了如何设计和构建一个库存管理数据库,以及相关的技术栈选择。其核心在于如何通过合理的数据库设计,包括表结构和关系的定义,以及如何利用REST服务器等技术手段,实现一个符合业务需求的数据管理与操作系统。

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuracy') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 We next change label number to a 10 dimensional vector, e.g., 1-> train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history对于该模型,使用不同数量的训练数据(5000,10000,15000,…,60000,公差=5000的等差数列),绘制训练集和测试集准确率(纵轴)关于训练数据大小(横轴)的曲线

2023-06-01 上传

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]*train_data.shape[2]) # 60000*784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]*test_data.shape[2]) # 10000*784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 # ## we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(64, input_shape=(784,),activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']模仿此段代码,写一个双隐层感知器(输入层784,第一隐层128,第二隐层64,输出层10)

2023-06-01 上传