用keras搭建BP神经网络对数据集进行回归预测,效果和同学的相比很差,麻烦大神指点。新手小白。。。 5C

数据集是csv文件,一共十三列,十几万行,第十三列是要预测的值。
试过很多种方法(都是百度的),包括更改网络层数、 节点数,学习率……,效果都没什么提升
不知道问题出在哪里,请大神指点。

import numpy as np
import keras as ks
from keras.models import Sequential
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from keras.layers import Dense, Activation,Dropout

x_yuan = np.loadtxt(open("shaixuandata.csv","rb"),\
usecols=(range(12)),delimiter=",",skiprows=1)
x = preprocessing.scale(x_yuan)
y = np.loadtxt(open("shaixuandata.csv","rb"),\
usecols=(12),delimiter=",",skiprows=1)
x_train, x_test, y_train, y_test = train_test_split(\
x, y, test_size=0.25, random_state=43)

model = Sequential()
model.add(Dense(units=30, input_dim=12))
model.add(Activation('relu'))
model.add(Dropout(0.1))
model.add(Dense(units=1))
model.add(Activation('linear'))

ks.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, \
patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0)
sgd = ks.optimizers.SGD(lr=0.001, clipnorm=1.,decay=1e-6, momentum=0.9)
model.compile(optimizer='sgd', loss='mae', metrics=['mae'])
model.fit(x_train, y_train, batch_size=30, epochs=3, callbacks=None, \
validation_data=(x_test,y_test), shuffle=True, class_weight=None, \
sample_weight=None, initial_epoch=0)

predict = model.predict(x_test)
sum = 0
for i in range(len(y_test)):
sum = sum+(y_test[i]-predict[i])**2
mse = sum/len(y_test)
print(mse)

训练的结果是这样的,老实说训练结果太差

1个回答

import numpy as np
import keras as ks
from keras.models import Sequential
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from keras.layers import Dense, Activation,Dropout

x_yuan = np.loadtxt(open("shaixuandata.csv","rb"),\
usecols=(range(12)),delimiter=",",skiprows=1)
x = preprocessing.scale(x_yuan)
y = np.loadtxt(open("shaixuandata.csv","rb"),\
usecols=(12),delimiter=",",skiprows=1)
x_train, x_test, y_train, y_test = train_test_split(\
x, y, test_size=0.25, random_state=43)

model = Sequential()
model.add(Dense(units=30, input_dim=12))
model.add(Activation('relu'))
model.add(Dropout(0.1))
model.add(Dense(units=1))
model.add(Activation('linear'))

ks.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, \
patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0)
sgd = ks.optimizers.SGD(lr=0.001, clipnorm=1.,decay=1e-6, momentum=0.9)
model.compile(optimizer='sgd', loss='mae', metrics=['mae'])
model.fit(x_train, y_train, batch_size=30, epochs=3, callbacks=None, \
validation_data=(x_test,y_test), shuffle=True, class_weight=None, \
sample_weight=None, initial_epoch=0)

predict = model.predict(x_test)
sum = 0
for i in range(len(y_test)):
sum = sum+(y_test[i]-predict[i])**2
mse = sum/len(y_test)
print(mse)

代码是这样的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何利用Keras的函数式模型搭建一个局部连接的卷积神经网络模型?

最近在学习卷积神经网络模型,在对CNN鼻祖LeNet5进行构建时遇到了如下问题: 首先有这样一个连接模式: ![图片说明](https://img-ask.csdn.net/upload/201910/28/1572246925_411564.jpg) 需要由S2层的6个特征图谱生成C3层的16个特征图谱,但这16个map并不都是与上一层进行全连接卷积求和得到的 例如C3的map1只与S2的map1,2,3进行局部连接,卷积求和在加上一个bias就得到了C3的第一个特征图谱 那么这样的连接模式怎么使用Keras来表示呢? 首先考虑最简单的序贯模型,发现并没有相关的API可以用来指定上一层的某一部分特征图作为一下层的输入(也许是我没发现),然后考虑函数式模型: ``` import keras from keras.layers import Conv2D, MaxPooling2D, Input, Dense, Flatten from keras.models import Model input_LeNet5=Input(shape=(32,32,1)) c1=Conv2D(6,(5,5))(input_LeNet5) s2=MaxPooling2D((2,2))(c1) print(np.shape(s2)) ``` 这里我搭建出了LeNet5的前两层,并打印出了S2的形状,是一个(?,14,14,6)的张量,这里的6显然就是代表了S2中6张不同的map ``` TensorShape([Dimension(None), Dimension(14), Dimension(14), Dimension(6)]) ``` 那么是不是就可以考虑对张量的最后一维进行切片,如下,将S21作为c31的输入,代码是可以编译通过的 ``` s21=s2[:,:,:,0:3] c31=Conv2D(1,(5,5))(S21) ``` 但是最后调用Model对整个模型进行编译时就出错了 ``` model = Model(inputs=input_LeNet5, outputs=C31) ``` ``` AttributeError: 'NoneType' object has no attribute '_inbound_nodes' ``` 经过测试发现只要是对上一层的输入进行切片就会出现这样的问题,猜测是切片使得S21丢失了S2的数据类型以及属性 看了很多别人搭建的模型也没有涉及这一操作的,keras文档也没有相关描述。 特来请教有没有大牛搭建过类似的模型,不用keras也行

简单BP神经网络训练鸢尾花

大佬们,请问result为什么大于0.8就是1,小于0.2是0,其他值则为0.5啊? ``` import pandas as pd import matplotlib.pyplot as plt import numpy as np import tensorflow as tf iris = pd.read_csv("Iris.txt",names=['a','b','c','d','class']) iris['class'][iris['class']=="Iris-setosa"] = 0 iris['class'][iris['class']=="Iris-versicolor"] = 0.5 iris['class'][iris['class']=="Iris-virginica"] = 1 iris_class1 = iris[iris["class"]==0] iris_class2 = iris[iris["class"]==0.5] iris_class3 = iris[iris["class"]==1] temp = np.array(iris) train_data = np.delete(temp,range(len(temp))[::3],axis=0) test_data = temp[::3,:] """ 添加神经网络层的函数 inputs -- 输入内容 in_size -- 输入尺寸 out_size -- 输出尺寸 activation_function --- 激励函数,可以不用输入 """ def add_layer(inputs,in_size,out_size,activation_function=None): W = tf.Variable(tf.zeros([in_size,out_size])+0.01) #定义,in_size行,out_size列的矩阵,随机矩阵,全为0效果不佳 b = tf.Variable(tf.zeros([1,out_size])+0.01) #不建议为0 Wx_plus_b = tf.matmul(inputs,W) + b # WX + b if activation_function is None: #如果有激励函数就激励,否则直接输出 output = Wx_plus_b else: output = activation_function(Wx_plus_b) return output X = tf.placeholder(tf.float32,[None,4]) Y = tf.placeholder(tf.float32,[None,1]) output1 = add_layer(X,4,8,activation_function = tf.nn.sigmoid) output2 = add_layer(output1,8,3,activation_function = tf.nn.sigmoid) temp_y = add_layer(output2,3,1,activation_function = tf.nn.sigmoid) #先求平方,再求和,在求平均 loss = tf.reduce_mean(tf.reduce_sum(tf.square(Y-temp_y),reduction_indices=[1])) #通过优化器,以0.001的学习率,减小误差loss train_step = tf.train.AdamOptimizer(0.001).minimize(loss) #拆分训练集数据集,分为输入和输出 train_x = train_data[:,:4] train_y = train_data[:,-1:] sess = tf.Session() sess.run(tf.global_variables_initializer()) save_process = [] for i in range(90000):#训练90000次 sess.run(train_step,feed_dict={X:train_x,Y:train_y}) if i%300 == 0:#每300次记录损失值(偏差值) save_process.append(sess.run(loss,feed_dict={X:train_x,Y:train_y})) #第前两个数据比较大,踢掉 # save_process = np.delete(save_process,[0,1]) # plt.plot(range(len(save_process)),save_process) def compare_numpy(a,b,is_num=False): """比较两个维度相同的数组,返回相同数字个数/相似度""" num = 0 for i in range(len(a)): if a[i]==b[i]: num+=1 return num if is_num else num/len(a) test_x = test_data[:,:4] test_y = test_data[:,-1:] result = sess.run(temp_y,feed_dict={X:test_x}) result[result > 0.8] = 1 result[result < 0.2] = 0 result[(result < 0.8) & ( result > 0.2)] = 0.5 print("总数:",len(test_data)," 准确个数:",compare_numpy(result,test_y,True)," 精确度:",compare_numpy(result,test_y)) ```

keras如何搭建跨层神经网络

![图片说明](https://img-ask.csdn.net/upload/201903/09/1552124777_957866.png)

keras构建的前向神经网络过拟合问题

我用keras构建了一个[7,200,200,200,200,1]的前向神经网络做回归,7个输入变量,1个输出变量。9000组训练样本,1072组测试样本。训练样本拟合相关系数达到0.98-0.99,测试样本相关系数为0.3-0.4,。后来,我加上dropout,l2正则化,训练样本相关系数降到0.5左右了,测试样本R才升到0.5 这究竟怎么回事?实在没办法了,求帮助啊

keras LSTM时序预测 loss和accuracy基本不变

使用keras进行LSTM时序预测,我改变了epoch,但训练过程中的loss始终为0.05左右,accuracy始终为0.5左右,测试集上的loss和accuracy也是这两个数,请问是出现了什么问题,怎么解决呢

利用keras搭建神经网络,怎么固定初始化参数?

model.add(LSTM(input_dim=1, output_dim=8,return_sequences=False)),代码如下,就采用这样的网络不训练直接测试,每次结果都有很大偏差,说明每次网络初始化权重都不一样,怎样把它设定为固定值呢?

用keras制作数据集的问题

有没有大神用keras做过边缘检测的模型?比如用BSDS500数据集,要怎么训练? 数据集要怎么用?官方文档查不到类似的问题。。我知道x_train要用照片,那y_train是ground truth,但是完全不会用啊 推荐标签:keras, 边缘检测

利用keras搭建神经网络,怎样记录每一轮epoch的时间,和训练的总时间?

神经网络就是一个简单的lstm神经网络,调用了keras模块,现在想比较不同训练方法的效率,如何在训练完成后显示每一步训练以及最后训练完的总时间?

sklearn和keras中的数据集分割问题

用sklearn的train_test_split分割了数据集后还有没有必要在keras里的model.fit()里面用validation_split分割

keras用2层cnn和2层全连接搭建食物图像识别的神经网络acc一直在50上不去。

现在用10x750+10x250张图片做训练测试 总体有101x750+101x250 不知道这样测试出来的网络能不能直接套用在全部的数据上(因为电脑原因跑的比较慢才这样测试的) 用10类别测试的时候 acc比较低而且把待测图片放入测试文件中的时候会出现100%但指向另外类别的结果 ``` import sys import os from keras.preprocessing.image import ImageDataGenerator from keras import optimizers from keras.models import Sequential from keras.layers import Dropout, Flatten, Dense, Activation from keras.layers.convolutional import Convolution2D, MaxPooling2D from keras import callbacks import time import tensorflow as tf config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True)) sess = tf.Session(config=config) start = time.time() DEV = False argvs = sys.argv argc = len(argvs) if argc > 1 and (argvs[1] == "--development" or argvs[1] == "-d"): DEV = True if DEV: epochs = 2 else: epochs = 10 train_data_path = 'data/train' validation_data_path = 'data/test' """ Parameters """ img_width, img_height = 100, 100 batch_size = 32 samples_per_epoch = 7500 validation_steps = 490 nb_filters1 = 32 nb_filters2 = 64 conv1_size = 3 conv2_size = 2 pool_size = 2 classes_num = 10 lr = 0.0004 model = Sequential() model.add(Convolution2D( nb_filters1, conv1_size, conv1_size, border_mode ="same", input_shape=(img_width, img_height, 3) )) model.add(Activation("relu")) model.add(MaxPooling2D( pool_size=(pool_size, pool_size) )) model.add(Convolution2D(nb_filters2, conv2_size, conv2_size, border_mode ="same")) model.add(Activation("relu")) model.add(Convolution2D(nb_filters2, conv2_size, conv2_size, border_mode ="same")) model.add(Activation("relu")) model.add(MaxPooling2D(pool_size=(pool_size, pool_size), dim_ordering='th')) model.add(Flatten()) model.add(Dense(256)) model.add(Activation("relu")) model.add(Dropout(0.5)) model.add(Dense(classes_num, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=optimizers.RMSprop(lr=lr), metrics=['accuracy']) train_datagen = ImageDataGenerator( rescale=1. / 255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1. / 255) train_generator = train_datagen.flow_from_directory( train_data_path, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical') validation_generator = test_datagen.flow_from_directory( validation_data_path, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical') """ Tensorboard log """ log_dir = './training101tf-log/' tb_cb = callbacks.TensorBoard(log_dir=log_dir, histogram_freq=0) cbks = [tb_cb] model.fit_generator( train_generator, samples_per_epoch=samples_per_epoch, epochs=epochs, validation_data=validation_generator, callbacks=cbks, validation_steps=validation_steps) target_dir = './models_training101/' if not os.path.exists(target_dir): os.mkdir(target_dir) model.save('./models_training101/model.h5') model.save_weights('./models_training101/weights.h5') #Calculate execution time end = time.time() dur = end-start if dur<60: print("Execution Time:",dur,"seconds") elif dur>60 and dur<3600: dur=dur/60 print("Execution Time:",dur,"minutes") else: dur=dur/(60*60) print("Execution Time:",dur,"hours") ```

keras框架的数据输入维度问题

x = np.arange(20) 创建一个一维数组shape是(20,),在keras里,如果直接输入神经网络的话,那么输入神经元是20吧? 但是如果x= x.reshape((1, 20))或者x=x.reshape((20,1))就是把原有的一维数组看成一个输入,reshape后的值输入神经网络就是一个神经元吧?上述二者的reshape是不是输入是等价的?

keras 训练 IMDB数据 为什么预测的是正面情感?

学习 利用Keras中的IMDB数据集,对评论进行二分类,有个疑问是:为什么预测的是正面情感?代码如下: from keras.datasets import imdb from keras import models from keras import layers import numpy as np import matplotlib.pyplot as plt def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. print('i=',i,'results[i]=',results[i]) return results (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) '''word_index = imdb.get_word_index() reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]]) ''' x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) y_train = np.asarray(train_labels).astype('float32') y_test = np.asarray(test_labels).astype('float32') model = models.Sequential() model.add(layers.Dense(16, activation='relu', input_shape=(10000,))) model.add(layers.Dense(16,activation='relu')) model.add(layers.Dense(1,activation='sigmoid')) x_val = x_train[:10000] partial_x_train = x_train[10000:] y_val = y_train[:10000] partial_y_train = y_train[10000:] model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc']) history = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512,validation_data=(x_val, y_val)) history_dict = history.history loss_value = history_dict['loss'] val_loss_value = history_dict['val_loss'] epochs = range(1,len(loss_value)+1) plt.plot(epochs, loss_value, 'bo', label='Trianing Loss') plt.plot(epochs, val_loss_value, 'b', label='Validation Loss') plt.title('Training and validation loss') plt.xlabel('Epochs') plt.ylabel('Loss') plt.legend() plt.show()

用keras构建了一个简单神经网络,loss一直卡在0.69不动

试过了改变lr,改变optimizer,权重初始化也有了,但是loss一直卡在0.69,用softmax做了一个二元分类,求大牛帮忙看一下,谢谢!

keras模型的预测(predict)结果全是0

使用keras搭了一个模型并且对其进行了训练,得到模型在百度云盘中:链接:https://pan.baidu.com/s/1wQ5MLhPDfhwlveY-ib92Ew 密码:f3gk, 使用keras.predict时,无论模型输入什么输出都是0,代码如下: ```python from keras.models import Sequential, Model from keras.layers.convolutional_recurrent import ConvLSTM2D from keras.layers.normalization import BatchNormalization from keras.utils import plot_model from keras.models import load_model from keras import metrics import numpy as np import os import json import keras import matplotlib.pyplot as plt import math from keras import losses import shutil from keras import backend as K from keras import optimizers # 定义损失函数 def my_loss(y_true, y_pred): if not K.is_tensor(y_pred): y_pred = K.constant(y_pred, dtype = 'float64') y_true = K.cast(y_true, y_pred.dtype) return K.mean(K.abs((y_true - y_pred) / K.clip(K.abs(y_true), K.epsilon(), None))) # 定义评价函数metrics def mean_squared_percentage_error(y_true, y_pred): if not K.is_tensor(y_pred): y_pred = K.constant(y_pred, dtype = 'float64') y_true = K.cast(y_true, y_pred.dtype) return K.mean(K.square((y_pred - y_true)/K.clip(K.abs(y_true),K.epsilon(), None))) model_path = os.path.join('model/model' ,'model.h5') seq = load_model(model_path, custom_objects={'my_loss': my_loss,'mean_squared_percentage_error':mean_squared_percentage_error}) print (seq.summary()) input_data = np.random.random([1, 12, 56, 56, 1]) output_data = seq.predict(input_data, batch_size=16, verbose=1) print (output_data[0][:,:,0]) ``` 输出如下: ```python Model: "sequential_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv_lst_m2d_1 (ConvLSTM2D) (None, None, 56, 56, 40) 59200 _________________________________________________________________ batch_normalization_1 (Batch (None, None, 56, 56, 40) 160 _________________________________________________________________ conv_lst_m2d_2 (ConvLSTM2D) (None, None, 56, 56, 40) 115360 _________________________________________________________________ batch_normalization_2 (Batch (None, None, 56, 56, 40) 160 _________________________________________________________________ conv_lst_m2d_3 (ConvLSTM2D) (None, 56, 56, 1) 1480 ================================================================= Total params: 176,360 Trainable params: 176,200 Non-trainable params: 160 None 1/1 [==============================] - 1s 812ms/step [[ 0. 0. 0. ... 0. 0. 0.] [ 0. 0. 0. ... 0. 0. 0.] [ 0. 0. 0. ... 0. 0. 0.] ... [ 0. 0. 0. ... 0. 0. 0.] [ 0. 0. 0. ... 0. 0. 0.] [ 0. 0. 0. ... 0. 0. -0.]] ``` 不懂为什么会这样,即便随机生成一组数据作为输入,结果也是这样

迁移学习中进行医学影像分析,训练神经网络后accuracy保持不变。。。

使用的是vgg16的finetune网络,网络权重从keras中导入的,最上层有三层的一个小训练器的权重是由训练习得的。训练集大约300个样本,验证集大约80个样本,但程序运行后,第一二个epoch之间loss、acc还有变化,之后就不再变化,而且验证集的准确度一直接近于零。。想请有关卷积神经网络和机器学习方面的大神帮忙看一下是哪里出了问题 import keras from keras.models import Sequential from keras.layers import Dense,Dropout,Activation,Flatten from keras.layers import GlobalAveragePooling2D import numpy as np from keras.optimizers import RMSprop from keras.utils import np_utils import matplotlib.pyplot as plt from keras import regularizers from keras.applications.vgg16 import VGG16 from keras import optimizers from keras.layers.core import Lambda from keras import backend as K from keras.models import Model #写一个LossHistory类(回调函数),保存loss和acc,在keras下画图 class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}):#在每个batch的开始处(on_batch_begin):logs包含size,即当前batch的样本数 self.losses = {'batch':[], 'epoch':[]} self.accuracy = {'batch':[], 'epoch':[]} self.val_loss = {'batch':[], 'epoch':[]} self.val_acc = {'batch':[], 'epoch':[]} def on_batch_end(self, batch, logs={}): self.losses['batch'].append(logs.get('loss')) self.accuracy['batch'].append(logs.get('acc')) self.val_loss['batch'].append(logs.get('val_loss')) self.val_acc['batch'].append(logs.get('val_acc')) def on_epoch_end(self, batch, logs={}):#每迭代完一次从log中取得数据 self.losses['epoch'].append(logs.get('loss')) self.accuracy['epoch'].append(logs.get('acc')) self.val_loss['epoch'].append(logs.get('val_loss')) self.val_acc['epoch'].append(logs.get('val_acc')) def loss_plot(self, loss_type): iters = range(len(self.losses[loss_type])) #绘图的横坐标? plt.figure() #建立一个空的画布 if loss_type == 'epoch': plt.subplot(211) plt.plot(iters,self.accuracy[loss_type],'r',label='train acc') plt.plot(iters,self.val_acc[loss_type],'b',label='val acc') # val_acc用蓝色线表示 plt.grid(True) plt.xlabel(loss_type) plt.ylabel('accuracy') plt.show() plt.subplot(212) plt.plot(iters, self.losses[loss_type], 'r', label='train loss') # val_acc 用蓝色线表示 plt.plot(iters, self.val_loss[loss_type], 'b', label='val loss') # val_loss 用黑色线表示 plt.xlabel(loss_type) plt.ylabel('loss') plt.legend(loc="upper right") #把多个axs的图例放在一张图上,loc表示位置 plt.show() print(np.mean(self.val_acc[loss_type])) print(np.std(self.val_acc[loss_type])) seed = 7 np.random.seed(seed) #训练网络的几个参数 batch_size=32 num_classes=2 epochs=100 weight_decay=0.0005 learn_rate=0.0001 #读入训练、测试数据,改变大小,显示基本信息 X_train=np.load(open('/image_BRATS_240_240_3_normal.npy',mode='rb')) Y_train=np.load(open('/label_BRATS_240_240_3_normal.npy',mode='rb')) Y_train = keras.utils.to_categorical(Y_train, 2) #搭建神经网络 model_vgg16=VGG16(include_top=False,weights='imagenet',input_shape=(240,240,3),classes=2) model_vgg16.layers.pop() model=Sequential() model.add(model_vgg16) model.add(Flatten(input_shape=X_train.shape[1:])) model.add(Dense(436,activation='relu')) #return x*10的向量 model.add(Dense(2,activation='softmax')) #model(inputs=model_vgg16.input,outputs=predictions) for layer in model_vgg16.layers[:13]: layer.trainable=False model_vgg16.summary() model.compile(optimizer=RMSprop(lr=learn_rate,decay=weight_decay), loss='categorical_crossentropy', metrics=['accuracy']) model.summary() history=LossHistory() model.fit(X_train,Y_train, batch_size=batch_size,epochs=epochs, verbose=1, shuffle=True, validation_split=0.2, callbacks=[history]) #模型评估 history.loss_plot('epoch') 比如: ![实验运行结果:](https://img-ask.csdn.net/upload/201804/19/1524134477_869793.png)

已知预测结果和标签,如何用python画roc曲线?

绝大部分教画roc的教程,都是从模型建立开始顺便画出roc来评价结果。 现在如果已知某个分类方法的预测结果和实际标签,例如下面2列: 预测结果 实际标签 1 0 1 0 0 1 . . . . . . 如何画出roc曲线? 在实际应用中碰到的例子,已知一个危险评分,根据这个评分给一个样本集合进行打分,每一个样本得到一个分值,设定阈值大于n分则预测结果为1,否则为0。然后根据实际标签的0或1用python画出roc曲线。 初学者,求各位老师帮忙指导,如何画?

使用keras搭的模型,训练时候,使用相同的loss和metrics,但是输出却不一样

keras搭的模型,训练时候,使用相同的loss和metrics,但是输出却不一样,为什么会出现这种情况呀

keras怎么改输入的维度

是一个多分类问题,我现在读取出来的数据input.shape=(40000,1,576,2) 我想让它最后的层unit是8。 请问我应该怎么加一些代码呢

Tensorflow建一个神经网络,输出数据只有一个谱型,且杂乱

建了一个神经网络,输入节点3个,输出250个,两个隐藏层,节点数分别为200个。 训练数据集为100000个。运行完后用测试集验证,发现预测的谱线杂乱无章,跟测试的谱线集完全无关,从图中看感觉是在一个谱型附近震荡。 初学者不明白是什么原因,不知有没有大神可以稍加指教。 ``` import tensorflow as tf import numpy as np # 添加层 def add_layer(inputs, in_size, out_size,n_layer,activation_function=None): Weights = tf.Variable(tf.random_normal([in_size, out_size])) Wx_plus_b = tf.matmul(inputs, Weights) if activation_function is None: outputs = Wx_plus_b else: outputs = activation_function(Wx_plus_b) return outputs # 1.训练的数据 p_1= np.loadtxt('D:p_train.txt') p=np.reshape(p_1,(3,100000)) s_1= np.loadtxt('D:s_train.txt') s=np.reshape(s_1,(250,100000)) pmin=p.min() pmax=p.max() p_train=(p-pmin)/(pmax-pmin) smin=s.min() smax=s.max() s_train=(s-smin)/(smax-smin) p_train=np.transpose(p_train) s_train=np.transpose(s_train) p_train=p_train.tolist() s_train=s_train.tolist() # 2.测试的数据 p_2=np.loadtxt('D:p_test.txt') p2=np.reshape(p_2,(3,5501)) s_2=np.loadtxt('D:s_test.txt') s2=np.reshape(s_2,(250,5501)) pmin2=p2.min() pmax2=p2.max() p_test=(p2-pmin2)/(pmax2-pmin2) smin2=s2.min() smax2=s2.max() s_test=(s2-smin2)/(smax2-smin2) p_test=np.transpose(p_test) s_test=np.transpose(s_test) p_test=p_test.tolist() s_test=s_test.tolist() # 3.定义占位符 px = tf.placeholder(tf.float32, [None, 3]) sx = tf.placeholder(tf.float32, [None,250]) sy=tf.placeholder(tf.float32,[None,250]) # 4.定义神经层:隐藏层和预测层 l1 = add_layer(px, 3, 200, n_layer=1,activation_function=tf.nn.sigmoid) l2=add_layer(l1,200,200,n_layer=2,activation_function=tf.nn.sigmoid) prediction = add_layer(l2, 200, 250, n_layer=3,activation_function=None) # 5.定义 loss 表达式 mse loss = tf.reduce_mean(tf.square(sx - prediction)) #loss2 # 6.选择 optimizer 使 loss 达到最小 train_step = tf.train.AdamOptimizer(0.01,epsilon=1e-8).minimize(loss) #7.初始化变量 init=tf.initialize_all_variables() #8.定义会话 sess = tf.Session() #9.运行 sess.run(init) #10.查看loss变化 for step in range(1000): sess.run(train_step, feed_dict={px:p_train, sx:s_train}) if step % 50 == 0: print(sess.run(loss,feed_dict={sx:s_train,px:p_train})) prediction_test=sess.run(prediction,feed_dict={px:p_test}) ```

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问