keras 训练网络时出现ValueError

rt

使用keras中的model.fit函数进行训练时出现错误:ValueError: None values not supported.

错误信息如下:

File "C:/Users/Desktop/MNISTpractice/mnist.py", line 93, in <module>
    model.fit(x_train,y_train, epochs=2, callbacks=callback_list,validation_data=(x_val,y_val))
  File "C:\Anaconda3\lib\site-packages\keras\engine\training.py", line 1575, in fit
    self._make_train_function()
  File "C:\Anaconda3\lib\site-packages\keras\engine\training.py", line 960, in _make_train_function
    loss=self.total_loss)
  File "C:\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 87, in wrapper
    return func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\keras\optimizers.py", line 432, in get_updates
    m_t = (self.beta_1 * m) + (1. - self.beta_1) * g
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\ops\math_ops.py", line 820, in binary_op_wrapper
    y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y")
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 639, in convert_to_tensor
    as_ref=False)
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 704, in internal_convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\constant_op.py", line 113, in _constant_tensor_conversion_function
    return constant(v, dtype=dtype, name=name)
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\constant_op.py", line 102, in constant
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
  File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\tensor_util.py", line 360, in make_tensor_proto
    raise ValueError("None values not supported.")
ValueError: None values not supported.

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
报错ValueError: None values not supported.如何解决

在跑代码的时候出现了ValueError: None values not supported. 停在了这里,这是我定义的class 应该是调用fit函数时候出现的问题 ``` class NetworkBase(object): def train(self, x_train, y_train, x_test, y_test, epochs, batch_size, log_dir='/tmp/fullyconnected', stop_early=False): callbacks = [] if backend._BACKEND == 'tensorflow': callbacks.append(TensorBoard(log_dir=log_dir)) if stop_early: callbacks.append(EarlyStopping(monitor='val_loss', patience=2, verbose=1, mode='auto')) self.fcnet.fit(x_train, y_train, epochs=epochs, batch_size=batch_size, shuffle=True, validation_data=(x_test, y_test), callbacks=callbacks) ``` 报错信息如下 ``` File "D:\R\实验室\代码\DL-hybrid-precoder-master\main_train\Model\network_base.py", line 20, in train callbacks=callbacks) File "C:\Users\admin\Anaconda3\lib\site-packages\keras\engine\training.py", line 1213, in fit self._make_train_function() File "C:\Users\admin\Anaconda3\lib\site-packages\keras\engine\training.py", line 316, in _make_train_function loss=self.total_loss) File "C:\Users\admin\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper return func(*args, **kwargs) File "C:\Users\admin\Anaconda3\lib\site-packages\keras\optimizers.py", line 543, in get_updates p_t = p - lr_t * m_t / (K.sqrt(v_t) + self.epsilon) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\ops\math_ops.py", line 815, in binary_op_wrapper y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y") File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1039, in convert_to_tensor return convert_to_tensor_v2(value, dtype, preferred_dtype, name) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1097, in convert_to_tensor_v2 as_ref=False) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1175, in internal_convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\constant_op.py", line 304, in _constant_tensor_conversion_function return constant(v, dtype=dtype, name=name) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\constant_op.py", line 245, in constant allow_broadcast=True) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\constant_op.py", line 283, in _constant_impl allow_broadcast=allow_broadcast)) File "C:\Users\admin\Anaconda3\lib\site-packages\tensorflow\python\framework\tensor_util.py", line 454, in make_tensor_proto raise ValueError("None values not supported.") ValueError: None values not supported. ``` 希望有大神可以帮我解答问题出在哪里

ValueError: None values not supported.

Traceback (most recent call last): File "document_summarizer_training_testing.py", line 296, in <module> tf.app.run() File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 48, _sys.exit(main(_sys.argv[:1] + flags_passthrough)) File "document_summarizer_training_testing.py", line 291, in main train() File "document_summarizer_training_testing.py", line 102, in train model = MY_Model(sess, len(vocab_dict)-2) File "/home/lyliu/Refresh-master-self-attention/my_model.py", line 70, in __init__ self.train_op_policynet_expreward = model_docsum.train_neg_expectedreward(self.rewardweighted_cross_entropy_loss_multi File "/home/lyliu/Refresh-master-self-attention/model_docsum.py", line 835, in train_neg_expectedreward grads_and_vars_capped_norm = [(tf.clip_by_norm(grad, 5.0), var) for grad, var in grads_and_vars] File "/home/lyliu/Refresh-master-self-attention/model_docsum.py", line 835, in <listcomp> grads_and_vars_capped_norm = [(tf.clip_by_norm(grad, 5.0), var) for grad, var in grads_and_vars] File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/ops/clip_ops.py", line 107,rm t = ops.convert_to_tensor(t, name="t") File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 676o_tensor as_ref=False) File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 741convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py", constant_tensor_conversion_function return constant(v, dtype=dtype, name=name) File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/framework/constant_op.py", onstant tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape)) File "/home/lyliu/anaconda3/envs/tensorflowgpu/lib/python3.5/site-packages/tensorflow/python/framework/tensor_util.py", ake_tensor_proto raise ValueError("None values not supported.") ValueError: None values not supported. 使用tensorflow gpu版本 tensorflow 1.2.0。希望找到解决方法或者出现这个错误的原因

基于Keras的YOLOV3源码实现疑问

``` def yolo_head(feats, anchors, num_classes, input_shape, calc_loss=False):#获得bx,by,bw,bh,置信度和分类信息 """Convert final layer features to bounding box parameters.""" num_anchors = len(anchors) anchors_tensor = K.reshape(K.constant(anchors), [1, 1, 1, num_anchors, 2]) grid_shape = K.shape(feats)[1:3] grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]), [1, grid_shape[1], 1, 1]) grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]), [grid_shape[0], 1, 1, 1]) grid = K.concatenate([grid_x, grid_y])#获得grid的总坐标 grid = K.cast(grid, K.dtype(feats))#将grid的数据类型转换为与feats一致 feats = K.reshape( feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5]) # Adjust preditions to each spatial grid point and anchor size. box_xy = (K.sigmoid(feats[..., :2]) + grid) / K.cast(grid_shape[::-1], K.dtype(feats)) box_wh = K.exp(feats[..., 2:4]) * anchors_tensor / K.cast(input_shape[::-1], K.dtype(feats))#feats[...,2:4]对feats进行切片,得到feats第2列和第3列的数据(含0)即tw,th box_confidence = K.sigmoid(feats[..., 4:5])#获得to box_class_probs = K.sigmoid(feats[..., 5:]) if calc_loss == True: return grid, feats, box_xy, box_wh return box_xy, box_wh, box_confidence, box_class_probs ``` ``` def yolo_correct_boxes(box_xy, box_wh, input_shape, image_shape): '''Get corrected boxes''' box_yx = box_xy[..., ::-1]#倒叙 box_hw = box_wh[..., ::-1] input_shape = K.cast(input_shape, K.dtype(box_yx))#input_shape是哪个input image_shape = K.cast(image_shape, K.dtype(box_yx)) new_shape = K.round(image_shape * K.min(input_shape/image_shape))#tf.round 将张量中的元素四舍五入成为最接近的整数x = tf.constant([0.9, 2.5, 2.3, 1.5, -4.5]) tf.round(x) # [ 1.0, 2.0, 2.0, 2.0, -4.0 ] #K.min返回张量中的最小值, offset = (input_shape-new_shape)/2./input_shape scale = input_shape/new_shape box_yx = (box_yx - offset) * scale box_hw *= scale box_mins = box_yx - (box_hw / 2.) box_maxes = box_yx + (box_hw / 2.) boxes = K.concatenate([ box_mins[..., 0:1], # y_min box_mins[..., 1:2], # x_min box_maxes[..., 0:1], # y_max box_maxes[..., 1:2] # x_max ]) # Scale boxes back to original image shape. boxes *= K.concatenate([image_shape, image_shape]) return boxes ``` 请问: 1.第一个代码中的features传入的是什么值,我的猜测1:是一个feature_map2:是三个scale的feture_map 2.如果传入的是一个feature_map 语句feats = K.reshape( feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5])中的-1所代表的维度是什么,一个feture_map的size不应该是grid_shape[0]*grid_shape[1]*(num_class+5)吗?怎么会reshape成为上面的格式 3.box_xy = (K.sigmoid(feats[..., :2]) + grid) / K.cast(grid_shape[::-1], K.dtype(feats)) 分母的含义是什么,原论文中 bx = sigma(tx)+cx 好像没有分母出现 4.第二个代码段所实现的功能是什么?是如何实现的?

TensorFlow的Keras如何使用Dataset作为数据输入?

当我把dataset作为输入数据是总会报出如下错误,尽管我已经在数据解析那里reshape了图片大小为(512,512,1),请问该如何修改? ``` ValueError: Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (None, 1) ``` **图片大小定义** ``` import tensorflow as tf from tensorflow import keras IMG_HEIGHT = 512 IMG_WIDTH = 512 IMG_CHANNELS = 1 IMG_PIXELS = IMG_CHANNELS * IMG_HEIGHT * IMG_WIDTH ``` **解析函数** ``` def parser(record): features = tf.parse_single_example(record, features={ 'image_raw': tf.FixedLenFeature([], tf.string), 'label': tf.FixedLenFeature([23], tf.int64) }) image = tf.decode_raw(features['image_raw'], tf.uint8) label = tf.cast(features['label'], tf.int32) image.set_shape([IMG_PIXELS]) image = tf.reshape(image, [IMG_HEIGHT, IMG_WIDTH, IMG_CHANNELS]) image = tf.cast(image, tf.float32) return image, label ``` **模型构建** ``` dataset = tf.data.TFRecordDataset([TFRECORD_PATH]) dataset.map(parser) dataset = dataset.repeat(10*10).batch(10) model = keras.Sequential([ keras.layers.Conv2D(filters=32, kernel_size=(5, 5), padding='same', activation='relu', input_shape=(512, 512, 1)), keras.layers.MaxPool2D(pool_size=(2, 2)), keras.layers.Dropout(0.25), keras.layers.Conv2D(filters=64, kernel_size=(3, 3), padding='same', activation='relu'), keras.layers.MaxPool2D(pool_size=(2, 2)), keras.layers.Dropout(0.25), keras.layers.Flatten(), keras.layers.Dense(128, activation='relu'), keras.layers.Dropout(0.25), keras.layers.Dense(23, activation='softmax') ]) model.compile(optimizer=keras.optimizers.Adam(), loss=keras.losses.sparse_categorical_crossentropy, metrics=[tf.keras.metrics.categorical_accuracy]) model.fit(dataset.make_one_shot_iterator(), epochs=10, steps_per_epoch=10) ```

如何在keras+tensorflow中对4通道图像如何输入并分类呢?

ImageDataGenerator默认的flow_from_directory函数中有个color_mode设置,我看文献中只支持‘gray'和'rgb',但我现在要处理的图像是RGBD的4通道图像,如何设置呢?求大师指点。 我尝试着将color_mode设置为'rgb',但是在第一层卷积层的输入数据类型,设置的是(width,height,4)的四通道格式,运行的时候出错了,提示如果我的color_mode设置成了‘rgb',那么自动生成batch的时候,依旧是会变为3通道格式。具体如下: 在flow_from_directory中的color为‘rgb' ``` train_generator = train_datagen.flow_from_directory( directory= train_dir, # this is the target directory target_size=(200, 200), # all images will be resized to 200x200 classes= potato_class, batch_size=60, color_mode= 'rgb', class_mode='sparse') ``` 在卷基层的输入input_shape中设置为4通道 ``` model = Sequential() # CNN构建 model.add(Convolution2D( input_shape=(200, 200, 4), # input_shape=(1, Width, Height), filters=16, kernel_size=3, strides=1, padding='same', data_format='channels_last', name='CONV_1' )) ``` 运行后的错误提示如下: ValueError: Error when checking input: expected CONV_1_input to have shape (None, 200, 200, 4) but got array with shape (60, 200, 200, 3) 怎样才能让keras接受4通道图像呢?我在stackOverflow中看到有人留言说4通道是支持的,但是我没有找到代码。

用神经网络训练模型,报错字符串不能转换为浮点,请问怎么解决?

import matplotlib.pyplot as plt from math import sqrt from matplotlib import pyplot import pandas as pd from numpy import concatenate from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import Adam import tensorflow ''' keras实现神经网络回归模型 ''' # 读取数据 path = 'data001.csv' # 删掉不用字符串字段 train = pd.read_csv(path) dataset = train.iloc[1:,:] # df转array values = dataset.values # 原始数据标准化,为了加速收敛 scaler = MinMaxScaler(feature_range=(0, 1)) scaled = scaler.fit_transform(values) y = scaled[:, -1] X = scaled[:, 0:-1] # 随机拆分训练集与测试集 from sklearn.model_selection import train_test_split train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.3) # 全连接神经网络 model = Sequential() input = X.shape[1] # 隐藏层128 model.add(Dense(128, input_shape=(input,))) model.add(Activation('relu')) # Dropout层用于防止过拟合 # model.add(Dropout(0.2)) # 隐藏层128 model.add(Dense(128)) model.add(Activation('relu')) # model.add(Dropout(0.2)) # 没有激活函数用于输出层,因为这是一个回归问题,我们希望直接预测数值,而不需要采用激活函数进行变换。 model.add(Dense(1)) # 使用高效的 ADAM 优化算法以及优化的最小均方误差损失函数 model.compile(loss='mean_squared_error', optimizer=Adam()) # early stoppping from keras.callbacks import EarlyStopping early_stopping = EarlyStopping(monitor='val_loss', patience=50, verbose=2) # 训练 history = model.fit(train_X, train_y, epochs=300, batch_size=20, validation_data=(test_X, test_y), verbose=2, shuffle=False, callbacks=[early_stopping]) # loss曲线 pyplot.plot(history.history['loss'], label='train') pyplot.plot(history.history['val_loss'], label='test') pyplot.legend() pyplot.show() # 预测 yhat = model.predict(test_X) # 预测y逆标准化 inv_yhat0 = concatenate((test_X, yhat), axis=1) inv_yhat1 = scaler.inverse_transform(inv_yhat0) inv_yhat = inv_yhat1[:, -1] # 原始y逆标准化 test_y = test_y.reshape((len(test_y), 1)) inv_y0 = concatenate((test_X, test_y), axis=1) inv_y1 = scaler.inverse_transform(inv_y0) inv_y = inv_y1[:, -1] # 计算 RMSE rmse = sqrt(mean_squared_error(inv_y, inv_yhat)) print('Test RMSE: %.3f' % rmse) plt.plot(inv_y) plt.plot(inv_yhat) plt.show() ``` ``` 报错是:Traceback (most recent call last): File "F:/SSD/CNN.py", line 24, in <module> scaled = scaler.fit_transform(values) File "D:\anaconda\lib\site-packages\sklearn\base.py", line 464, in fit_transform return self.fit(X, **fit_params).transform(X) File "D:\anaconda\lib\site-packages\sklearn\preprocessing\data.py", line 334, in fit return self.partial_fit(X, y) File "D:\anaconda\lib\site-packages\sklearn\preprocessing\data.py", line 362, in partial_fit force_all_finite="allow-nan") File "D:\anaconda\lib\site-packages\sklearn\utils\validation.py", line 527, in check_array array = np.asarray(array, dtype=dtype, order=order) File "D:\anaconda\lib\site-packages\numpy\core\numeric.py", line 538, in asarray return array(a, dtype, copy=False, order=order) ValueError: could not convert string to float: 'label' label是csv文件里的列名,但是就算去掉,还是会报这个错误

ValueError: No gradients provided for any variable?

在使用卷积神经网络+全连接神经网络计算句子相似度训练模型出现无梯度的问题。 以下是源代码 ``` import numpy as np import tensorflow as tf from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics import os import math os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #构建输入的向量 sentence_x = np.random.randn(1000, 38, 300) sentence_x = tf.cast(tf.reshape(sentence_x, [1000, 38, 300, 1]), dtype=tf.float32) sentence_y = np.random.randn(1000, 38, 300) sentence_y = tf.cast(tf.reshape(sentence_y, [1000, 38, 300, 1]), dtype=tf.float32) label = np.random.randint(0, 2, (1, 1000)) label = tf.reshape(label, [1000]) train_db = tf.data.Dataset.from_tensor_slices((sentence_x, sentence_y, label)) train_db = train_db.shuffle(100).batch(20) #卷积层 conv_layers = [ # 5 units of 2 * conv +maxpooling # unit 1 layers.Conv2D(3, kernel_size=[2, 2], strides=[2, 2], padding='same', activation = tf.nn.relu), layers.Conv2D(3, kernel_size=[2, 2], padding='same', activation = tf.nn.relu), layers.MaxPool2D(pool_size=[2, 2], strides= 2, padding='same'), # unit 2 layers.Conv2D(3, kernel_size=[2, 2], strides=[2, 2], padding='same', activation = tf.nn.relu), layers.Conv2D(3, kernel_size=[2, 2], padding='same', activation = tf.nn.relu), layers.MaxPool2D(pool_size=[2, 2], strides= 2, padding='same'), ] fc_net = Sequential([ layers.Dense(150, activation = tf.nn.relu), layers.Dense(80, activation = tf.nn.relu), layers.Dense(20, activation = None), ]) conv_net = Sequential(conv_layers) conv_net.build(input_shape = [None, 38, 300, 1]) fc_net.build(input_shape = [None, 171]) optimizer = tf.keras.optimizers.Adam(1e-3) variables = conv_net.trainable_variables + fc_net.trainable_variables def main(): for epoch in range(50): for step, (sentence_x, sentence_y, label) in enumerate(train_db): with tf.GradientTape() as tape: out1 = conv_net(sentence_x) out2 = conv_net(sentence_y) fc_input_x = tf.reshape(out1, [-1, 171]) fc_input_y = tf.reshape(out2, [-1, 171]) vec_x = fc_net(fc_input_x) vec_y = fc_net(fc_input_y) #对输出的句向量进行计算相似度值 output = tf.exp(-tf.reduce_sum(tf.abs(vec_x - vec_y), axis=1)) output = tf.reshape(output, [-1]) output = tf.math.ceil(output) output1 = tf.one_hot(tf.cast(output, dtype=tf.int32), depth=2) label = tf.cast(label, dtype=tf.int32) label= tf.one_hot(label, depth=2) print("output1", output1) print("label", label) loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=output1, labels=label)) #loss = tf.reduce_sum(tf.square(output1-label)) grad = tape.gradient(loss, variables) optimizer.apply_gradients(zip(grad, variables)) if step % 10 == 0: print("epoch={0}, step = {1}, loss={2}".format(epoch, step, loss)) if __name__ == '__main__': main() ``` 希望大佬们能指点一下,本人入门级小白。

keras model.fit函数报错,输入参数shape维度不正确,如何修正

使用函数 ``` model.fit(x=images, y=labels, validation_split=0.1, batch_size=batch_size, epochs=n_epochs, callbacks=callbacks, shuffle=True) ``` 由于我的训练集中image是灰色图片,所以images的shape为(2, 28, 28),导致报错Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (2, 28, 28) ,请问该如何处理

Keras测试错误'ProgbarLogger' no attribute 'log_values'

Keras 简单程序测试,出现如下错位,请问如何解决: Apple@Host~/test$ python3 kt.py Using Theano backend. -------------------------------------------------- Iteration 1 Train on 0 samples, validate on 0 samples Epoch 1/2 Traceback (most recent call last): File "ktest2.py", line 189, in <module> model.fit(inputs, labels, batch_size=batch_size, nb_epoch=2, validation_split = 0.1) File "/usr/local/lib/python3.5/dist-packages/keras/models.py", line 672, in fit initial_epoch=initial_epoch) File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 1196, in fit initial_epoch=initial_epoch) File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 911, in _fit_loop callbacks.on_epoch_end(epoch, epoch_logs) File "/usr/local/lib/python3.5/dist-packages/keras/callbacks.py", line 76, in on_epoch_end callback.on_epoch_end(epoch, logs) File "/usr/local/lib/python3.5/dist-packages/keras/callbacks.py", line 265, in on_epoch_end self.progbar.update(self.seen, self.log_values, force=True) AttributeError: 'ProgbarLogger' object has no attribute 'log_values' Apple@Host:~/test$

【Keras LSTM】关于model.evaluate方法的使用

报错处:loss,accuracy = model.evaluate(x_valid,y_valid); x_valid的维度为ndarray(624,50,5),y_valid为list(624),报错: TypeError: 'numpy.float64' object is not iterable ![图片说明](https://img-ask.csdn.net/upload/202005/05/1588644612_670527.jpg) 去掉list语句后仍然报错: ![图片说明](https://img-ask.csdn.net/upload/202005/05/1588651576_240158.jpg) 报错为: ![图片说明](https://img-ask.csdn.net/upload/202005/05/1588651589_34313.jpg) 求解答

修改的SSD—Tensorflow 版本在训练的时候遇到loss输入维度不一致

目前在学习目标检测识别的方向。 自己参考了一些论文 对原版的SSD进行了一些改动工作 前面的网络模型部分已经修改完成且不报错。 但是在进行训练操作的时候会出现 ’ValueError: Dimension 0 in both shapes must be equal, but are 233920 and 251392. Shapes are [233920] and [251392]. for 'ssd_losses/Select' (op: 'Select') with input shapes: [251392], [233920], [251392]. ‘ ‘两个形状中的尺寸0必须相等,但分别为233920和251392。形状有[233920]和[251392]。对于输入形状为[251392]、[233920]、[251392]的''ssd_losses/Select' (op: 'Select') ![图片说明](https://img-ask.csdn.net/upload/201904/06/1554539638_631515.png) ![图片说明](https://img-ask.csdn.net/upload/201904/06/1554539651_430990.png) # SSD loss function. # =========================================================================== # def ssd_losses(logits, localisations, gclasses, glocalisations, gscores, match_threshold=0.5, negative_ratio=3., alpha=1., label_smoothing=0., device='/cpu:0', scope=None): with tf.name_scope(scope, 'ssd_losses'): lshape = tfe.get_shape(logits[0], 5) num_classes = lshape[-1] batch_size = lshape[0] # Flatten out all vectors! flogits = [] fgclasses = [] fgscores = [] flocalisations = [] fglocalisations = [] for i in range(len(logits)): flogits.append(tf.reshape(logits[i], [-1, num_classes])) fgclasses.append(tf.reshape(gclasses[i], [-1])) fgscores.append(tf.reshape(gscores[i], [-1])) flocalisations.append(tf.reshape(localisations[i], [-1, 4])) fglocalisations.append(tf.reshape(glocalisations[i], [-1, 4])) # And concat the crap! logits = tf.concat(flogits, axis=0) gclasses = tf.concat(fgclasses, axis=0) gscores = tf.concat(fgscores, axis=0) localisations = tf.concat(flocalisations, axis=0) glocalisations = tf.concat(fglocalisations, axis=0) dtype = logits.dtype # Compute positive matching mask... pmask = gscores > match_threshold fpmask = tf.cast(pmask, dtype) n_positives = tf.reduce_sum(fpmask) # Hard negative mining... no_classes = tf.cast(pmask, tf.int32) predictions = slim.softmax(logits) nmask = tf.logical_and(tf.logical_not(pmask), gscores > -0.5) fnmask = tf.cast(nmask, dtype) nvalues = tf.where(nmask, predictions[:, 0], 1. - fnmask) nvalues_flat = tf.reshape(nvalues, [-1]) # Number of negative entries to select. max_neg_entries = tf.cast(tf.reduce_sum(fnmask), tf.int32) n_neg = tf.cast(negative_ratio * n_positives, tf.int32) + batch_size n_neg = tf.minimum(n_neg, max_neg_entries) val, idxes = tf.nn.top_k(-nvalues_flat, k=n_neg) max_hard_pred = -val[-1] # Final negative mask. nmask = tf.logical_and(nmask, nvalues < max_hard_pred) fnmask = tf.cast(nmask, dtype) # Add cross-entropy loss. with tf.name_scope('cross_entropy_pos'): loss = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=gclasses) loss = tf.div(tf.reduce_sum(loss * fpmask), batch_size, name='value') tf.losses.add_loss(loss) with tf.name_scope('cross_entropy_neg'): loss = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=no_classes) loss = tf.div(tf.reduce_sum(loss * fnmask), batch_size, name='value') tf.losses.add_loss(loss) # Add localization loss: smooth L1, L2, ... with tf.name_scope('localization'): # Weights Tensor: positive mask + random negative. weights = tf.expand_dims(alpha * fpmask, axis=-1) loss = custom_layers.abs_smooth(localisations - glocalisations) loss = tf.div(tf.reduce_sum(loss * weights), batch_size, name='value') tf.losses.add_loss(loss) ``` ``` 研究了一段时间的源码 (因为只是SSD-Tensorflow-Master中的ssd_vgg_300.py中定义网络结构的那部分做了修改 ,loss函数代码部分并没有进行改动)所以没所到错误所在,网上也找不到相关的解决方案。 希望大神能够帮忙解答 感激不尽~

导入npy预训练文件出现No gradients provided for any variable

Traceback (most recent call last): File "/data2/test/cxj/fcn_vgg16/test_fcn16_vgg.py", line 134, in <module> loss, optimizer, fcn_prob,fcn_pred,fcn_pred_up,lr = train_net(vgg_fcn=fcn, input_tensor=images, out_tensor=true_out) File "/data2/test/cxj/fcn_vgg16/test_fcn16_vgg.py", line 72, in train_net apply_gradient_op = optimizer.apply_gradients(grads) File "/home/test/anaconda3/envs/mask_rcnn/lib/python3.4/site-packages/tensorflow/python/training/optimizer.py", line 591, in apply_gradients ([str(v) for _, v, _ in converted_grads_and_vars],)) ValueError: No gradients provided for any variable: ["<tf.Variable 'upscore2/up_filter:0' shape=(4, 4, 2, 2) dtype=float32_ref>", "<tf.Variable 'upscore32/up_filter:0' shape=(32, 32, 2, 2) dtype=float32_ref>"]. 在线等,求指教!!!!

各位大神好,我在用tensorflow跑多任务学习的多层感知机遇到问题,训练得到y值都基本一样

# -*- coding: utf-8 -*- """ Created on Fri Mar 30 18:09:10 2018 @author: 32641 """ import tensorflow as tf import xlrd import numpy as np data2=[] data0=[] data = xlrd.open_workbook('C:/Users/32641/Desktop/论文2/汇率上证.xls') table = data.sheet_by_name('Sheet1') nrows = table.nrows for rownum in range(1, nrows): #也就是从Excel第二行开始,第一行表头不算 row = table.row_values(rownum) #for i in range(1,ncols):heet #row[i]=(row[i]-meansl[i-1])/stdl[i-1] #row[i]=(row[i]-minsl[i-1])/(maxsl[i-1]-minsl[i-1]) #date = xlrd.xldate_as_tuple(row[0],0) #date1=str(date[0])+'.'+str(date[1])+'.'+str(date[2]) #row[0]=date1 data0.append(row[1]) data2.append(row[2]) timeseries1=[] timeseries2=[] timeseriess=data0 for q in range(len(timeseriess)): timeseries1.append((timeseriess[q]-min(timeseriess))/(max(timeseriess)-min(timeseriess))) timeseries1=np.array(timeseries1) for q in range(len(timeseriess)): timeseries2.append((timeseriess[q]-min(timeseriess))/(max(timeseriess)-min(timeseriess))) timeseries2=np.array(timeseries2) lag=1 def cut(timeseries,lag): x=np.zeros((1,lag)) y=np.zeros((1,1)) for i in range(len(timeseries)-lag): x=np.vstack((x,timeseries[i:i+lag])) y=np.vstack((y,timeseries[i+lag])) return x[1:],y[1:] x1,y1=cut(timeseries1,lag) x2,y2=cut(timeseries2,lag) split_boundary = int(x1.shape[0] * 0.8) train_x1=x1[:split_boundary] test_x1=x1[split_boundary:] train_y1=x1[:split_boundary] test_y1=x1[split_boundary:] train_x2=x2[:split_boundary] test_x2=x2[split_boundary:] train_y2=x2[:split_boundary] test_y2=x2[split_boundary:] # 定义占位符 X = tf.placeholder("float",name="X") Y1 = tf.placeholder("float", name="Y1") Y2 = tf.placeholder("float", name="Y2") # 定义权重 initial_shared_layer_weights = np.random.rand(1,2) initial_Y1_layer_weights = np.random.rand(2,1) initial_Y2_layer_weights = np.random.rand(2,1) shared_layer_weights = tf.Variable(initial_shared_layer_weights, name="share_W", dtype="float32") Y1_layer_weights = tf.Variable(initial_Y1_layer_weights, name="share_Y1", dtype="float32") Y2_layer_weights = tf.Variable(initial_Y2_layer_weights, name="share_Y2", dtype="float32") # 使用relu激活函数构建层 shared_layer = tf.nn.sigmoid(tf.matmul(X,shared_layer_weights)) Y1_layer = tf.nn.sigmoid(tf.matmul(shared_layer,Y1_layer_weights)) Y2_layer = tf.nn.sigmoid(tf.matmul(shared_layer,Y2_layer_weights)) # 计算loss Y1_Loss = tf.nn.l2_loss(Y1-Y1_layer) Y2_Loss = tf.nn.l2_loss(Y2-Y2_layer) # 优化器 Y1_op = tf.train.AdamOptimizer().minimize(Y1_Loss) Y2_op = tf.train.AdamOptimizer().minimize(Y2_Loss) # Calculation (Session) Code # ========================== # open the session with tf.Session() as session: session.run(tf.initialize_all_variables()) for iters in range(3000): if np.random.rand() < 0.5: _, Y1_loss,Y1_Layer= session.run([Y1_op, Y1_Loss,Y1_layer], { X: train_x1, Y1: train_y1, Y2: train_y2 }) print(Y1_Layer) print(Y1_loss) else: _, Y2_loss= session.run([Y2_op, Y2_Loss], { X: train_x2, Y1: train_y1, Y2: train_y2 }) print(Y2_loss) session.close()

关于深度学习loss function的问题。

![图片说明](https://img-ask.csdn.net/upload/201905/21/1558437480_175476.jpg) 请问各位大佬,可以详细解答一下这个问题嘛? 提前谢谢大家

tensorflow报错显示在使用后段

使用tensorflow 在idle文件中, 报错使用backend

Python 报错: not enough values to unpack (expected 3, got 1),该怎么解决?求大神解决!

![图片说明](https://img-ask.csdn.net/upload/201910/22/1571745918_625213.png)![图片说明](https://img-ask.csdn.net/upload/201910/22/1571745931_336418.png) 代码如下: # -*- coding:utf-8 -*- import numpy as np import pandas as pd from collections import Counter from sklearn import preprocessing import scipy import sys import os path1=os.path.abspath('.') print(path1) name=pd.read_table("genotype.sav",header=0,sep=',') print(name) print(name.columns) for i in name.columns: a,b,c=Counter(name[i]).keys() if a[0]==a[1]: #print(keys[0],keys[1]) name[i].replace(a, 0, inplace=True) name[i].replace(b, 1, inplace=True) name[i].replace(c, 2, inplace=True) elif a[0]!=a[1]: name[i].replace(a, 1, inplace=True) name[i].replace(b, 0, inplace=True) name[i].replace(c, 2, inplace=True) #print(keys) #print(name[i]) name.to_csv('rename.csv') #recode_ID()

optim.compute_gradients计算梯度 ,为什么返回的第一列为None?

1.问题描述 模型通过keras.models.Sequential构建 loss => tf.losses.sparse_softmax_cross_entropy 通过 var_list=tf.trainable_variables() 获取可训练变量 计算梯度值: loss_op = tf.losses.sparse_softmax_cross_entropy(y, y_pred) grads_vars = optim.compute_gradients(loss_op, tf.trainable_variables()) grads_vars返回的第一元素为 None,导致面的程序异常。 为什么grads_vars第一列返回的元素为None? 2.相关代码 ``` import tensorflow as tf import numpy as np import time import keras # 加载数据集 x_dataset=np.random.rand(1000,28,28,1) y_dataset=np.random.randint(0,10,size=(1000,)) act = tf.nn.leaky_relu epoch = 200 batch_size = 5000 n_batch = len(x_dataset) // batch_size # 把 batch 分成多少个 sub batch 来计算 subdivisions = 50 subdivisions_batch_size = int(np.ceil(batch_size / subdivisions)) # 是否使用 sub batch 方法,设置为 False 代表使用默认方法 is_on_subdivisions = True def get_model(is_train=True, reuse=False): with tf.variable_scope('model', reuse=reuse): net = keras.models.Sequential() net.add(keras.layers.Conv2D(128,(3,3),input_shape=(28,28,1),strides=(2,2),padding='same',name='c1')) net.add(keras.layers.GlobalAveragePooling2D()) net.add(keras.layers.Dense(10)) return net x = tf.placeholder(tf.float32, [None, 28, 28, 1]) y = tf.placeholder(tf.int32, [None,]) net = get_model() y_pred=tf.cast(tf.argmax(net.outputs[0],axis=-1),dtype=tf.float32) loss_op = tf.losses.sparse_softmax_cross_entropy(y, y_pred) optim = tf.train.AdamOptimizer(0.01) var_list=tf.trainable_variables() grads_vars = optim.compute_gradients(loss_op, tf.trainable_variables()) #grads_vars返回的第一列为None,为什么? for gv in grads_vars: print(gv) # 删掉没梯度的参数, 倒序删除,减少麻烦 for i in range(len(grads_vars))[::-1]: if grads_vars[i][0] is None: del grads_vars[i] #因为返回的第一列为None,所以所有变量都被删除了,导致后面的异常! print('len(grads_vars):',len(grads_vars)) # 生成梯度缓存:grads_vars第一列为None触发异常 grads_cache = [tf.Variable(np.zeros(t[0].shape.as_list(), np.float32), trainable=False) for t in grads_vars] # 清空梯度缓存op,每一 batch 开始前调用 clear_grads_cache_op = tf.group([gc.assign(tf.zeros_like(gc)) for gc in grads_cache]) # 累积梯度op,累积每个 sub batch 的梯度 accumulate_grad_op = tf.group([gc.assign_add(gv[0]) for gc, gv in zip(grads_cache, grads_vars)]) # 求平均梯度, mean_grad = [gc/tf.to_float(subdivisions) for gc in grads_cache] # 组装梯度列表 new_grads_vars = [(g, gv[1]) for g, gv in zip(mean_grad, grads_vars)] # 应用梯度op,累积完所有 sub batch 的梯度后,应用梯度 apply_grad_op = optim.apply_gradients(new_grads_vars) # 原来的 optim ,跟上面做对照 ori_optim_op = tf.train.AdamOptimizer(0.01).minimize(loss_op, var_list=net.all_params) config = tf.ConfigProto() config.gpu_options.allow_growth = True config.allow_soft_placement = True sess = tf.Session(config=config) sess.run(tf.global_variables_initializer()) for e in range(epoch): loss_sum = 0 for b in progressbar(range(n_batch)): x_batch = x_dataset[b * batch_size: (b + 1) * batch_size] y_batch = y_dataset[b * batch_size: (b + 1) * batch_size] if is_on_subdivisions: # 每一批开始前需要清空梯度缓存 sess.run(clear_grads_cache_op) sub_loss_sum = 0 for s in range(subdivisions): x_sub_batch = x_batch[s * subdivisions_batch_size: (s + 1) * subdivisions_batch_size] y_sub_batch = y_batch[s * subdivisions_batch_size: (s + 1) * subdivisions_batch_size] if len(x_sub_batch) == 0: break feed_dict = {x: x_sub_batch, y: y_sub_batch} _, los = sess.run([accumulate_grad_op, loss_op], feed_dict) sub_loss_sum += los loss_sum += sub_loss_sum / subdivisions # 梯度累积完成,开始应用梯度 sess.run(apply_grad_op) # 本批次结束 else: feed_dict = {x: x_batch, y: y_batch} _, los = sess.run([ori_optim_op, loss_op], feed_dict) loss_sum += los time.sleep(0.2) print('loss', loss_sum / n_batch) ``` 3.报错信息 ``` grads_vars: (None, <tf.Variable 'model/c1/kernel:0' shape=(3, 3, 1, 128) dtype=float32_ref>) (None, <tf.Variable 'model/c1/bias:0' shape=(128,) dtype=float32_ref>) (None, <tf.Variable 'model/dense_1/kernel:0' shape=(128, 10) dtype=float32_ref>) (None, <tf.Variable 'model/dense_1/bias:0' shape=(10,) dtype=float32_ref>) (None, <tf.Variable 'model_1/c1/kernel:0' shape=(3, 3, 1, 128) dtype=float32_ref>) (None, <tf.Variable 'model_1/c1/bias:0' shape=(128,) dtype=float32_ref>) (None, <tf.Variable 'model_1/dense_2/kernel:0' shape=(128, 10) dtype=float32_ref>) (None, <tf.Variable 'model_1/dense_2/bias:0' shape=(10,) dtype=float32_ref>) (None, <tf.Variable 'model_2/c1/kernel:0' shape=(3, 3, 1, 128) dtype=float32_ref>) (None, <tf.Variable 'model_2/c1/bias:0' shape=(128,) dtype=float32_ref>) (None, <tf.Variable 'model_2/dense_3/kernel:0' shape=(128, 10) dtype=float32_ref>) (None, <tf.Variable 'model_2/dense_3/bias:0' shape=(10,) dtype=float32_ref>) len(grads_vars): 0 ``` 4.尝试过的方法方式 5.相关截图

tensorboard生成的网址怎么打不开?

这是我用Python写的一段代码: import tensorflow as tf num1 = tf.constant(11.0) num2 = tf.constant(12.0) res = tf.add(num1, num2) # TensorFlow运行需要通过一个会话来运行 with tf.Session() as sess: print(sess.run(res)) # 在会话中将图序列化到events文件中 file_writer = tf.summary.FileWriter("summary", tf.get_default_graph()) 运行结果: 23.0 在以下路径生成文件:E:\Python\deep_learning\summary ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547612275_23439.png) _在Terminal中运行: Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。_** E:\Python\deep_learning>cd E:\Python\deep_learning\summary E:\Python\deep_learning\summary>tensorboard --logdir=summary TensorBoard 1.12.2 at http://OALTIVZ27R3T2EB:6006 (Press CTRL+C to quit) 在360浏览器(谷歌中也打不开)中打开网址: 出现这个结果:![图片说明](https://img-ask.csdn.net/upload/201901/16/1547612750_250265.png) 我自己看了一些别人的帖子,但还是没有解决。。。 望哪位大神解惑。。。

tensorflow,python运行时报错在reshape上,求大神解答

代码来自于一篇博客,用tensorflow判断拨号图标和短信图标的分类,训练已经成功运行,以下为测试代码,错误出现在38行 image = tf.reshape(image, [1, 208, 208, 3]) 我的测试图片是256*256的,也测试了48*48的 ``` #!/usr/bin/python # -*- coding:utf-8 -*- # @Time : 2018/3/31 0031 17:50 # @Author : scw # @File : main.py # 进行图片预测方法调用的文件 import numpy as np from PIL import Image import tensorflow as tf import matplotlib.pyplot as plt from shenjingwangluomodel import inference # 定义需要进行分类的种类,这里我是进行分两种,因为一种为是拨号键,另一种就是非拨号键 CallPhoneStyle = 2 # 进行测试的操作处理========================== # 加载要进行测试的图片 def get_one_image(img_dir): image = Image.open(img_dir) # Image.open() # 好像一次只能打开一张图片,不能一次打开一个文件夹,这里大家可以去搜索一下 plt.imshow(image) image = image.resize([208, 208]) image_arr = np.array(image) return image_arr # 进行测试处理------------------------------------------------------- def test(test_file): # 设置加载训练结果的文件目录(这个是需要之前就已经训练好的,别忘记) log_dir = '/home/administrator/test_system/calldata2/' # 打开要进行测试的图片 image_arr = get_one_image(test_file) with tf.Graph().as_default(): # 把要进行测试的图片转为tensorflow所支持的格式 image = tf.cast(image_arr, tf.float32) # 将图片进行格式化的处理 image = tf.image.per_image_standardization(image) # 将tensorflow的图片的格式参数,转变为shape格式的,好像就是去掉-1这样的列表 image = tf.reshape(image, [1, 208, 208, 3]) # print(image.shape) # 参数CallPhoneStyle:表示的是分为两类 p = inference(image, 1, CallPhoneStyle) # 这是训练出一个神经网络的模型 # 这里用到了softmax这个逻辑回归模型的处理 logits = tf.nn.softmax(p) x = tf.placeholder(tf.float32, shape=[208, 208, 3]) saver = tf.train.Saver() with tf.Session() as sess: # 对tensorflow的训练参数进行初始化,使用默认的方式 sess.run(tf.global_variables_initializer()) # 判断是否有进行训练模型的设置,所以一定要之前就进行了模型的训练 ckpt = tf.train.get_checkpoint_state(log_dir) if ckpt and ckpt.model_checkpoint_path: # global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] saver.restore(sess, ckpt.model_checkpoint_path) # 调用saver.restore()函数,加载训练好的网络模型 print('Loading success') else: print('No checkpoint') prediction = sess.run(logits, feed_dict={x: image_arr}) max_index = np.argmax(prediction) print('预测的标签为:') if max_index == 0: print("是拨号键图片") else: print("是短信图片") # print(max_index) print('预测的分类结果每种的概率为:') print(prediction) # 我用0,1表示两种分类,这也是我在训练的时候就设置好的 if max_index == 0: print('图片是拨号键图标的概率为 %.6f' %prediction[:, 0]) elif max_index == 1: print('图片是短信它图标的概率为 %.6f' %prediction[:, 1]) # 进行图片预测 test('/home/administrator/Downloads/def.png') ''' # 测试自己的训练集的图片是不是已经加载成功(因为这个是进行训练的第一步) train_dir = 'E:/tensorflowdata/calldata/' BATCH_SIZE = 5 # 生成批次队列中的容量缓存的大小 CAPACITY = 256 # 设置我自己要对图片进行统一大小的高和宽 IMG_W = 208 IMG_H = 208 image_list,label_list = get_files(train_dir) # 加载训练集的图片和对应的标签 image_batch,label_batch = get_batch(image_list,label_list,IMG_W,IMG_H,BATCH_SIZE,CAPACITY) # 进行批次图片加载到内存中 # 这是打开一个session,主要是用于进行图片的显示效果的测试 with tf.Session() as sess: i = 0 coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord) try: while not coord.should_stop() and i < 2: # 提取出两个batch的图片并可视化。 img, label = sess.run([image_batch, label_batch]) for j in np.arange(BATCH_SIZE): print('label: %d' % label[j]) plt.imshow(img[j, :, :, :]) plt.show() i += 1 except tf.errors.OutOfRangeError: print('done!') finally: coord.request_stop() coord.join(threads) ''' ```

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

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

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

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧爬虫(七十)多进程multiproces...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

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

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

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

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

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

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

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

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

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

立即提问
相关内容推荐